Közben kiadták az HSO 1.1-et :-)
Megpróbálom leírni én hogyan is csináltam a laptopomon (Esprimo V5505) linux alatt a T-Mobile-os HSDPA modemet (USB stick).
Általában saját fordítású kernelt használok a gépeimen, így most testing (lenny) debian alatt egy 2.6.24.3-mas kernelem van, aminek így a forrása is megvan, vagyis egy netről letöltött kernel modul forrás egyszerű make/make install párossal üzembe állítható.
Egy konzol ablakban váljunk roottá: sudo su -
Dugjuk valamelyik usb portra a modemet. Ekkor a modemben lévő ZeroCD feljön egy ablakban, ez a windows alatti automatikus install miatt van így. Zárjuk be az ablakot és ellenőrizzük, hogy mount-olva van-e, ha igen umountoljuk. Ha ezt nem tennénk, akkor a később leírt modem switch nem tudja erről az usb device-ról leválasztani az usb-storage kernel modult. A tapasztalatom az volt, hogy az egész művelet csak akkor működött jól, ha kézzel ki kellett adnom az umount parancsot.
Nézzük meg, hogy néz ki az lsusb kimenete. Nálam csak root-ként látszik az első 2 sor:
Bus 007 Device 001: ID 0000:0000
Bus 006 Device 003: ID 0af0:6971 Option
Bus 006 Device 002: ID 0b38:0003
Bus 006 Device 001: ID 0000:0000
Bus 005 Device 002: ID 0458:003a KYE Systems Corp. (Mouse Systems)
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 005: ID 0bda:0158 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 0000:0000
A második sorban látszódó Option a HSDPA modem.
és nézzük meg ezt is "less /proc/bus/usb/devices", ebben keressünk a Globetrotter szóra, ezt láthatjuk:
S: Product=Globetrotter HSDPA Modem
S: SerialNumber=Serial Number
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=05(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.
Tehát látszik, hogy lát valamit a linux. Most szedjük össze, ami kell hozzá.
Szükséges szoftverek:
HSO Kernel modul
----------------
Ezt egy forumon teszik közzé:
http://www.pharscape.org/component/option,com_forum/Itemid,68/page,view…
most ez a legutolsó verzió:
http://www.pharscape.org/component/option,com_forum/Itemid,68/page,view…
Én ezeket a progikat, amiket rootként kell fordítanom és telepíteni mindig a /usr/src könytárba szoktam másolni. A hso-1.1.tar.gz fájl a hso könyvtárba csomagolódik ki "tar -xzf hso-1.1.tar.gz". Be kell lépni ebbe a hso könyvtárba. Ezután jöhet a make/make install. Ekkor még az lsusb | grep hso nem hoz sort, viszont ha kihúzom, majd visszadugom a modemet, akkor már betölti a modult. (Talán itt számíthat valamit, hogy én nem használok initrd fájlt, abban az esetben lehet, hogy kell még valamit trükközni). Ha eddig eljutottunk, akkor a kernel modul üzemkész.
Ebben a könyvtárban van a hso-nak egy connect.sh szkriptje, amivel lehet intézni a kapcsolódást ezt átmásoltam connect_sajat.sh néven. Az elején át kell írni néhány változót, így néz ki az eredeti fájl eleje:
export APN="internet.eplus.de"
export USR="eplus"
export PAS="gprs"
export PIN="0000"
A magyar T-Mobil esetében a fenti sorokat kell a következőre módosítani ez a stickhez kapott doksiban volt:
export APN="internet"
#export USR=""
#export PAS=""
export PIN="0000"
Persze a PIN helyére mindenkinek a saját modemjében lévő SIM kártya PIN kódját kell írni.
Modem switch progi
------------------
Feladata az adott usb eszközön lecserélni a kernel modult usb-storage-ról hso-ra:
http://www.draisberghof.de/usb_modeswitch/
Ezt is az /usr/src könyvtárba csomagoltam ki. A könyvtárban van egy compile.sh, amivel fordítottam egy binárist usb_modeswitch, ezt bemásoltam a /usr/bin-be. Ezen kívül van egy usb_modeswitch.conf fájl is, amit a /etc könyvtárba másoltam. Ebben a fájlban kb. ilyen szekciók ismétlődnek:
#######################################################
# Option GlobeSurfer Icon (aka "Vodafone EasyBox")
#
# The message SHOULD be the same for all Option devices
DefaultVendor= 0x05c6
DefaultProduct= 0x1000
TargetVendor= 0x0af0
TargetProduct= 0x6600
MessageEndpoint=0x05
MessageContent="55534243123456780000000000000601000000000000000000000000000000"
Az lsusb kimenetében fentebb láthattuk ezt: Bus 006 Device 003: ID 0af0:6971 Option, ebből ez érdekes esetünkben 0af0:6971. Ebben a conf fájlban megkerestem azt a szekciót ahol a DefaultVendor=0x0af0 és a DefaultProduct=6971, ez kb így néz ki:
#######################################################
# Option Icon 225 HSDPA
#
# New Firmware. HSO driver support is available at Pharscape (www.pharscape.org)
#
# Contributor: Matti Viljanen
DefaultVendor= 0x0af0
DefaultProduct= 0x6971
TargetClass= 0xff
MessageEndpoint=0x05
MessageContent="55534243785634120100000080000601000000000000000000000000000000"
Minden mást kikommenteztem a # karakterrel.
chat program
------------
Debianon fel kellett tennem a ppp csomagot mert abban volt benne a chat program, ami kell a connect szkriptnek.
==================================================================================
A használat
-----------
* Dugjuk valamelyik usb portra a modemet
* ha automatikusan montolodna, akkor unmount-oljuk, a tapasztalat szerint az egész dolog, akkor sikerül, ha az automatikus mount után kézzel unmountoljuk, nekem előfordult, hogy eltűnik az ablak és azonnal umuontolódik, ekkor modem ki/be és a feljövő ablakban kattintgatok, ezután már nem unmountolódik automatikusan így kézzel unmountolható
* mount paranccsal ellenőrizzük, hogy ne legyen mountolva
* lsmod-al ellenőrizzük, hogy a hso kernel modul betöltődött-e
* nézzük meg, hogy az usb-storage helyett a hso modul használj-e az eszközt, a "Driver=" részt figyeljük meg "grep -A 10 Globe /proc/bus/usb/devices"
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=hso
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=hso
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
* ekkor azt is ellenőrizzük, hogy megjelentek-e a tty device-ok, "ls -l /dev/ttyH*" ez csak akkor jelenik meg ha az előző pontban "Driver=hso"-t látunk
crw-rw---- 1 root dialout 247, 0 márc 31 14.34 /dev/ttyHS0
crw-rw---- 1 root dialout 247, 1 márc 31 14.34 /dev/ttyHS1
crw-rw---- 1 root dialout 247, 2 márc 31 14.34 /dev/ttyHS2
* most lépjünk be az /usr/src/hso könyvtárba és adjuk ki a "./connect_sajat.sh init" parancsot
init
ATZ
OK
AT+CPIN="0000"
OK
AT+COPS=0
OK
AT+COPS=?
OK
AT+CGDCONT=1,,"internet"
OK
AT$QCPDPP=1,1,"",""
ERRORFailed (ERROR)
A 0000 helyett a saját PIN kódunknak kell látszania. A legvégén látható "ERRORFailed" nekem nem okozott gondot. Ekkor a modem ledje az eddigi villogás helyett elkezdenek fade-elni, világosodik, elhalványul.
* most jöhet az utolsó parancs "./connect_sajat.sh up"
connecting
ATZ
OK
AT_OWANCALL=1,1,0
OK
AT_OWANDATA=1
_OWANDATA: 1, 79.122.21.14, 0.0.0.0, 212.51.115.1, 194.176.224.6, 0.0.0.0, 0.0.0.0, 72000
OK n inet
connected
add route
set nameserver
* Ekkor már folyamatosan világítanak a ledek és megjelenik egy új hálózati interfész ifconfig:
hso0 Link encap:Ethernet HWaddr 00:03:40:9c:f3:f6
inet addr:79.122.21.14 Bcast:79.255.255.255 Mask:255.255.255.255
UP BROADCAST RUNNING NOARP MULTICAST MTU:1486 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Budaörsön a legalacsonyabb sebesség, amit láttam 1Mbit/sec volt.
Udv
Imi