Newsgroup: it.comp.os.linux.iniziare
Titolo: Moduli sbagliati caricati all'avvio

Salve,
la mia domanda è: come vengono caricati i moduli all'avvio? Non va 
proprio come mi aspetterei, mi aiutate a capire perche'?
Ecco la situazione.
La mia installazione e' una debian con kernel 2.6.30-6. Ho compilato ed 
installato i moduli aggiornati per il wireless (compat-wireless), che si 
sono posizionati nella base-directory /lib/modules/2.6.30-1-686/updates/ 
creata appositamente. I moduli vecchi sono rimasti nella loro posizione. 
Nell'installazione è stato eseguito correttamente depmod, ed infatti nel 
file /lib/modules/2.6.30-1-686/modules.dep si punta correttamente ai 
nuovi moduli, e infatti modprobe li carica correttamente. Infatti, se 
eseguo 
$ cat /lib/modules/2.6.30-1-686/modules.dep | grep "kernel/drivers/ssb/
ssb.ko"
non ottengo nessuna risposta, mentre ottengo diverse linee se eseguo:
$ cat /lib/modules/2.6.30-1-686/modules.dep | grep "updates/drivers/ssb/
ssb.ko"
segno del fatto che niente punta al vecchio modulo.
Ora, pero', all'avvio non viene caricata la nuova versione del modulo ssb 
(come fa modprobe), ma quella vecchia! Così il tentativo di caricare il 
modulo b43 (che dipende da ssb) fallisce all'avvio. Sono abbastanza 
sicuro che venga caricata la versione vecchia, perche' eseguendo lsmod|
grep ssb, ottengo:
ssb 37692 0
cioe' size=37692, che e' esattamente quella del modulo vecchio, la stessa 
se carico appositamente il vecchio modulo:
# insmod kernel/drivers/ssb/ssb.ko
Non conosco un modo migliore per capire la versione (o il percorso) del 
modulo attualmente caricato, come si puo' fare?
Comunque risolvo facilmente eseguendo:
#rmmod ssb
#modprobe ssb
#modprobe b43
A questo punto lsmod|grep ssb restituisce:
ssb 38976  1 b43
Qualche idea per capire cosa succede? Cosa va storto? 
In calce riporto l'output di 
$ dmesg | egrep "b43|ssb"
[    2.424557] b43-pci-bridge 0000:06:00.0: PCI INT A -> GSI 17 (level, 
low) -> IRQ 17
[    2.424570] b43-pci-bridge 0000:06:00.0: setting latency timer to 64
[    2.560162] ssb: Sonics Silicon Backplane found on PCI device 
0000:06:00.0
[    7.915420] b43: disagrees about version of symbol 
ssb_device_is_enabled
[    7.915425] b43: Unknown symbol ssb_device_is_enabled
[    7.915721] b43: Unknown symbol ssb_pmu_set_ldo_paref
[    7.915844] b43: disagrees about version of symbol 
ssb_pcicore_dev_irqvecs_enable
[    7.915847] b43: Unknown symbol ssb_pcicore_dev_irqvecs_enable
[    7.916073] b43: disagrees about version of symbol 
ssb_bus_may_powerdown
[    7.916076] b43: Unknown symbol ssb_bus_may_powerdown
[    7.916269] b43: disagrees about version of symbol 
ssb_dma_free_consistent
[    7.916271] b43: Unknown symbol ssb_dma_free_consistent
[    7.916661] b43: disagrees about version of symbol ssb_bus_suspend
[    7.916664] b43: Unknown symbol ssb_bus_suspend
[    7.916896] b43: disagrees about version of symbol ssb_bus_unregister
[    7.916899] b43: Unknown symbol ssb_bus_unregister
[    7.917322] b43: disagrees about version of symbol ssb_bus_resume
[    7.917325] b43: Unknown symbol ssb_bus_resume
[    7.917415] b43: disagrees about version of symbol ssb_set_devtypedata
[    7.917417] b43: Unknown symbol ssb_set_devtypedata
[    7.917789] b43: disagrees about version of symbol ssb_device_disable
[    7.917792] b43: Unknown symbol ssb_device_disable
[    7.917884] b43: Unknown symbol ssb_pmu_set_ldo_voltage
[    7.918081] b43: disagrees about version of symbol 
ssb_dma_alloc_consistent
[    7.918084] b43: Unknown symbol ssb_dma_alloc_consistent
[    7.918312] b43: disagrees about version of symbol ssb_dma_set_mask
[    7.918314] b43: Unknown symbol ssb_dma_set_mask
[    7.918874] b43: disagrees about version of symbol ssb_device_enable
[    7.918876] b43: Unknown symbol ssb_device_enable
[    7.919081] b43: disagrees about version of symbol 
ssb_driver_unregister
[    7.919083] b43: Unknown symbol ssb_driver_unregister
[    7.919278] b43: disagrees about version of symbol 
__ssb_driver_register
[    7.919281] b43: Unknown symbol __ssb_driver_register
[    7.919636] b43: disagrees about version of symbol 
ssb_bus_pcmciabus_register
[    7.919638] b43: Unknown symbol ssb_bus_pcmciabus_register
[    7.919721] b43: disagrees about version of symbol ssb_bus_powerup
[    7.919723] b43: Unknown symbol ssb_bus_powerup
[    7.920812] b43: disagrees about version of symbol ssb_dma_translation
[    7.920814] b43: Unknown symbol ssb_dma_translation

 Qualche idea per capire cosa succede? Cosa va storto?  
non so, ho appena aggiunto un bicchiere di vino alla mia solita birretta 
e non connetto bene ;-P
cmq nella Slack c'è /etc/modprobe.d/blacklist, penso potresti inserire 
qui i moduli da non caricare;
r
-- 
Abruzzo 2009: dopo 162 giorni consegnati 47 chalet per 200 persone.
Irpinia 1981: dopo 122 giorni consegnati 150 chalet per 450 persone.
Un Minuto Per Favore:
Home Page, The Pentangle, I Salon di Baudelaire: 
http://www.umpf.net

 qui i moduli da non caricare;
si, dovrebbe funzionare anche nella debian, ma poi dovrei comunque 
caricare a mano i moduli corretti... cosa che gia' faccio, ed e' 
sufficiente.
Solo che vorrei saperne qualcosa di piu'... capire cosa non va!
Grazie ancora!

 
i moduli son caricati tutti dagli script d'avvio
in particolare, se usi debian, c'e' uno script in 
/etc/rcS.d/S20module-init-tools, che carica tutti i moduli indicati nel 
file /etc/modules
forse, se metti il tuo modulo in quel file (e magari in blacklist quello 
vecchio) ti carica tutto per bene
l'ideale sarebbe andare a vedere pian piano in quale script d'avvio fa 
il caricamento del modulo, e capire perche' si comporta cosi'... ma e' 
difficilotto e lungo.
buona fortuna
ciao
-- 
Il Paradiso sono gli altri - Ertras

 buona fortuna
grazie!

 i moduli son caricati tutti dagli script d'avvio
ho scoperto! I moduli caricati (dagli script d'avvio?) erano dentro 
initramfs! Molto subdolo!
Risolto con
# update-initramfs -u
che ha aggiornato l'immagine /boot/initrd.img-2.6.30-1-686 con i nuovi 
file.
Grazie a tutti cmq!
Mauro.

 initramfs! Molto subdolo!
]zac[
Subdolo?? E' cosi che funziona da tempo ... immemore ( :P ).
Non ci sono alternative, o i moduli sono compilati nel kernel, o se sono
caricabili,  devono essere inseriti nell'initram (o in altra cosa simile),
questo perché al boot del sistema/kernel non c'è accesso al filesystem, e
solo dopo il caricamento dei '''moduli di boot''' e il riconoscimento e
configurazione dell'hardware necessario per il boot del kernel, viene fatto
uno ''swap'' del root filesystem (la directory ' / ') dall'initram al
filesystem/kernel di funzionamento (quello sul disco), e da qui entrano in
funzioni gli script di avvio e tutto il resto.