Web'n'walk

Icon-projectview.png A T-Mobile által forgalmazott Web'n'walk USB-s modemek egy rövid telepítést követően használhatóak openSUSE alatt. Kész RPM csomag hiányában kézzel kell elvégezni a kernelmodul fordítását. Ez a közeljövőben vélhetően egyszerűsödni fog.

Telepítés

Szükséges csomagok:

  • kernel-sources
  • gcc
  • make

Két programot kell telepítenünk. Egy illesztőprogramot a modemhez, illetve egy kis segédalkalmazást, amely automatizálja ennek használatát. Első lépésben nyissunk egy terminált, és váljunk root felhasználóvá:

enovak@enovak:~> su -
Jelszó:
enovak:~ # 

Csatlakoztassuk valamelyik USB portra a modemet. Ekkor a windowsos automatikus telepítő miatt a megnyílik egy ZeroCD ablak. Zárjuk be az ablakot és ellenőrizzük, hogy mount-olva van-e az eszköz. Ha igen, válasszuk le. Ha ezt nem tennénk, akkor a később leírt modem switch nem tudja erről az usb eszközről leválasztani az usb-storage kernelmodult.

enovak:~  # mount
[...]
/dev/sr1 on /media/ZeroCD type iso9660 (ro,nosuid,nodev,noatime,uid=1000,utf8)
enovak:~ # umount /dev/sr1

Nézzük meg, hogy néz ki az lsusb kimenete.

enovak:~ # lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 0af0:6971 Option
Bus 001 Device 001: ID 0000:0000

A második sorban látszódó Option a HSDPA modem, az eszközazonosítója 0af0:6971. Csatoljuk fel az usbfs-t, és a Globetrotter szóra keresve nézzük meg az eszköz jellemzőit a /proc/bus/usb/devices fájlban:

enovak:/home/enovak/Documents/Work/NPSH/WebNWalk/hso-1.6 # mount usbfs
enovak:/home/enovak/Documents/Work/NPSH/WebNWalk/hso-1.6 # less /proc/bus/usb/devices

T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=0af0 ProdID=6971 Rev= 0.00
S:  Manufacturer=Option N.V.
S:  Product=Globetrotter HSDPA Modem
S:  SerialNumber=Serial Number
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=85(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

A 4. sorban látszik, hogy az usb-storage kernel modul használja ezt az eszközt. Most le kell töltenünk az eszköz-illesztőprogramot. Ezt a fejlesztők egy fórumban teszik közzé a PHARscape.org oldalán. Keressük meg a legutolsó verziót, töltsük le egy ideiglenes könyvtárba. A szócikk írásának pillanatában az 1.12-es verzió a legújabb. (2009.07.03.)

A letöltött tar.gz -t csomagoljuk ki, és lépjünk bele a létrejövő könyvtárba:

enovak:~ # tar xzf hso-1.12.tar.gz
enovak:~ # cd hso-1.12/

Majd fordítsuk le, és telepítsük a kernelmodult:

enovak:~/hso-1.12 # make
enovak:~/hso-1.12 # make install

Az illesztőprogram a következő azonosítójú eszközöket támogatja:

{USB_DEVICE(0x0af0, 0x6711),
{USB_DEVICE(0x0af0, 0x6731),
{USB_DEVICE(0x0af0, 0x6751),
{USB_DEVICE(0x0af0, 0x6771),
{USB_DEVICE(0x0af0, 0x6791),
{USB_DEVICE(0x0af0, 0x6811),
{USB_DEVICE(0x0af0, 0x6911),
{USB_DEVICE(0x0af0, 0x6951),
{USB_DEVICE(0x0af0, 0x6971),
{USB_DEVICE(0x0af0, 0x7011),
{USB_DEVICE(0x0af0, 0x7031),
{USB_DEVICE(0x0af0, 0x7051),
{USB_DEVICE(0x0af0, 0x7071),
{USB_DEVICE(0x0af0, 0x7111),
{USB_DEVICE(0x0af0, 0x7211),
{USB_DEVICE(0x0af0, 0x7251),
{USB_DEVICE(0x0af0, 0x7271),
{USB_DEVICE(0x0af0, 0x7311),
{USB_DEVICE(0x0af0, 0xc031),
{USB_DEVICE(0x0af0, 0xd013),
{USB_DEVICE(0x0af0, 0xd031),
{USB_DEVICE(0x0af0, 0xd033), 

Látható tehát, hogy a 0af0:6971-es azonosítójú Web'n'walk stick támogatott. Most húzzuk ki a modemet, majd csatlakoztassuk újra. Mivel az openSUSE újra felcsatolja a ZeroCD-t, válasszuk le megint - ezt majd hamarosan orvosoljuk. A betöltött kernelmodulok között már megjelenik a hso modul, illetve létrejönnek az eszközfájlok is a /dev alatt:

enovak:~ # umount /dev/sr1
enovak:~ # lsmod | grep hso
hso                    42120  0
rfkill                 10768  2 hso
usbcore               124268  5 hso,usb_storage,ehci_hcd,ohci_hcd
enovak:~ # ls -l /dev/ttyH*
crw-rw---- 1 root dialout 252, 0 Oct  2 11:31 /dev/ttyHS0
crw-rw---- 1 root dialout 252, 1 Oct  2 11:31 /dev/ttyHS1
crw-rw---- 1 root dialout 252, 2 Oct  2 11:31 /dev/ttyHS2

Az eszköz tehát még automatikusan felcsatolásra kerül, illetve egyelőre az usb-storage, és nem a frissen fordított kernelmodult használja. A problémát orvosoljuk az udev beállításait felülbíráló segédprogrammal. Letöltés után csomagoljuk ki, és telepítsük:

enovak:~ # tar xzf udev.tar.gz
enovak:~ # cd udev/
enovak:/udev #  make install

Ennek hatására a modemet csatlakoztatva nem kerül felcsatolásra az eszköz, és már a hso modul töltődik be hozzá.

Konfigurálás

Már csak be kell állítani a csatlakozási paramétereket. Ehhez a kicsomagolt hso archívumban szerkesszük a connect.sh fájlt. Az első sorokban adható meg a használni kívánt hálózat, és a PIN kód. Az eredeti fájl:

export APN="internet.eplus.de"
export USR="eplus"
export PAS="gprs"
export PIN="0000"

és módosítás után:

export APN="internet"
#export USR="eplus"
#export PAS="gprs"
export PIN="0000"

A fenti beállítás a magyarországi T-Mobile hálózatot fogja használni ('internet'), és 0000-ás PIN kódot használ. Természetesen ide a saját kódunkat állítsuk be.

Keressük meg a fájlban a következő, #-jellel kezdődő sorokat, és távolítsuk el a #-jelet:

      #ifconfig hso0 $PIP netmask 255.255.255.255 up
       
      	ORT="`route | grep default | awk '{printf $8}'`"	# find the old default route and replace it
       #route delete default dev $ORT
       echo "add route"
       #route add default dev hso0
       #mv -f /etc/resolv.conf /tmp/resolv.conf.tmp

tehát így nézzen ki a connect.sh adott szakasza:

       ifconfig hso0 $PIP netmask 255.255.255.255 up
       
       ORT="`route | grep default | awk '{printf $8}'`"	# find the old default route and replace it
       route delete default dev $ORT
       echo "add route"
       route add default dev hso0
       mv -f /etc/resolv.conf /tmp/resolv.conf.tmp

Csatlakozás

Most pedig csatlakozzunk a 3G hálózatra. Első lépésben inicializáljuk a modemet:

enovak:/hso-1.6 # ./connect.sh init
init
ATZ
OK
AT+CPIN="6316"
OK
AT+COPS=0
OK
AT+COPS=?
OK
AT+CGDCONT=1,,"internet"
OK
AT$QCPDPP=1,1,"",""
ERRORFailed (ERROR)

Az ERRORFailed (ERROR) sor nem probléma. A modem ledjei már nem villognak, hanem pulzálva világítanak. Most aktiváljuk a kapcsolatot:

enovak:/home/enovak/Documents/Work/NPSH/WebNWalk/hso-1.6 # ./connect.sh up
connecting
ATZ
OK
AT_OWANCALL=1,1,0
OK
AT_OWANDATA=1
_OWANDATA: 1, 79.122.56.251, 0.0.0.0, 84.2.44.1, 84.2.46.1, 0.0.0.0, 0.0.0.0, 72000

OK n inet
connected

add route
set nameserver

Elvileg létrejött a hso0 nevű interfészünk:

enovak:/home/enovak/Documents/Work/NPSH/WebNWalk/hso-1.6 # ifconfig

[...]
hso0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:79.122.1.177  P-t-P:79.122.1.177  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1486  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 b)  TX bytes:6374 (6.2 Kb)

Kész vagyunk, már működnie kell a kapcsolatnak. A konfigurálás ezennel kész, ha máskor használni szeretnénk a HSDPA kapcsolatunkat, csak a connect.sh -t kell meghívnunk.

Probléma esetén

Ha:

  • a csatlakozás után esetleg még nem működik a kapcsolat, próbáljunk le-, majd újra csatlakozni a connect.sh down paranccsal.
  • nem jelennek meg a ttyH* device-ok, akkor távolítsuk el, majd csatlakoztassuk újra a sticket.
  • a következő üzenetet látjuk az udev.tar.gz csomag telepítése közben:
   Looking for default devices
   Found default devices (1)
   All devices in target class mode
   No default device found. Is it connected? Bye

akkor csatlakoztassuk az usbfs-t:

mount usbfs
  • a telepítés nem sikerül, bizonyosodjuk meg róla, hogy a telepítéskor nincs csatlakoztatva az eszköz.