fs01buとSORACOM Airを使ってraspberrypiからインターネットに接続する方法でかなりはまったので書いておきます。

fs01buのProductIDが98ffから6801に変わらなくて困っている人は見るといいかも。

fs01buとsoracom

Amazonで買いました。手元に届いたらsimをfs01buにさしましょう。
soracomのページでアクティベーションしましょう。

raspberrypi設定

早速、RaspberryPiの設定。

$ sudo apt-get update
$ sudo apt-get install usb-modeswitch wvdial

USBに接続しても一向にfs01buのProductIDが98ffから6801に変わらない。
いろいろ試行錯誤するも一向に変わる気配がない。

$ lsusb
(...)
Bus 001 Device 006: ID 1c9e:98ff OMEGA TECHNOLOGY
(...)

切り替え

fs01buはWindowsなどのOSでドライバをインストールしたりするために、まずUSBフラッシュメモリとして読み込まれる。usb_modeswitchでUSBのモードスイッチでUSBModemに切り替えないといけないが切り替えてできてないので、以下のコマンドで切り替えると、うまく動いた。

$ sudo usb_modeswitch -t <<EOF
DefaultVendor= 0x1c9e
DefaultProduct= 0x98ff
TargetVendor= 0x1c9e
TargetProduct= 0x6801
MessageEndpoint= not set
MessageContent="55534243123456780000000080000606f50402527000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00
EOF

$ sudo /sbin/modprobe usbserial vendor=0x1c9e product=0x6801

MessageEndpointやMessageContentはUsbSnifferを使って調べることができるらしい。
USBメモリから切り替えるときに送っているメッセージを確認することができるみたいです。

soracomの設定

pppは次を設定したら動作した。

$ sudo vi /etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","soracom.io"
Dial Attempts = 3
Stupid Mode = 1
Modem Type = Analog Modem
Dial Command = ATD
Stupid Mode = yes
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB2
ISDN = 0
APN = soracom.io
Phone = *99***1#
Username = sora
Password = sora
Carrier Check = no
Auto DNS = 1
Check Def Route = 1

wvdialを実行して接続確認をする。

$ sudo wvdial
接続してるっぽいログが表示されればOK

インターネットに接続してみる。

$ curl yahoo.co.jp
htmlが表示されればOK

自動接続設定

スクリプトを作るのが面倒だったので以下のようにしておいた。

$ sudo vi /etc/rc.local
#以下を追記
usb_modeswitch -t <<EOF
DefaultVendor= 0x1c9e
DefaultProduct= 0x98ff
TargetVendor= 0x1c9e
TargetProduct= 0x6801
MessageEndpoint= not set
MessageContent="55534243123456780000000080000606f50402527000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00
EOF

/sbin/modprobe usbserial vendor=0x1c9e product=0x6801

sleep 10

/usr/bin/nohup /usr/bin/wvdial &

exit 0

USBドングルが高い。もう少し安ければいいのに。

参考

  1. http://www.draisberghof.de/usb_modeswitch/