Pagina 1 di 1

Kernel modulare (Rimozione moduli non necessari)

Inviato: lun 13 nov 2006, 12:52
da targzeta
Ciao a tutti,
ho compilato un kernel molto modulare. Nel far caricare i moduli necessari non ci sono problemi. Ma come si possono eliminare i moduli non necessari?

Da quanto ho capito:

Codice: Seleziona tutto

modprobe -r
dovrebbe fare questo per me, ma non lo fa?
Qualcuno di voi ha mai affrontato e risolto lo stesso problema?
Una volta esisteva il kerneld che si occupava di fare questo, ma, sempre se non ho capito male, ora questa cosa non la si affronta più in questo modo.

Spina

Inviato: lun 13 nov 2006, 13:00
da dapuzz
i moduli non necessari non si caricano da soli, quindi il problema non si pone, oppure non ho capito cosa vuoi fare.
Modprobe -r 'scarica' un modulo caricato se non è usato da un altro modulo. Puoi sempre verificare con lsmod prima e dopo il comando.

Inviato: lun 13 nov 2006, 13:11
da targzeta
Quello che voglio è, in sostanza, che

Codice: Seleziona tutto

modprobe -r
faccia il suo lavoro. A te li scarica i moduli non usati?

Eccoti un esempio:

Codice: Seleziona tutto

lsmod
Module                  Size  Used by
ehci_hcd               26504  0 
usbcore               100356  2 ehci_hcd
si vede che ehci_hcd non è usato, quindi:

Codice: Seleziona tutto

modprobe -r;
lsmod
Module                  Size  Used by
ehci_hcd               26504  0 
usbcore               100356  2 ehci_hcd
Visto, non lo ha scaricato. C'è qualche cosa che devo sapere?

Spina

Inviato: lun 13 nov 2006, 13:19
da dapuzz
spina ha scritto:Visto, non lo ha scaricato. C'è qualche cosa che devo sapere?
Spina
man modprobe :)
modprobe -r ehci_hcd

In ogni caso ti conviene vedere perchè e da chi viene caricato se sei così sicuro che non serve
/etc/rc.d/rc.modules? udev? /etc/modprobe.d?

Inviato: lun 13 nov 2006, 13:34
da targzeta
no, non ci capiamo!
il comando

Codice: Seleziona tutto

modprobe -r
senza parametri scarica i moduli non usati.
Il fatto che il modulo ehci-hdc non sia usato lo dice lo 0 sotto Used in lsmod.

Ti cito altre man 8 modprobe:

Codice: Seleziona tutto

With the option -r, modprobe  will  automatically  unload  a  stack  of        modules,  similar  to  the  way  "rmmod  -r" does. Note that using just        "modprobe -r" will clean up unused autoloaded modules and also  perform     the   pre-   and   post-remove   commands  in  the  configuration  file /etc/modules.conf
Spina

Inviato: lun 13 nov 2006, 15:20
da Dani
Se fai rmmod -f ehci_hcd lo toglie ?

Inviato: lun 13 nov 2006, 15:39
da targzeta
Dani ha scritto:Se fai rmmod -f ehci_hcd lo toglie ?
Si si, anche con:

Codice: Seleziona tutto

modprobe -r ehci-hcd
lo toglie. Il punto è che:

Codice: Seleziona tutto

modprobe -r
così come

Codice: Seleziona tutto

rmmod -a
dovrebbero eliminare i moduli non usati, e non uno specifico modulo! Ma a me non funziona. Volevo sapere se a qualcun altro non funziona o se qualcuno sa cosa potrebbe esserci che non va.

Spina

Inviato: lun 13 nov 2006, 16:53
da albatros
Il fatto che ehci_hcd non sia usato da nessun altro modulo non vuol dire che non venga usato dal kernel...
Comunque ho provato a inserire altri moduli di cui non ho bisogno (tipo il supporto a reiserfs) e modprobe -r non li toglie se non viene specificato il nome del modulo.
linux 2.6.18.2 module-init-tools version 3.2-pre9

Inviato: lun 13 nov 2006, 17:11
da targzeta
albatros ha scritto:Il fatto che ehci_hcd non sia usato da nessun altro modulo non vuol dire che non venga usato dal kernel...
Giustissimo :)

Anche io avevo provato come te. Inoltre ho montato un dvd che non c'è solo per farmi caricare i moduli. Anche modprobe -r non toglie niente. Ho letto un pò in giro e devo ammettere che non sto capendo granché. Forse questo supporto non è più abilitato, infatti nel manprobe all'opzione -r non indica niente che faccia sospettare che si può omettere il nome del modulo.
Ti rimanda alla pagina modprobe.old per fare questo.
Stessa cosa nella man di rmmod, se noti l'opzione -a non c'è, mentre su rmmod.old è mensionata.

Da quanto ho capito i nuovi module-init-tools non svolgono questo compito, anche perchè ci sono svariati problemi in merito. Come race-condition etc..etc...

Spina

P.S. Peccato perchè mi interessava un modo per "ripulire" il kernel da moduli inutilizzati, anche perchè come ben sai questa memoria non viene mai swappata. Senza scripting ovviamente....

Pippi.S. comunque ho scaricato l'ultima versione dei module-init-tools, poi vediamo

Inviato: lun 13 nov 2006, 17:38
da albatros
Come te, anch'io mi son letto tutte le pagine man, ma non ho trovato nulla...
Dall'usage che ottieni dando modprobe -v sembrerebbe, essendo racchiuso fra due < >, che modname non sia opzionale se usato con -r, anche se non vengono segnalati errori se lo si omette...

Inviato: mar 14 nov 2006, 14:32
da rob
"modprobe -r" will clean up unused autoloaded modules
magari ehci_hcd non è "autoloaded"

penso che per autoloaded si intendano quei moduli caricati on the fly quando, ad esempio, attacchi una periferica a caldo.. magari se provi a staccare fisicamente il controller usb dalla scheda madre a computer acceso, modprobe -r te lo leva quel modulo 8)

ciao, rob

Inviato: mar 14 nov 2006, 15:00
da bloodlust
rob ha scritto:
magari se provi a staccare fisicamente il controller usb dalla scheda madre a computer acceso, modprobe -r te lo leva quel modulo 8)
ROTFL