Huawei-e169
Z openSUSE wiki
Sposób konfiguracji Modemu Huawei E169 (USB) oraz usługi iPlus.
Wymagania do działania:
- openSUSE 11.0
- Jądro systemu !!! Linux sea-star 2.6.25.20-0.1-default #1 SMP 2008-12-12 20:30:38 +0100 i686 i686 i386 GNU/Linux
- modem Huawei E169, karta SIM, znajomość kodu PIN
- wolne złącze USB w komputerze
- pakiet wvdial, ppp, usb_modswitch (do zainstalowania ze standardowych repozytoriów openSUSE)
Kilka słów ogólnego wyjaśnienia. Modem ten działa jednocześnie jako USB PenDrive, więc proszę się nie zdziwić, jeśli po włożeniu go do portu USB zechce uruchamiać cokolwiek. Proszę to pominąć. Nas interesuje jego funkcjonalność jako modem, która jest tak czy inaczej i nie wymaga od nas żadnej interwencji.
Włączamy urządzenie do USB, co się dzieje?
sea-star:/home/adasiek # dmesg Mar 25 12:47:53 sea-star kernel: hub 2-0:1.0: unable to enumerate USB device on port 3 Mar 25 12:47:54 sea-star kernel: usb 3-1: new full speed USB device using uhci_hcd and address 2 Mar 25 12:47:54 sea-star kernel: usb 3-1: configuration #1 chosen from 1 choice Mar 25 12:47:54 sea-star kernel: usb 3-1: New USB device found, idVendor=12d1, idProduct=1001 Mar 25 12:47:54 sea-star kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=1 Mar 25 12:47:54 sea-star kernel: usb 3-1: Product: HUAWEI Mobile Mar 25 12:47:54 sea-star kernel: usb 3-1: Manufacturer: ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Mar 25 12:47:54 sea-star kernel: usb 3-1: SerialNumber: ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Mar 25 12:47:54 sea-star kernel: Initializing USB Mass Storage driver... Mar 25 12:47:54 sea-star kernel: scsi2 : SCSI emulation for USB Mass Storage devices Mar 25 12:47:54 sea-star kernel: usbcore: registered new interface driver usb-storage Mar 25 12:47:54 sea-star kernel: USB Mass Storage support registered. Mar 25 12:47:54 sea-star kernel: usb-storage: device found at 2 Mar 25 12:47:54 sea-star kernel: usb-storage: waiting for device to settle before scanning Mar 25 12:47:54 sea-star kernel: hub 2-0:1.0: unable to enumerate USB device on port 3 Mar 25 12:47:54 sea-star kernel: usb 3-1: USB disconnect, address 2 Mar 25 12:47:55 sea-star kernel: usb 3-1: new full speed USB device using uhci_hcd and address 3 Mar 25 12:47:55 sea-star kernel: usb 3-1: configuration #1 chosen from 1 choice Mar 25 12:47:55 sea-star kernel: usb-storage: probe of 3-1:1.0 failed with error -5 Mar 25 12:47:55 sea-star kernel: usb-storage: probe of 3-1:1.1 failed with error -5 Mar 25 12:47:55 sea-star kernel: usb-storage: probe of 3-1:1.2 failed with error -5 Mar 25 12:47:55 sea-star kernel: scsi6 : SCSI emulation for USB Mass Storage devices Mar 25 12:47:55 sea-star kernel: usb 3-1: New USB device found, idVendor=12d1, idProduct=1001 Mar 25 12:47:55 sea-star kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=1 Mar 25 12:47:55 sea-star kernel: usb 3-1: Product: HUAWEI Mobile Mar 25 12:47:55 sea-star kernel: usb 3-1: Manufacturer: ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Mar 25 12:47:55 sea-star kernel: usb 3-1: SerialNumber: ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Mar 25 12:47:55 sea-star kernel: usb-storage: device found at 3 Mar 25 12:47:55 sea-star kernel: usb-storage: waiting for device to settle before scanning Mar 25 12:47:55 sea-star kernel: usbcore: registered new interface driver usbserial Mar 25 12:47:55 sea-star kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic Mar 25 12:47:55 sea-star kernel: usbcore: registered new interface driver usbserial_generic Mar 25 12:47:55 sea-star kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core Mar 25 12:47:55 sea-star kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for GSM modem (1-port) Mar 25 12:47:55 sea-star kernel: option 3-1:1.0: GSM modem (1-port) converter detected Mar 25 12:47:55 sea-star kernel: usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0 Mar 25 12:47:55 sea-star kernel: option 3-1:1.1: GSM modem (1-port) converter detected Mar 25 12:47:55 sea-star kernel: usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1 Mar 25 12:47:55 sea-star kernel: option 3-1:1.2: GSM modem (1-port) converter detected Mar 25 12:47:55 sea-star kernel: usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2 Mar 25 12:47:55 sea-star kernel: usbcore: registered new interface driver option Mar 25 12:47:55 sea-star kernel: drivers/usb/serial/option.c: USB Driver for GSM modems: v0.7.2 Mar 25 12:47:56 sea-star kernel: scsi 6:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2 Mar 25 12:47:56 sea-star kernel: sr1: scsi-1 drive Mar 25 12:47:56 sea-star kernel: sr 6:0:0:0: Attached scsi CD-ROM sr1 Mar 25 12:47:56 sea-star kernel: sr 6:0:0:0: Attached scsi generic sg2 type 5 Mar 25 12:47:56 sea-star kernel: scsi 6:0:0:1: Direct-Access HUAWEI SD Storage 2.31 PQ: 0 ANSI: 2 Mar 25 12:47:56 sea-star kernel: sd 6:0:0:1: [sdb] Attached SCSI removable disk Mar 25 12:47:56 sea-star kernel: sd 6:0:0:1: Attached scsi generic sg3 type 0 Mar 25 12:47:56 sea-star kernel: usb-storage: device scan complete Mar 25 12:48:06 sea-star kernel: ISO 9660 Extensions: Microsoft Joliet Level 3 Mar 25 12:48:06 sea-star kernel: ISOFS: changing to secondary root Mar 25 12:48:06 sea-star hald: mounted /dev/sr1 on behalf of uid 1000
Sprawdzamy, czy modem jest widoczny poprawnie przez nasz SUSE
sea-star:/home/adasiek # lsusb Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem sea-star:/home/adasiek # cat /proc/bus/usb/devices T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 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
Dodatkowo, na wszelki wypadek instalujemy pakiet o nazwie usb_modeswitch
W pliku /etc/usb_modeswitch.conf edytujemy:
######################################################## # Huawei E169 # # Contributor: Dale Lane DefaultVendor= 0x12d1 DefaultProduct= 0x1001 DetachStorageOnly=0 HuaweiMode=1 ########################################################
Plik konfiguracyjny dla wvdial: /etc/iplus-e169.conf
############################# [Dialer pin] Modem = /dev/ttyUSB0 Init1 = AT+CPIN=1234 ## <- tu wpisz swój PIN zamiast 1234 [Dialer umts] Modem = /dev/ttyUSB0 Baud = 460800 New PPPD = yes Dial Command = ATDT Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = AT+cgdcont=1,"IP","www.plusgsm.pl" ISDN = 0 Modem Type = Analog Modem Phone = *99***1# Username = iplus Password = iplus Timeout = 120 Stupid Mode = yes Idle Seconds = 500 #############################
Inicjalizacja PINu w urządzeniu:
To wykonujemy jeden raz po włożeniu modemu, zapamięta PIN.
sea-star:/etc # wvdial --config /etc/iplus-e169.conf pin --> WvDial: Internet dialer version 1.60 --> Cannot get information for serial port. --> Initializing modem. --> Sending: AT+CPIN=6359 AT+CPIN=6359 OK --> Modem initialized. --> Configuration does not specify a valid phone number. --> Configuration does not specify a valid login name.
Proszę się nie przejmować ostatnimi dwoma linijkami.
Polecenie, które połączy nas z internetem.
sea-star:/etc # wvdial --config /etc/iplus-e169.conf umts --> 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 --> Sending: AT+cgdcont=1,"IP","www.plusgsm.pl" AT+cgdcont=1,"IP","www.plusgsm.pl" OK --> Modem initialized. --> Idle Seconds = 500, disabling automatic reconnect. --> Sending: ATDT*99***1# --> Waiting for carrier. ATDT*99***1# CONNECT --> Carrier detected. Starting PPP immediately. --> Starting pppd at Wed Mar 25 13:49:12 2009 --> Pid of pppd: 4278 --> Using interface ppp0 --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> local IP address 77.112.64.171 --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> remote IP address 10.64.64.64 --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> primary DNS address 212.2.96.52 --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> secondary DNS address 212.2.96.51 --> pppd: ĐońˇPŹ[06][08]0Ź[06][08] --> Script /etc/ppp/ip-up run successful --> Default route Ok. --> Nameserver (DNS) Ok. --> Connected... Press Ctrl-C to disconnect --> pppd: ĐżôˇPŹ[06][08]0Ź[06][08]
w tym momencie mamy internet, proszę pamiętać, aby nie naciskać CTRL+C, bo to zakończy połączenie.
Dodatkowo ciekawa dyskusja na Forum openSUSE [1]:
Mam nadzieję, że ten krótki opis pomoże.
Adam Jurkiewicz

