Jeg har leget lidt med mit Huawei E220 7,2 Mbit/s 3 USB-modem under
linux. Når jeg får det til at fungere, fungerer det ganske udmærket og
pålideligt, men opstarten i denne proces har i nogle sammenhænge været
en smule langsommelig. Problemet er (så vidt jeg kan overskue) den helt
grundlæggende initialisering af modemet, hvor der ganske enkelt ikke
konstrueres /dev/ttyUSB{0,1,2} automatisk. Jeg bruger en 2.6.24 kerne
(Ubuntu Hardy generic), hvor jeg kan læse i mange beskrivelser, at dette
burde fungere automatisk, men det gør det ikke...
Hvis jeg anvender standard-kernen uden nogen som helt tilpasning, bliver
der når USB modemet plugges i konstrueret tre /dev/sg{0,1,2}, men ingen
/dev/ttyUSB{1,2,3}. Og modemet fungerer ganske enkelt ikke på noget
tidspunkt som modem.
Hvis jeg anvender beskrivelsen fra følgende side:
http://wwwu.uni-klu.ac.at/agebhard/HuaweiE220/
bliver /dev/sg{0,1,2} konstrueret ved plugin og efter ca. 10 minutter
konstrueres /dev/ttyUSB{0,1,2}. Herefter fungerer det fremragende som
modem. - For at overvåge denne proces lagde jeg mærke til (i
udevmonitor) at udev ca. hver andet minut automatisk genstartede
processen og efter en 4-5 genstarter fungerede modemet (og udev holdt op
med at genstarte processen).
Da jeg ofte er utålmodig og ikke gider vente 10 minutter på
internetforbindelse, bestemte jeg mig for at snyde udev til at lave
disse genstarter lidt oftere. Jeg lagde kommandoerne fra ovenstående
side ned i et script og bad i stedet udev om at køre dette script når
modemet blev plugget ind. I det samme script tilføjede jeg opstarten af
et andet script, der kører i baggrunden og hver 20. sekund tjekker
hvorvidt /dev/ttyUSB{0,1,2} er blevet konstrueret. Og hvis de ikke er
konstrueret, dræber det andet script det første script, hvorefter udev
automatisk genstarter processen. Dette fungerer faktisk ganske udmærket,
hvor jeg nu automatisk får forbindelse i løbet af et minut til
halvanden. - Dette fungerer, og jeg kan godt leve med at skulle vente et
minuts tid, men det er så meget fusk, at alt vender sig i min mave... Og
jeg kan simpelthen ikke forstå, hvorfor det er nødvendigt. Jeg har
selvfølgeligt prøvet i stedet at fjerne modulerne og genindlæse dem
sidenhen, men det giver tilsyneladende ikke samme effekt som udev's
genstart af processen.
Jeg vil meget gerne have hjælp til at forstå dette problem?
Problemet kan naturligvis meget vel hænge sammen med min opsætning og
hardware. I tilfælde af at nogle af læserne ved mere om det huaweiAktBbo
program, hvor kildekoden kan findes her:
http://www.kanoistika.sk/bobovsky/archiv/umts/huaweiAktBbo.c
Har jeg yderligere et spørgsmål (der meget vel kan hænge sammen med det
ovenstående):
Når mine scripts kører 'huaweiAktBbo', kommer der relativt ofte en fejl:
huaweiAktBbo: huaweiAktBbo.c:113: main: Assertion `dev' failed.
Hladam HUAWEI E220 a prepnem na modem - bbo 06
Mine scripts ignorerer bare denne fejl og prøver igen, og efter nogle
forsøg kommer den mere korrekte meddelelse (hvorefter /dev/ttyUSB{0,1,2}
laves):
Hladam HUAWEI E220 a prepnem na modem - bbo 06
4 set feature request returned 0
Prepnute-OK, Mas ttyUSB0 ttyUSB1 (cez usbserial vendor=0x12d1
product=0x1003)
pozri /proc/bus/usb/devices
--
Mvh. Jacob Tranholm <
http://jtranholm.dk/>
Karl R. Popper: Observation statements and statements of experimental
results are always interpretations of the facts observed.
P.Hein: Matematik er dét, hvis sandhed er uafhængig af dets virkelighed