Sziasztok!
Innen-onnan utána olvasva és megnézegetve 1-2 kernel modult, a következő tanácsot tudom Nektek adni.
Szükséges progik:
1) wvdial
2) pppd
3) usb_modeswitch
4) kernel - option modul
5) udev konfig
1) wvdial: ez paraméterezi a pppd-t amivel össze fog kapcsolódni a szolgáltatóval. A t-mobil-os konfigot tudom Nektek mellékelni. A többi szolgáltatónál az un. APN-t (init5 sorban) kell megcserélni. Ez a t-mobile esetében "internet" csupa kisbetűvel.
A usernév és jelszónál fontos, hogy idézőjelek között legyenek.
A /etc/wvdial.conf nálam működő beállítása:
---------ettől---------------
[Dialer Defaults]
ISDN = off
Modem Type = USB Modem
Phone = *99#
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Auto Reconnect = off
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = off
Idle Seconds = 0
Modem = /dev/ttyUSB2
ISDN = off
Modem Type = USB Modem
Baud = 460800
Init = ATZ
Init2 = AT&F &D2 &C1
Init3 = ATS7=60 S30=0 S0=0
Init4 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init5 = AT+CGDCONT=1,"IP","internet"
Phone = *99#
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Auto DNS = on
Password = "a_szolgaltatotol_kapott_jelszo"
Username = "a_belepesi_neved_a_szolgaltatonal"
Auto Reconnect = off
Abort on Busy = off
Carrier Check = off
Check Def Route = on
Abort on No Dialtone = off
Stupid Mode = on
New PPPD = yes
---------eddig---------------
2) PPPD
Elvileg ezt a wvdial karbantartja valamennyire, mégis azt vettem észre, hogy a szolgáltató a CHAP authentikációval semmit sem tudott kezdeni (valamiért azzal akart authentikálni a kliensem, de pl. a nokia telóm pap-ot használt alapból). E mellett számomra érthetetlen módon a távoli IP-t (remote address) nem tudja megállapítani a pppd és ezért a 10.64.64.64-et adja. Néha a dns-nek is a 10.11.12.13 és 10.11.12.14 címeket adja és a debian linuxomon is a www.suse.de címen akar valamit a pppd elérni de a dns szerverek nincsennek, ezért semmit sem oldanak fel...
A pppd-nek van pár állománya, ezeket is beidézem:
/etc/ppp/pap-secrets fájl (a következő sor 1 sorban lenne és a fentebb említett userid-t és jelszót tartalmazza, elvileg a wvdial szerkeszti, ha nem ez a formátuma, 3 oszlop, a középsőben * van):
---------ettől---------------
a_belepesi_neved_a_szolgaltatonal * a_szolgaltatotol_kapott_jelszo
----------eddig--------------
/etc/ppp/options állomány: (az utolsó sor 10.6.6.6 nem fut le, de ha kiveszed a # jelet, akkor a távoli IP 10.6.6.6 lesz a 10.64.64.64 helyett amit a pppd állít be, mert a szolgáltatótól nem kapja meg. A t-mobile _műszaki_ ügyfélszolgálata NEM TUDTA MEGMONDANI, hogy a 10.64.64.64-es címmel okozok-e nekik lelki sérülést vagy sem, javasoltak egy levelet az ügyfélszolgálat címre, de engem nem érdekel. :-) )
---------ettől---------------
# /etc/ppp/options
asyncmap 0
auth
crtscts
lock
hide-password
modem
+pap
-chap
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
pap-timeout 30
ipcp-accept-local
ipcp-accept-remote
noipx
connect-delay 3000
lcp-echo-failure 0
lcp-echo-interval 0
# az alábbi sor a távoli IP-t állítja be,
# :10.6.6.6
----------eddig--------------
/etc/ppp/peers/provider tartalma:
---------ettől---------------
connect "/usr/sbin/chat -v -f /etc/chatscripts/pap -T *99#"
/dev/modem
/dev/ttyUSB2
460800
noipdefault
usepeerdns
defaultroute
persist
noauth
debug
----------eddig--------------
usb_modeswitch:
2 lehetőséged van. Vagy felteszed csomagból - ami régebbi egy picit - vagy felteszed forrásból és lefordítod.
Én az utóbbit választottam, mert akkor még nem tudtam, hogy miért nem megy az egész.
Az usb_modeswitch elérhetősége itt: http://www.draisberghof.de/usb_modeswitch/
A program azt csinálja, hogy ha beírod, hogy lsusb, akkor látod az USB eszközöket:
us 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 006 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 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 19d2:2000 ONDA Communication S.p.A.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Az eszköz (MF637) alulról a második.
A 0x2000-ás azonosító arra a részre utal az eszközön, ahol a driver van, ami a windows alá jó (ugyebár nincs az eszközhöz CD lemez, csak egy beépített memória amiben a driver van).
Az usb_modswitch paraméterezve ezt kapcsolja át és az eszköz "modemmé fog válni".
Az usb_modswitch-hez tartozik egy /etc/usb_modeswitch.conf fájl aminek a következő a tartalma nálam:
-----------ettől-----------
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageEndpoint=0x01
MessageContent="55534243123456782000000080000c85010101180101010101000000000000"
-----------eddig-----------
4) Kernel modulok - option és usbserial
Az usb_modeswitch oldalán azt írják, hogy ne a usbserial modult használjuk, hanem az option-t. Persze az option meg szépen berántja az usbserial-t. De végül az option jelentkezik be valahogy így:
Aug 13 19:52:16 base kernel: usbcore: registered new interface driver usbserial
Aug 13 19:52:16 base kernel: USB Serial support registered for generic
Aug 13 19:52:16 base kernel: usbcore: registered new interface driver usbserial_generic
Aug 13 19:52:16 base kernel: usbserial: USB Serial Driver core
Aug 13 19:52:16 base kernel: USB Serial support registered for GSM modem (1-port)
Aug 13 19:52:16 base kernel: option 2-2:1.0: GSM modem (1-port) converter detected
Aug 13 19:52:16 base kernel: usb 2-2: GSM modem (1-port) converter now attached to ttyUSB0
Aug 13 19:52:16 base kernel: option 2-2:1.1: GSM modem (1-port) converter detected
Aug 13 19:52:16 base kernel: usb 2-2: GSM modem (1-port) converter now attached to ttyUSB1
Aug 13 19:52:16 base kernel: option 2-2:1.3: GSM modem (1-port) converter detected
Aug 13 19:52:16 base kernel: usb 2-2: GSM modem (1-port) converter now attached to ttyUSB2
Aug 13 19:52:16 base kernel: usbcore: registered new interface driver option
Aug 13 19:52:16 base kernel: option: v0.7.2:USB Driver for GSM modems
Tehát erről a GSM modem-ről lehet legjobban felismerni, meg hogy ttyUSBx-et ad magából. Ha lenne más eszközöd ami szintén USB-s, akkor a számozás elcsúszhat, szóval érdemes a /var/log/messages-re egy pillantást vetni.
Azt is írják a fentebb említett oldalon, hogy az option után kell az usb_modeswitch-et futtatni, mert az option modul a 0x2000-ás eszközt keresi. Nos a forrást megnézve, nem éppen igaz ez. Ha bedugod az eszközt, akkor az alapbók a 0x2000-ra hallgat még és ahogy az usb_modeswitch lemegy azonnal átáll 0x0031-re és berántja szépen az option modult usbserial-al együtt.
base:/etc# lsmod|grep usb
usbserial 31444 4 option
usb_storage 48456 0
usbhid 24784 0
usbcore 128996 7 option,usbserial,usb_storage,usbhid,ehci_hcd,uhci_hcd
FONTOS: nekem 2.6.27-es kernelem volt és a fentebb leírtak után bár ment a kapcsolat, de ha intenzívebb forgalom indult a modemen, akkor egyszerűen megállt az egész. Bár a kék led villogott, hogy van kapcsolat, de semmi sem jött át.
Nem tudom, hogy hányas kerneltől megy rendesen, de lehoztam a 2.6.31-rc5-öt tegnap este (mert bár az option modul verziószáma totál ugyanaz volt, de a fájl már jelentős mértékben nőtt) és azzal megszünt ez a hiba és stabilnak tűnik az egész. Elképzelhető, hogy a 2.6.30-as (stabil) kernellel is megy, de a www.linux-usb.org szerint nemrégen lett hozzáadva a támogatás:
http://www.qbik.ch/usb/devices/showdev.php?id=4561 , szóval jobb a frissebb.
Ha meg nem megy a legfrissebb stabil kernellel, akkor várakozás vagy fordítás...
Arról, hogy van-e option modul a kernelben úgy győződhetsz meg, hogy kiadod a "modprobe option" parancsot (idézőjel nélkül természetesen). Ha néma csendben van a gép, csak egy üres sort dob, akkor van ilyen modul (jó eséllyel a disztirbúciók alap kernel csomagjában szerintem benne lesz).
Az "lsmod | grep usb" parancs setítségével megnézheted, hogy bejött-e a modul (fentebb már írtam).
5) UDEV konfig.
Ez elég egyszerű. A lényeg, hogy ha van ilyen csomag telepítve a gépeden, akkor még az usb_modeswitch-et sem kell kiadnod. (Ha nincs, akkor a modem rákötése után manuális meló...) Ha a gép meglátja a 0x2000-es azonosítójú eszközt a ZTE gyártótól (192d vagy mi a gyártó kódja), akkor azonnal futtatja az usb_modeswitch-et, ami átkapcsolja az eszközödet. Ennek hatására láncreakcióként a kernel berántja az option modult (mivel az már ismeri), majd az option meg magával rántja az usbserial-t. Ezután már csak tárcsázni kellene...
Az udev konfigja:
/etc/udev/rules.d/99-zte.rules állományt hozd létre és másold bele ezt (egyetlen sor az egész):
-------ettől------
SUBSYSTEM=="usb", SYSFS{idProduct}=="2000", SYSFS{idVendor}=="19d2", RUN+="/usr/sbin/usb_modeswitch"
-------eddig------
Ez azt jelenti, hogy ha a 192d gyártó 2000-ás kódú eszközét meglátja, akkor elindítja az usb_modeswitch-et.
--------------------------
Ha ezen túlvagy, akkor dugd rá az eszközt az USB-re.
Majd írd be: wvdial
Pár másodperc után készen áll a friss, ropogós internet kapcsolat.
Ha kérdésetek lenne, írjatok ide és próbálok segíteni.
Üdv:
Hank