Sziasztok!
Egy Huawei E220-as 3G modemet szeretnék beállítani úgy, hogy amikor bedugom a gépbe, automatikusan csatlakozik.
Az /etc/udev/rules.d/55-huawei-e220.rules fájl tartalma:
SUBSYSTEM=="usb", SYSFS{idProduct}=="1003", SYSFS{idVendor}=="12d1", RUN+="/opt/3gmodem/plugin.sh &"
Az /opt/3gmodem/plugin.sh több mindent is csinálna, többek között inídtana egy wvdialt, viszont a /dev/ttyUSB0 csak akkor jön létre, ha a plugin.sh már végzett. Ha sleep-et teszek bele, akkor is csak utána.
Ötlet?
- 1190 megtekintés
Hozzászólások
Ezt nézzed meg, hátha segít
http://ubuntuforums.org/showthread.php?t=1193355&page=3
(most sajnos nem jön be)
- A hozzászóláshoz be kell jelentkezni
Itt azt fejtegetik, hogy hogyan lehet modemként felismertetni.
Nekem alapból modemként megy mindenféle udev-beállítás nélkül. Udevből a wvdialt indítanám.
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
De mégse megy alapból modemként, ha bedugod és még nincs usb modem eszközöd. Ha bedugod akkor létre kell jönnie az eszköznek, csak ezután lehet elindítani bármilyen progit, ami ezt az eszközt használná.
dmesg mit ír mikor bedugod, ha nincs semmi sem az udev-ben?
- A hozzászóláshoz be kell jelentkezni
De igen, miután lefut az udevnek futtatásra megadott script. A probléma, hogy csak utána. Ha a scriptet kiveszem, akkor azonnal megy.
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
SZVSZ ehhez nem az udevre van szükséget, hanem egy háttérben futó demonra, ami figyeli, hogy mikor jelenik meg a device file. Amikor megjelenik, akkor pedig lefuttatja a megfelelő scriptet.
Csaba
- A hozzászóláshoz be kell jelentkezni
Ez egy tipikus szívás az udev-vel.
Én is többször, egészen konkrétan találkoztam ilyen gonddal, azaz amikor az udev meghívta a szkriptemet, még nem voltak meg a ttyUSB*
fájlok. Ennek az volt az oka, hogy még nem fejeződött be az eszköz inicializálása. Az segített, hogy egy másik udev szabályt találtam ki, ami ugyanarra az eszközre vonatkozott, csak éppen akkor hívta meg a szkriptet, amikor a ttyUSB*
-ok már létrejöttek.
Mondjuk próbálkozz valami ilyesmivel:
KERNEL=="ttyUSB0", SYSFS{idProduct}=="1003", SYSFS{idVendor}=="12d1", RUN+="/opt/3gmodem/plugin.sh &"
A KERNEL
helyett érdemes lehet még a KERNELS
-szel is próbálkozni, ha a "magasabbrendű" eszközre akarsz hivatkozni... de igazából én sem udev-ből indítanám a tárcsázást, hanem egy kis démonból.
--
http://www.open-st.eu
- A hozzászóláshoz be kell jelentkezni
Na ja, de a ttyUSB* eszközök csak akkor jönnek létre, ha az eszközt modemként inicializálja. Ez az ami alapból nem szokott menni. Gyönyörűen felismeri a kernel, hogy benne van a CDROM, az USBSTORAGE, meg az USBMODEM, csakhogy nem modemként inicializálja az eszközt. Így viszont nem jönnek létre a ttyUSB-k. Ezért szoktak a HUAWEI stick-ekhez usb_modeswitch-et használni.
- A hozzászóláshoz be kell jelentkezni
Így van.
Azt elfelejtettem írni, hogy feltételezem, hogy be van töltve az option driver is. Mert az option driver automatikusan észreveszi ezt a modemet és egyből létre is hozza neki a ttyUSB* bejegyzéseket. Az usb_modeswitch is át tudja kapcsolni az E220-at (E272-t) (és nyilván még sok mást is), csak ennél a modemnél fölösleges használni, mert az option alapból tudja, és úgy sokkal egyszerűbb.
--
http://www.open-st.eu
- A hozzászóláshoz be kell jelentkezni
Az option már része a kernelnek, vagy még kézzel kell hozzágyömöszölni? Az utolsó leírásokban, amiket olvastam (jó régen volt), még kézimunkázni kellett...nem úgy :)
- A hozzászóláshoz be kell jelentkezni
Már része a kernelnek. Ahol én használom, ott modulként van fordítva, de induláskor egyből betöltjük. Pl. egy csomó Huawei modemet gyönyörűen meghajt, sokhoz nem is kell usb_modeswitch. (Ami vicces még, hogy néha az eject /dev/sr0 jobban működik, mint az usb_modeswitch).
--
http://www.open-st.eu
- A hozzászóláshoz be kell jelentkezni
Nem, bárminemű berhelés nélkül ott a ttyUSB.
Simán bedugva kézzel indítható is a wvdial. Csak ezt nem kézzel szeretném indítani.
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
Milyen démonra gondolsz?
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
Nem tudom milyen linux-ot használsz de talán megoldás rá, ha Upstart event-based init daemon segítségével oldod meg, mert ott hivatkozhatsz arra mikor az interface up állapotba kerül
- A hozzászóláshoz be kell jelentkezni
Debian Lenny. Az upstart nem ubuntus cucc?
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
En probalnek valami ilyesmit:
RUN+="/opt/3gmodem/plugin1.sh"
aztan a /opt/3gmodem/plugin1.sh fajlba:
#!/bin/bash
nohup /opt/3gmodem/plugin.sh 2>&1 >/dev/zero &
vegul a /opt/3gmodem/plugin.sh elejere tennek egy "sleep 10"-et.
Teny, hogy nem szep megoldas, de akar mukodhet is... ;-)
- A hozzászóláshoz be kell jelentkezni
Szerintem ez lesz a megoldás, köszönöm!
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
Sajnos így is ugyanaz a gond.
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
A megoldás:
KERNEL=="ttyUSB0", ATTR{dev}=="188:0", SUBSYSTEMS=="usb", ATTRS{product}=="HUAWEI Mobile", ACTION=="add", RUN+="/bin/sh /opt/3gmodem/plugin.sh", OPTIONS+="last_rule"
--
Kum G.
Neked már van Linux pólód?
- A hozzászóláshoz be kell jelentkezni
En igy hasznalom:
ashbringer:~# cat /etc/udev/rules.d/90-huawei_e630.rules
KERNELS=="ttyUSB0", SUBSYSTEMS=="usb-serial", DRIVERS=="option1", ATTRS{port_number}=="0", RUN="/usr/bin/pon pannon"
- A hozzászóláshoz be kell jelentkezni