Linuxでイー・モバイルのデータカード、D02HWとD12LCを使う必要があったので、Linuxで使えるようになるまでの過程を備忘録としてまとめておきます。
今回使用したカーネルは2.6.27.25-78.2.56.fc9.i686で、ディストリビューションはFedoraのバージョン9を使用しました。
●D02HWを使う
D02HWの場合は、簡単に使うことができました。以下はD02HWをPCに差した際のログです。
Dec 25 19:14:04 localhost kernel: usb 5-1: new full speed USB device using uhci_hcd and address 2 Dec 25 19:14:04 localhost kernel: usb 5-1: configuration #1 chosen from 1 choice Dec 25 19:14:04 localhost kernel: usb 5-1: New USB device found, idVendor=12d1, idProduct=1003 Dec 25 19:14:04 localhost kernel: usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Dec 25 19:14:04 localhost kernel: usb 5-1: Product: HUAWEI Mobile Dec 25 19:14:04 localhost kernel: usb 5-1: Manufacturer: HUAWEI Technologies Dec 25 19:14:04 localhost kernel: Initializing USB Mass Storage driver... Dec 25 19:14:04 localhost kernel: scsi5 : SCSI emulation for USB Mass Storage devices Dec 25 19:14:04 localhost kernel: usbcore: registered new interface driver usb-storage Dec 25 19:14:04 localhost kernel: USB Mass Storage support registered. Dec 25 19:14:04 localhost kernel: usb-storage: device found at 2 Dec 25 19:14:04 localhost kernel: usb-storage: waiting for device to settle before scanning Dec 25 19:14:04 localhost kernel: usb 5-1: USB disconnect, address 2 Dec 25 19:14:05 localhost kernel: usb 5-1: new full speed USB device using uhci_hcd and address 3 Dec 25 19:14:05 localhost kernel: usb 5-1: configuration #1 chosen from 1 choice Dec 25 19:14:05 localhost kernel: usb-storage: probe of 5-1:1.0 failed with error -5 Dec 25 19:14:05 localhost kernel: usb-storage: probe of 5-1:1.1 failed with error -5 Dec 25 19:14:05 localhost kernel: scsi8 : SCSI emulation for USB Mass Storage devices Dec 25 19:14:05 localhost kernel: usb 5-1: New USB device found, idVendor=12d1, idProduct=1003 Dec 25 19:14:05 localhost kernel: usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Dec 25 19:14:05 localhost kernel: usb 5-1: Product: HUAWEI Mobile Dec 25 19:14:05 localhost kernel: usb 5-1: Manufacturer: HUAWEI Technologies Dec 25 19:14:05 localhost kernel: usb-storage: device found at 3 Dec 25 19:14:05 localhost kernel: usb-storage: waiting for device to settle before scanning Dec 25 19:14:05 localhost kernel: usbcore: registered new interface driver usbserial Dec 25 19:14:05 localhost kernel: usbserial: USB Serial support registered for generic Dec 25 19:14:05 localhost kernel: usbcore: registered new interface driver usbserial_generic Dec 25 19:14:05 localhost kernel: usbserial: USB Serial Driver core Dec 25 19:14:05 localhost kernel: usbserial: USB Serial support registered for GSM modem (1-port) Dec 25 19:14:05 localhost kernel: option 5-1:1.0: GSM modem (1-port) converter detected Dec 25 19:14:05 localhost kernel: usb 5-1: GSM modem (1-port) converter now attached to ttyUSB0 Dec 25 19:14:05 localhost kernel: option 5-1:1.1: GSM modem (1-port) converter detected Dec 25 19:14:05 localhost kernel: usb 5-1: GSM modem (1-port) converter now attached to ttyUSB1 Dec 25 19:14:05 localhost kernel: usbcore: registered new interface driver option Dec 25 19:14:05 localhost kernel: option: USB Driver for GSM modems: v0.7.2 Dec 25 19:14:10 localhost kernel: usb-storage: device scan complete Dec 25 19:14:10 localhost kernel: scsi 8:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2 Dec 25 19:14:10 localhost kernel: sr1: scsi-1 drive Dec 25 19:14:10 localhost kernel: sr 8:0:0:0: Attached scsi CD-ROM sr1 Dec 25 19:14:10 localhost kernel: sr 8:0:0:0: Attached scsi generic sg2 type 5
D02HWがモデムとして認識されて/dev/配下にttyUSB0とttyUSB1が作成されました。次にwvdialconfを実行して、接続用の設定ファイルを生成します。以下はwvdialconf実行時のログです。
[root@localhost etc]# wvdialconf Editing `/etc/wvdial.conf'.</span> Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 WvModem<*1>: Cannot get information for serial port. ttyUSB0<*1>: ATQ0 V1 E1 -- OK ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK ttyUSB0<*1>: ATQ0 V1 E1 S0=0 & C1 -- OK ttyUSB0<*1>: ATQ0 V1 E1 S0=0 & C1 & D2 -- OK ttyUSB0<*1>: ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 -- OK ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: huawei ttyUSB0<*1>: Speed 9600: AT -- OK ttyUSB0<*1>: Max speed is 9600; that should be safe. ttyUSB0<*1>: ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 -- OK WvModem<*1>: Cannot get information for serial port. ttyUSB1<*1>: ATQ0 V1 E1 -- OK ttyUSB1<*1>: ATQ0 V1 E1 Z -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 & C1 -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 & C1 & D2 -- OK ttyUSB1<*1>: ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 -- OK ttyUSB1<*1>: Modem Identifier: ATI -- Manufacturer: huawei ttyUSB1<*1>: Speed 9600: AT -- OK ttyUSB1<*1>: Max speed is 9600; that should be safe. ttyUSB1<*1>: ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 -- OK Found a modem on /dev/ttyUSB0. Modem configuration written to /etc/wvdial.conf. ttyUSB0: Speed 9600; init "ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0" ttyUSB1: Speed 9600; init "ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0"
接続用の設定ファイルが/etc/wvdial.confに生成されました。/etc/wvdial.confのユーザー名、パスワード、ダイヤル番号は適宜変更してください。
設定ファイル変更後、wvdialを実行すると接続が完了します。
[root@localhost etc]# wvdial --> WvDial: Internet dialer version 1.60 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDT*99***1# --> Waiting for carrier. ATDT*99***1# CONNECT --> Carrier detected. Starting PPP immediately. --> Starting pppd at Fri Dec 25 19:50:08 2009 --> Pid of pppd: 3717 --> pppd: 0・スP[08]・ス・スP[08] --> Using interface ppp0 --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> Authentication (CHAP) started --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> Authentication (CHAP) successful --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> local IP address 114.48.151.157 --> pppd: 0・スP[08]・ス・スP[08] --> remote IP address 10.64.64.64 --> pppd: 0・スP[08]・ス・スP[08] --> primary DNS address 60.254.193.158 --> pppd: 0・スP[08]・ス・スP[08] --> secondary DNS address 117.55.64.152 --> pppd: 0・スP[08]・ス・スP[08] --> pppd: 0・スP[08]・ス・スP[08] --> Script /etc/ppp/ip-up run successful --> Default route Ok. --> Nameserver (DNS) Ok. --> Connected... Press Ctrl-C to disconnect --> pppd: 0・スP[08]・ス・スP[08]
後は、実行結果で表示されているDNSサーバのアドレスを/etc/resolv.confに設定すれば、D02HWを使用してインターネットを使えるようになります。
●D12LCを使う
まずは、D12LCをPCに差した時のログです。
Dec 15 09:50:33 localhost kernel: usb 1-5: new high speed USB device using ehci_hcd and address 8 Dec 15 09:50:33 localhost kernel: usb 1-5: configuration #1 chosen from 1 choice Dec 15 09:50:33 localhost kernel: scsi16 : SCSI emulation for USB Mass Storage devices Dec 15 09:50:33 localhost kernel: usb 1-5: New USB device found, idVendor=1c9e, idProduct=9101 Dec 15 09:50:33 localhost kernel: usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=3 Dec 15 09:50:33 localhost kernel: usb 1-5: Product: USB Modem Dec 15 09:50:33 localhost kernel: usb 1-5: Manufacturer: USB Modem Dec 15 09:50:33 localhost kernel: usb 1-5: SerialNumber: 355188020267906 Dec 15 09:50:38 localhost kernel: scsi 16:0:0:0: Direct-Access USBModem Disk 2.31 PQ: 0 ANSI: 2 Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] 65536 512-byte hardware sectors (34 MB) Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] Write Protect is on Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] Assuming drive cache: write through Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] 65536 512-byte hardware sectors (34 MB) Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] Write Protect is on Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] Assuming drive cache: write through Dec 15 09:50:38 localhost kernel: sdb: Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: [sdb] Attached SCSI disk Dec 15 09:50:38 localhost kernel: sd 16:0:0:0: Attached scsi generic sg2 type 0 Dec 15 09:50:39 localhost hald: mounted /dev/sdb on behalf of uid 500
何の問題もなく認識したとも思いましたが、ModemではなくUSB Mass Storage Deviceとして認識されたようです。調査してみたところ、UbuntuのフォーラムでD12LCの話題が出ていました。D12LCはUSBの複合デバイスとして認識されるようで、ログにあるようなvendor=0x1c9e、product=0x9101の場合はStorageとして認識されているようです。Modemとして認識させるには、productをproduct=0x9104と認識させる必要があります。
D12LCをModemとして認識させるには、usb_modeswitchというソフトを使う必要があるようです。usb_modeswitchはここから最新の1.0.5を取得しました。usb_modeswitchを取得し、解凍、展開後、インストールしてください。インストールすると、/etc/usb_modeswitch.confファイルが作成されますので、このファイルに以下の情報を追加してください。追加後にusb_modeswitchを実行すると、product=0x9104として認識されるようになります。
####################################################### # Emobile D12LC # DefaultVendor= 0x1c9e DefaultProduct= 0x9101 TargetVendor= 0x1c9e TargetProduct= 0x9104 MessageEndpoint=0x01 MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
実行前:
[root@localhost Resources]# lsusb Bus 001 Device 008: ID 1c9e:9101 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 004: ID 04f3:0213 Elan Microelectronics Corp. Bus 002 Device 003: ID 060b:6220 Solid Year Bus 002 Device 002: ID 0557:7000 ATEN International Co., Ltd Hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
実行後:
[root@localhost Resources]# lsusb Bus 001 Device 008: ID 1c9e:9104 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 004: ID 04f3:0213 Elan Microelectronics Corp. Bus 002 Device 003: ID 060b:6220 Solid Year Bus 002 Device 002: ID 0557:7000 ATEN International Co., Ltd Hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
この状態になってから、modprobe usbserial vendor=0x1c9e product=0x9104を実行すると、/dev配下に、ttyUSB0、ttyUSB1、ttyUSB2が作成されます。うまくproduct=0x9104として認識されない場合や、ttyUSBが作成されない場合は機器を抜き差ししてみたり、試行錯誤してください。
wvdialconfを実行すると、/etc/wvdial.confが作成されますので、ユーザー名、パスワード、ダイヤル番号を適宜修正してください。ここでのポイントとして、wvdialconfの実行結果では使用するModemは/dev/ttyUSB1となっていますが、/dev/ttyUSB2に変更してください。ttyUSB1では何度試行しようが繋がりませんでした。。。
編集後はwvdialを実行してください。成功時は以下のようなログが出力されます。
[root@localhost ~]# wvdial --> WvDial: Internet dialer version 1.60 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 ATQ0 V1 E1 S0=0 & C1 & D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDT*99***1# --> Waiting for carrier. ATDT*99***1# CONNECT --> Carrier detected. Starting PPP immediately. --> Starting pppd at Sat Dec 19 01:52:14 2009 --> Pid of pppd: 3650 --> pppd: ・ス[1c]・ス [08]' --> Using interface ppp0 --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> Authentication (CHAP) started --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> Authentication (CHAP) successful --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> local IP address 114.48.234.153 --> pppd: ・ス[1c]・ス [08]' --> remote IP address 10.64.64.64 --> pppd: ・ス[1c]・ス [08]' --> primary DNS address 60.254.193.158 --> pppd: ・ス[1c]・ス [08]' --> secondary DNS address 117.55.64.152 --> pppd: ・ス[1c]・ス [08]' --> pppd: ・ス[1c]・ス [08]' --> Script /etc/ppp/ip-up run successful --> Default route Ok. --> Nameserver (DNS) Ok. --> Connected... Press Ctrl-C to disconnect
D02HWの時と同じように、実行結果で表示されているDNSサーバのアドレスを/etc/resolv.confに設定すれば、D12LCを使用してインターネットを使えるようになります。