Huawei-e169

Z openSUSE wiki

Sposób konfiguracji Modemu Huawei E169 (USB) oraz usługi iPlus.

Spis treści

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