ツムラ_メモ

大失敗を繰り返す。

GL01PをUSBモデムとして使う。

emobileのGL01PがアップデートでUSBモデム機能に対応したとのこと。
なので、Linuxで動作を確認してみた。

まずはデバイス情報をlsusbで確認。

$ lsusb
Bus 002 Device 019: ID 12d1:1f01 Huawei Technologies Co., Ltd.
$ lsusb -t
Port 4: Dev 19, If 0, Class=Mass Storage, Driver=usb-storage, 480M

定番通り usb_modeswitch で切り替える。
HuaweiのE353が同じVID,PIDで、挙動も同じ。

$ sudo usb_modeswitch -v 12d1 -p 1f01 -c /etc/usb_modeswitch.d/12d1\:1f01
Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
   found matching product ID
   adding device
 Found device in default mode, class or configuration (1)
Accessing device 019 on bus 002 ...
Getting the current device configuration ...
 OK, got current device configuration (1)
Using interface number 0
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found; name unknown, limitation of libusb1
 OK, driver "unkown" detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: HUAWEI  
   Model String: SD Storage      
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: Huawei Technologies
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Setting up communication with interface 0
Using endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Resetting response endpoint 0x81
Resetting message endpoint 0x01
 Device is gone, skipping any further commands
-> Run lsusb to note any changes. Bye.

dmesgを確認すると、シリアル・ポートが認識できていることが確認できる。

$ sudo dmesg
[356528.448352] usb 2-1.3.4: new high-speed USB device number 19 using ehci-pci
[356528.525519] usb 2-1.3.4: New USB device found, idVendor=12d1, idProduct=1f01
[356528.525523] usb 2-1.3.4: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[356528.525526] usb 2-1.3.4: Product: HUAWEI Mobile
[356528.525529] usb 2-1.3.4: Manufacturer: Huawei Technologies
[356528.528262] scsi9 : usb-storage 2-1.3.4:1.0
[356529.528556] scsi 9:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
[356529.529639] sd 9:0:0:0: Attached scsi generic sg7 type 0
[356529.532343] sd 9:0:0:0: [sdg] Attached SCSI removable disk
[356535.760011] sd 9:0:0:0: [sdg] 3878912 512-byte logical blocks: (1.98 GB/1.84 GiB)
[356535.761672] sd 9:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[356535.767574]  sdg: sdg1
[356906.948322] sd 9:0:0:0: [sdg] Synchronizing SCSI cache
[356906.951955] usb 2-1.3.4: usbfs: process 27780 (usb_modeswitch) did not claim interface 0 before use
[356907.098500] usb 2-1.3.4: USB disconnect, device number 19
[356915.434539] usb 2-1.3.4: new high-speed USB device number 20 using ehci-pci
[356915.512444] usb 2-1.3.4: New USB device found, idVendor=12d1, idProduct=1442
[356915.512449] usb 2-1.3.4: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[356915.512452] usb 2-1.3.4: Product: HUAWEI Mobile
[356915.512455] usb 2-1.3.4: Manufacturer: Huawei Technologies
[356915.514341] option 2-1.3.4:1.0: GSM modem (1-port) converter detected
[356915.514639] usb 2-1.3.4: GSM modem (1-port) converter now attached to ttyUSB0
[356915.514719] option 2-1.3.4:1.1: GSM modem (1-port) converter detected
[356915.514862] usb 2-1.3.4: GSM modem (1-port) converter now attached to ttyUSB1

usb_modeswitch実行後のlsusb結果を見ると、2つのVendor specific classがあり、usb_wwan(option)がロードできていることを確認。

$ lsusb
Bus 002 Device 020: ID 12d1:1442 Huawei Technologies Co., Ltd.

$ lsusb -t
            |__ Port 4: Dev 20, If 0, Class=Vendor Specific Class, Driver=option, 480M
            |__ Port 4: Dev 20, If 1, Class=Vendor Specific Class, Driver=option, 480M

cutecom /dev/ttyUSB0 でIF 0のシリアルコンソールを開きATコマンドの実行を確認。
ttyUSB1は非請求リザルトやらGPSやらが変える方だと思う。
イーモバイルのこのあたりのモデムはCIDが16まであって、だいたい16にデフォルトAPNが書かれてるイメージ。
ドコモみたいに初期化してもデフォルト値にならないけれど。
CIDの1は純正のユーティリティが設定プロファイルが接続実行時に書き換えてる。

QualcommHuaweiのspecificなATコマンドが通るので、後は適当に試していけばO.K.
QMIのポートは見えない模様。

$ cutecom (cutecomを実行し、適宜ATコマンドを発行)

AT+CGDCONT?
+CGDCONT: 1,"IP","","0.0.0.0",0,0
+CGDCONT: 16,"IP","em.std","0.0.0.0",0,0

OK

AT+CGDCONT=?

+CGDCONT: (1-16),"IP",,,(0-2),(0-4)
+CGDCONT: (1-16),"PPP",,,(0-2),(0-4)
+CGDCONT: (1-16),"IPV6",,,(0-2),(0-4)
+CGDCONT: (1-16),"IPV4V6",,,(0-2),(0-4)

OK