Newsgroup: it.comp.os.linux.iniziare
Titolo: Caricare automaticamente un modulo del kernel

Salve a tutti,
vorrei che quando collego il mio telefono umts con cavo usb mi venisse
*automaticamente* caricato il modulo usbserial (cioe' senza essere
costretto ogni volta a fare # modprobe usbserial).
Per questo ho messo "blacklist cdc-acm" in /etc/modprobe.d/blacklist
altrimenti mi carica automaticamente il modulo cdc-acm, che io non voglio.
Poi ho inserito "options usbserial vendor=0x0421 product=0x043a" in
/etc/modprobe.d/usbserial, che sono i codici relativi al mio Nokia N70
presi da /proc/bus/usb/devices.
Il problema e' che ancora il modulo usbserial devo caricarlo manualmente,
altrimenti niente /dev/ttyUSB0...
Ho letto le pagine man di modprobe, modprobe.conf, depmod, modules.dep
nonché il file /usr/src/linux/Documentation/usb/usb-serial.txt ma non ho
ancora trovato risposta al mio problema.
Qualcuno puo' darmi un aiutino?
Grazie infinite a chi vorra' rispondere.
-- 
hamr...@toglimi.quipo.it
ANTI-SPAM: please cut "toglimi." for my real e-mail address.
Powered by Linux 2.6.20 on Debian Etch
Registered Linux user #291116 
http://counter.li.org

 Qualcuno puo' darmi un aiutino?
Dipende dalla tua distribuzione, che non hai menzionato, ma in linea di
principio bastera' aggiungere usbserial a /etc/modules:
# echo usbserial >> /etc/modules
-- 
Best Regards, Jack
Linux User #264449
Powered by Debian GNU/Linux

 principio bastera' aggiungere usbserial a /etc/modules:
Lo so, ma cosi' ho il modulo caricato anche quando il telefono non e'
connesso, volevo evitare proprio questo.
Mi potresti rispondere che "tanto i moduli non in uso il kernel li rimuove
dopo un po' di tempo", ma il punto non e' questo: vorrei che il kernel
associasse il modulo da me stabilito ad una periferica da me stabilita.
Esattamente come carica automaticamente il modulo cdc-acm senza che io lo
abbia incluso in /etc/modules.


 principio bastera' aggiungere usbserial a /etc/modules:
Lo so, ma cosi' ho il modulo caricato anche quando il telefono non e'
connesso, volevo evitare proprio questo.
Mi potresti rispondere che "tanto i moduli non in uso il kernel li rimuove
dopo un po' di tempo", ma il punto non e' questo: vorrei che il kernel
associasse il modulo da me stabilito ad una periferica da me stabilita.
Esattamente come carica automaticamente il modulo cdc-acm senza che io lo
abbia incluso in /etc/modules.


 lo abbia incluso in /etc/modules.
La sparo: forse usando udev?

 associasse il modulo da me stabilito ad una periferica da me stabilita.
Allora come ha suggerito Sandro, udev e' quello che fa per te. Scrivi una
regola che carichi quel modulo all'inserimento del device.


 
Le distribuzioni serie lo fanno senza intervento umano. Tu cosa usi?

 regola che carichi quel modulo all'inserimento del device.
In effetti ero proprio partito dal farmi una regola di udev, ma nel
frattempo ho fatto la riflessione che il sistema di caricamento automatico
dei moduli *proprio* del kernel, ovvero quello che carica il modulo cdc-acm
quando "vede" il collegamento del telefono, o che carica qualunque altro
modulo all'inserimento di qualunque altra periferica, non ha bisogno di
udev per funzionare.
E funzionava benissimo anche quando udev non esisteva...
Scusate la mia pignoleria, ma anche se ora potrei risolvere il problema
con una regoletta di udev, rimarrebbe oscuro per me il perche' il kernel
scelga quel determinato modulo per quella determinata periferica...


 scelga quel determinato modulo per quella determinata periferica...
Se sbaglio qualcuno mi corigera', cmq credo funzioni con gli ID che le
periferiche inviano al kernel.
Nel kernel (probabilmente proprio in cdc-acm.c) c'e' una lista che regola
tutta la faccenda.
Credo che usare udev sia piu' semplice che patchare il kernel, ma se
preferisci la seconda via, sei liberissimo di imparare qualcosa di nuovo!


 scelga quel determinato modulo per quella determinata periferica...
La risposta potrebbe essere
in /lib/modules/<tua.versione.del.kernel>/modules.alias (o module.usbmap) ,
tieni pero' presente che questi files vengono generati automaticamente in
base alle informazioni che si trovano nei sorgenti del kernel, non so
quanto sia igenico metterci le mani. 
 
-- 
Ciao.
Alessandro 
"Ubuntu" - an African word, meaning "Slackware is too hard for me".

 scelga quel determinato modulo per quella determinata periferica...
Con udev il kernel si limita a mandare dei messaggi dell'hardware rilevato.
E farsi quelle domande non ha senso, linux viene rimaneggiato di continuo ed
è normale che il funzionamento possa cambiare.
Un esempio di udev:
cat /etc/udev/rules.d/60-smartlink.rules
ACTION=="add", SUBSYSTEM=="usb", ATTR{idProduct}=="7554", RUN="/bin/mknod -m
600 /dev/slusb0 c 243 0"
# NAME="slusb0", MODE="0600"
Se cerchi l'udev how-to troverai i comandi da lanciare per vedere i messaggi
che il kernel invia al rilevamento dell'hardware, nei messaggi troverai i
tag da inserire nella regola di udev per fa scattare la regola, e troverai
anche comandi per ricaricare al volo le regole di udev e simulare il
funzionamento della regola.

Valeria Dal Monte wrote:

ROTFL

 scelga quel determinato modulo per quella determinata periferica...
http://wiki.archlinux.org/index.php/ModaliasPrimer

Grazie a tutti,
cerco di mettere a frutto i vostri consigli e se ottengo qualcosa lo
riporto in questo ng.
Ciao.
