理由は後日説明するとして、Huawei E169 USB 3GドングルをAliexpress.comにて送料無料の$20.77で購入。
E173もこの業者に勧められた。スペック的には差がないように思われたが、この業者のストックにあったものではE169には外部アンテナ接続端子があったがE173にはなかったので前者を選んだ。モデルとしてはE173には外部アンテナ接続端子付きのものもあるらしい。
Windows 7 PCではUSBポートに差し込むと、USBディスクとして認識され、そこにあるインストーラでドライバやクライアントソフトをインストールできる。その上で、”Huawei E169 (E169G, E169V, K3520) – 3G modem wiki“の情報に従い、ファームウェアとPC用クライアントソフトのアップデート。 PCクライアントソフトは”Mobile Partner”ないしは”Vodafone Dashboard”のはずらしいが、”Optus Wireless Broadband”なるソフトしか見当たらない。音声通信ができるかテストしたかったが、ファームウェアやPC側ソフトのアップグレードによって、クライアント・アプリに現れるはずの音声通信用ボタンが現れない。そもそもPCから音声通話することは目的ではなかったから、それ以上は追求せずSMSの送受信ができることだけ確認。
“Mobile Partner Version 23.009.09.02.910 Released | HuaweiNews“から公式Mobile Partnerアプリを入手できた(Windows版だけではなくLinux版も同梱)。それで音声通話もできることが確認できた。
次に、本来想定していた使用形態に移行した。それはポータブルルーターTP-Link TL-WR703Nから使用することだが、そのために以前からインストールしてあったOpenWrtのアップグレードをしたり、USB機器を複数使えるようハブを接続したりしてあった。
“USB GSM/UMTSモデムを介したSMSやMMSの送信“に書いたように、SMSだけであれば、OpenWrtでは予めリポジトリに用意されているパッケージをインストールするだけでつぐ使えるようになるGnokiiで利用できるようになる。MMSも扱いたいので、最終的にはこれではなくMbuniを使うことになるのだが、残念ながら自分でビルドしないとならない。なのでまずはパッと使えるGnokiiでテスト。
まず、”Use 3g/UMTS USB Dongle for WAN connection – OpenWrt Wiki“を参照に、必要なパッケージをインストール。comgt, kmod-usb-serial-option, usb-modeswitch-data, luci-proto-3gだけをインストールした(と思う)。他に必要なパッケージもあるが、上記パッケージが依存しているため結果として必要な物は全てインストールされる(と思う)。USBそのものに関するパッケージはusbutilsのみをインストール。lsusbコマンドを使いたかったので。
“View topic – SMS Gateway – OpenWRT“からGnokiiの設定に関するところだけを真似た。WAN関係は現時点では不要なので無視。Gnokiiの設定として/dev/ttyUSB0をポートとして指定することで、SMSの送信(gnokii --sendsms 宛先電話番号
)、音声通話の発信(gnokii --dialvoice 宛先電話番号
)やその中止(gnokii --hangup 呼ID
)はできるようになった(もちろんOpenWrt側で音声の入出力はできないので単に鳴るだけ)。ただし、SMSの受信(gnokii --smsreader
)は思うように動作しているように思えない。
しかし、”Send SMS or Email using 3G/GSM modem – OpenWrt Wiki“と”Using AT commands to send and read SMS – Nokia Developer Wiki“を参照して、picocomコマンドを利用して直接ATコマンドを使うと、SMSの受信ができることは確認できた。
SMSの送受信を行うためのデーモンとしてGnokiiのwikiではSMSdを紹介しているが、残念ながらOpenWrt用バイナリ・パッケージは用意されてないので使うには自分でビルドしなければならない。だがMMSも必要なのでMbuniを自分でビルドしなくてはならないことは決定済み。なのでSMSのみのSMSdをビルドすることはないだろう。
追記:
たまたま見つけた”Huawei – GnokiiWiki“によって、OpenWrtがドングルを認識した際に自動的に作成するデバイスが/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2の3つあるのだが、そのうちSMS受信の通知を受けられるのはその内の1つだけだということを知った。このページは、通常そのデバイスが/dev/ttyUSB1だと記載しているが、そうGnokiiの設定してもSMSの受信ができないどころか送信もできなかった。代わりに/dev/ttyUSB2と設定することで、Gnokiiを使ってSMSの送信も受信もできた。さらなる追記:
“Huawei UMTS USB Stick E169 with Linux“には、”If you have udev you should now have /dev/ttyUSB0, /dev/ttyUSB1 and /dev/ttyUSB2. These are the devices for the UMTS modem, for the GSM modem and a device for sending an receiving SMS, respectively”という記載がある。
これで最初のステップとして達成したいことは達成できた。以下は余談。
“Wireless Router with a 3G/UMTS/HSDPA dongle“にhuaweiaktbbo ( Huawei E156/E169/E220 activation tool)というパッケージが紹介されているが、E169がモデムと認識されているのでインストールしない。が、 e169-stats (Huawei E169 statistics, works with other Huawei’s devices.)というパッケージがあるのに気づいたのでこれはインストールしてたが、e169-stats /dev/ttyUSB0
でちょっとした統計情報が表示される。
Usb-modeswitchからのSwitching seemingly failed
というメッセージが繰り返し表示されるが、”#10475 (usb-modeswitch “seemingly” fails, stick works fine) – OpenWrt“によると気にしなくていい模様。デバイスの初期化に予想以上に時間がかかっているのを失敗したと判断されるだけ、ということのよう。
実は最初にSIMカードの向きを逆に入れてしまい、当然の結果としてSIMカードが認識されない、というハズカシイ失敗を犯した。
以下はWAN設定をする際に参考になるかも:
- “Wireless Router with a 3G/UMTS/HSDPA dongle“
- “How to use 3G dongle Huawei E1750 in OpenWrt | An It-Slave in the digital saltmine“
以下はシステム・ログの一部だが、最初はusb_modeswitchがうまく行ってないのではと考えていたのでコピーしていた。
Aug 8 20:51:04 OpenWrt kern.info kernel: [ 14.870000] usb 1-1.2: new full-speed USB device number 4 using ehci-platform Aug 8 20:51:04 OpenWrt kern.info kernel: [ 15.000000] scsi1 : usb-storage 1-1.2:1.0 Aug 8 20:51:04 OpenWrt kern.info kernel: [ 15.140000] usb 1-1.2: USB disconnect, device number 4 Aug 8 20:51:04 OpenWrt kern.info kernel: [ 15.470000] usb 1-1.2: new full-speed USB device number 5 using ehci-platform Aug 8 20:51:04 OpenWrt kern.info kernel: [ 15.600000] scsi5 : usb-storage 1-1.2:1.3 Aug 8 20:51:04 OpenWrt kern.notice kernel: [ 16.600000] scsi 5:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2 Aug 8 20:51:04 OpenWrt kern.notice kernel: [ 16.610000] scsi 5:0:0:1: Direct-Access HUAWEI SD Storage 2.31 PQ: 0 ANSI: 2 Aug 8 20:51:04 OpenWrt kern.notice kernel: [ 16.630000] sd 5:0:0:1: [sdb] Attached SCSI removable disk (中略) Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.500000] usbcore: registered new interface driver usbserial Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.500000] USB Serial support registered for generic Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.510000] usbcore: registered new interface driver usbserial_generic Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.520000] usbserial: USB Serial Driver core Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.580000] USB Serial support registered for GSM modem (1-port) Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.580000] option 1-1.2:1.0: GSM modem (1-port) converter detected Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.590000] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0 Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.600000] option 1-1.2:1.1: GSM modem (1-port) converter detected Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.600000] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1 Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.610000] option 1-1.2:1.2: GSM modem (1-port) converter detected Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.620000] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB2 Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.620000] usbcore: registered new interface driver option Aug 8 20:51:04 OpenWrt kern.info kernel: [ 32.630000] option: v0.7.2:USB Driver for GSM modems Aug 8 20:51:06 OpenWrt user.notice usb-modeswitch: 1-0:1.0: Manufacturer=Linux_3.3.8_ehci_hcd Product=Generic_Platform_EHCI_Controller Serial=ehci-platform Aug 8 20:51:06 OpenWrt user.notice usb-modeswitch: 1-1:1.0: Manufacturer=? Product=? Serial=? Aug 8 20:51:06 OpenWrt daemon.notice netifd: Interface 'loopback' is now up Aug 8 20:51:06 OpenWrt kern.info kernel: [ 37.070000] device eth0 entered promiscuous mode Aug 8 20:51:07 OpenWrt kern.info kernel: [ 37.400000] eth0: link up (100Mbps/Full duplex) Aug 8 20:51:07 OpenWrt kern.info kernel: [ 37.400000] br-lan: port 1(eth0) entered forwarding state Aug 8 20:51:07 OpenWrt kern.info kernel: [ 37.410000] br-lan: port 1(eth0) entered forwarding state Aug 8 20:51:07 OpenWrt daemon.notice netifd: lan (790): udhcpc (v1.19.4) started Aug 8 20:51:07 OpenWrt user.notice usb-modeswitch: 1-1.4:1.0: Manufacturer=? Product=USB_Mass_Storage_Device Serial=ad620dd011662b Aug 8 20:51:07 OpenWrt daemon.notice netifd: lan (790): Sending discover... Aug 8 20:51:07 OpenWrt daemon.notice netifd: lan (790): Sending select for 192.168.11.170... Aug 8 20:51:07 OpenWrt daemon.notice netifd: lan (790): Lease of 192.168.11.170 obtained, lease time 172800 Aug 8 20:51:07 OpenWrt user.notice usb-modeswitch: 1-1.2:1.0: Manufacturer=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Product=HUAWEI_Mobile Serial=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Aug 8 20:51:07 OpenWrt user.notice usb-modeswitch: 1-1.2:1.0: Selecting /etc/usb_modeswitch.d/12d1:1001 for mode switching Aug 8 20:51:07 OpenWrt user.notice usb-modeswitch: 1-1.2:1.0: Switching seemingly failed Aug 8 20:51:07 OpenWrt daemon.notice netifd: Interface 'lan' is now up Aug 8 20:51:08 OpenWrt user.notice ifup: Enabling Router Solicitations on loopback (lo) Aug 8 20:51:08 OpenWrt user.notice ifup: Allowing Router Advertisements on lan (br-lan) Aug 8 20:51:08 OpenWrt user.notice usb-modeswitch: 1-1.2:1.0: Switching seemingly failed Aug 8 20:51:09 OpenWrt kern.info kernel: [ 39.410000] br-lan: port 1(eth0) entered forwarding state Aug 8 20:51:09 OpenWrt user.notice usb-modeswitch: 1-1.2:1.0: Switching seemingly failed (中略) Aug 8 20:51:15 OpenWrt user.notice usb-modeswitch: 1-1.2:1.1: Manufacturer=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Product=HUAWEI_Mobile Serial=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Aug 8 20:51:15 OpenWrt user.notice usb-modeswitch: 1-1.2:1.1: Selecting /etc/usb_modeswitch.d/12d1:1001 for mode switching Aug 8 20:51:15 OpenWrt user.notice usb-modeswitch: 1-1.2:1.1: Switching seemingly failed Aug 8 20:51:15 OpenWrt cron.info crond[1194]: crond: crond (busybox 1.19.4) started, log level 8 Aug 8 20:51:16 OpenWrt authpriv.info dropbear[1207]: Running in background Aug 8 20:51:16 OpenWrt user.notice usb-modeswitch: 1-1.2:1.1: Switching seemingly failed Aug 8 20:51:17 OpenWrt user.notice usb-modeswitch: 1-1.2:1.1: Switching seemingly failed (中略) Aug 8 20:51:23 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Manufacturer=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Product=HUAWEI_Mobile Serial=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Aug 8 20:51:23 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Selecting /etc/usb_modeswitch.d/12d1:1001 for mode switching Aug 8 20:51:23 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:51:24 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:52:49 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:52:50 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:52:51 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:52:52 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:52:53 OpenWrt user.notice usb-modeswitch: 1-1.2:1.2: Switching seemingly failed Aug 8 20:52:55 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Manufacturer=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Product=HUAWEI_Mobile Serial=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Aug 8 20:52:55 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Selecting /etc/usb_modeswitch.d/12d1:1001 for mode switching Aug 8 20:52:55 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed Aug 8 20:52:56 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed Aug 8 20:52:57 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed Aug 8 20:52:58 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed Aug 8 20:52:59 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed Aug 8 20:53:00 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed Aug 8 20:53:01 OpenWrt user.notice usb-modeswitch: 1-1.2:1.3: Switching seemingly failed
root@OpenWrt:~# cat /sys/kernel/debug/usb/devices
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 2, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 3.03
S: Manufacturer=Linux 3.3.8 ehci_hcd
S: Product=Generic Platform EHCI Controller
S: SerialNumber=ehci-platform
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 4
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0409 ProdID=005a Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
S: Product=HUAWEI Mobile
S: SerialNumber=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=02 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0457 ProdID=0151 Rev= 1.00
S: Product=USB Mass Storage Device
S: SerialNumber=ad620dd011662b
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 98mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=16ms
root@OpenWrt:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 003: ID 0457:0151 Silicon Integrated Systems Corp. Super Flash 1GB / GXT 64MB Flash Drive
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
“SMS Tutorial: Introduction to AT Commands, Basic Commands and Extended Commands“
「Huawei E169 USB 3GドングルをTP-Link TL-WR703N上のOpenWrtで使えるようにする」への7件のフィードバック