Jakub Trávník's resources

AnyData ADU-E100H CDMA Modem Linux driver (Czech) / Linuxový ovladač

Update 2006-03-16: Pozor! Eurotel mění neco ve svých ustřednách pro CDMA - namísto autentifikace CHAP ustředna žádá PAP (Což je škoda, ono je to méně bezpečné, protože se heslo posílá v přímém tvaru). Ale hlavně Linuxový PPP démon pro PAP používá jiný konfigurační soubor. Pro zprovoznění by mělo stačit skopírovat /etc/ppp/chap-secrets do /etc/ppp/pap-secrets

Od září 2005 prodává Eurotel jako alternativu k staršímu CDMA (1xEVDO Rev. 0) modemu GTran GPC-6420 nový modem AnyDATA ADU-E100H, který snad nebude mít tak špatnou pověst (co se týče chybovosti) jako ten předchozí. Pro nové zákazníky je to jistě příjemná zpráva.

Jak je na tom ale ovladač pro Linuxový kernel? Eurotel i výrobce uvádí kompatibilitu pouze s Windows 2000 a XP. Zprovoznit ovladač pod Linuxem není však těžké, pokud oželíte monitorování stavu modemu.

Návod

Upozornění: veškeré informace zde jsou poskytovány bez jakékoliv záruky. Počítače jsou složitá zařízení a vzájemně se liší od sebe natolik, že nelze vyloučit situaci, kdy postup u mě fungující jinde způsobí ztrátu dat či poškození součástí.

Co budete potřebovat?

Stáhněte si ovladač / Driver download

Ovladač je dostupný jako .diff soubor anebo konkrétní změněné soubory jádra 2.6.13. Soubor .diff popisuje pouze změny provedené proti standardní verzi jádra a tak je ho možné použít ve více verzích stejné řady.

Tyto soubory jsou k dispozici pod stejnou licencí jako jádro Linuxu, tedy GNU General Public License version 2.

Aplikování .diff souboru: Přesuňte se do adrešáře /usr/src/linux-2.6.13/drivers/usb (či kde máte umístěný kernel). Nahrajte do něj .diff soubor a spusťte příkaz patch:

host:/usr/src/linux-2.6.13/drivers/usb# patch -p0 < anydata-linux-2.6.13.diff 

Jeho výstupem by mělo být:

patching file serial/anydata.c
patching file serial/Kconfig
patching file serial/Makefile

Konfigurace jádra

Zkompilujte jádro tak, aby v něm byl přítomný ovladač. Ovladač má název volby USB_SERIAL_ANYDATA. V menuconfigu ho najdete v Device Drivers ---> USB support ---> USB Serial Converter support (zapněte) ---> USB AnyDATA ADU-E100H CDMA Wireless Driver (EXPERIMENTAL). K tomu aby tam skutečně byl je potřeba mít zapnutou USB podporu, podporu pro USB_SERIAL a zapnuté zobrazování experimentálních modulů (Code maturity level options ---> Prompt for development and/or incomplete code/drivers).

Pro úspěšné použití je též kromě vlastního ovladače potřeba zapnout podporu pro Point to Point Protocol, volba CONFIG_PPP (Device Drivers ---> Network device support ---> PPP (point-to-point protocol) support) a PPP_SYNC_TTY (PPP support for async serial ports) na stejném místě. Další volby kompresí mohou být užitečné, ale podle záznamů při vlastním spojení zůstaly nevyužité.

Po instalaci nového jádra či modulů a zavedení modulu (např. přes příkaz modprobe anydata) by se v logu mělo objevit (výpis příkazem dmesg):

drivers/usb/serial/usb-serial.c: USB Serial support registered for anydata
anydata 2-1:1.0: anydata converter detected
usb 2-1: anydata converter now attached to ttyUSB0
anydata 2-1:1.1: anydata converter detected
usb 2-1: anydata converter now attached to ttyUSB1
usbcore: registered new driver anydata

Pokud se Vám tam něco takového objevilo, pak je vše ok.

Konfigurace PPP démona

PPP má konfiguraci uloženou zpravidla v adresáři /etc/ppp/. K vyvolání spojení se sítí Eurotelu potřebujeme nastavit tyto tři soubory:

Do nového souboru /etc/ppp/peers/cdma napíšeme (parametry byly získány kombinací různých existujících konfigurací a tak nemusí být optimální):

debug
/dev/ttyUSB0
921600
noipdefault
defaultroute
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 5
usepeerdns
nopcomp
noauth
noaccomp
nodetach
user "601XXXXXX@etcz"
connect "/usr/sbin/chat -s -S -V -t 5 -f /etc/ppp/cdma.chat"

Upravte při tom řetězec 601XXXXXX na Vaše telefonní číslo a řetězec /dev/ttyUSB0 na Vaše usb zařízení (pokud používáte devfs, udev či něco obdobného, pak název může být /dev/usb/tts/0).

Do souboru /etc/ppp/cdma.chat napište:

'' ''
'' 'ATZ'
'OK' 'ATI'
'OK' 'ATDT#777'
'CONNECT' 'ATO'

A do souboru /etc/ppp/chap-secrets toto:

# Secrets for authentication using CHAP
# client server secret IPaddresses
"601XXXXXX@etcz" * "HESLO" *

Přičemž opět změňte telefonní číslo a do uvozovek doplňte Vaše heslo. Tím by měla být konfigurace hotová.

Spouštění

PPP démon se spouští příkazem pon a parametry se udává, které spojení bude navázano. Naše spojení se jmenuje "cdma":

host:/root# pon cdma

Vzhledem k tomu, že parametrem debug jsou zapnuty hlášení, zobrazí se toho docela dost a z hlášek je možné poznat případnou příčinu problému.

Alternativní řešení

Namísto modulu anydata lze použít přímo usbserial, pokud je ve formě modulu, s tím, že mu dodáte parametry vendor a product. V současné době tím lze dosáhnout naprosto stejného efektu jako s anydata. Výhledově je ovladač anydata lepší jako výchozí bod pro změny a řešení problémů. Způsob zavedení je zde:

host:/root# modprobe usbserial vendor=0x16d5 product=0x6501 

Problémy

Rychlost

Osobně jsem naměřil 480kbit/s download (měřeno v noci) a 140kbit/s upload (lokalita: Praha 10). Mám však kromě tohoto driveru upravený usb-serial aby ignoroval maximální velikost packetu, kterou zařízení udává jako 64B na 1024B. Jestli to má vliv jsem neměřil, ale podle pozorování to zásadní rozdíl není.

Dobrý odkaz s diskuzí o rychlosti ovladače pro modem Gtran, a tedy přinejmenším inspirativními poznámkami, je zde.

Odkazy

Zpět na index - Jakub Trávník's resources.