View Full Version : [Domanda] Compilazione del kernel.
Ciao,
avrei una piccola domanda da fare sulla compilazione del kernel :)
Quando compilo il kernel posso decidere di compilare i moduli sia come modulo embedded che come modulo esterno, ma a questo punto mi stavo chiedendo: tutti gli altri moduli vengono cmq compilati?
Mi spiego meglio, durante la compilazione del kernel viene cmq compilato tutto o solo quello da me selezionati con */M?
:)
ilsensine
26-03-2007, 10:33
Quelli selezionati con "N" vengono ignorati. Tutti gli altri vengono compilati; i moduli compilati con "Y" vengono linkati in vmlinux, quelli con "M" vengono linkati nei driver .ko
Quindi al successivo reboot viene utilizzato giustamente solo ciò che è stato compilato, ma allora perchè normalmente nelle distribuzione posso caricare ulteriori moduli tramite modprobe? Da dove vengono questi moduli, come sono stati compilati e chi li ha compilati? In caso di ricompilazione del kernel non me li troverei?
Scusa la banalità delle domande ma questa parte del funzionamento del kernel mi è sempre stata poco chiara. :confused:
ilsensine
26-03-2007, 10:51
Le distribuzioni includono un kernel precompilato con tutti i driver possibili.
Quindi il modprobe può essere usato solo con kernel precompilati?
ilsensine
26-03-2007, 18:30
...?
modprobe serve a caricare driver, frega nulla se i driver sono stati installati da un rpm o dall'utente
Cerco di aiutarmi con un'immagine, non riesco a spiegarmi ;)
http://img78.imageshack.us/img78/8658/kernelob7.th.png (http://img78.imageshack.us/my.php?image=kernelob7.png)
Riassumendo,
se con " lsmod " listo C,D,E,F e se tutto quello che è contrassegnato con " N " non viene compilato, quando faccio " modprobe -l " che cosa vado a listare? :mc:
:help: :p
ilsensine
27-03-2007, 08:59
modprobe -l mostra tutti i driver disponibili come moduli. lsmod mostra tutti i driver modulari caricati nel sistema.
Non c'è un modo per avere informazioni sui driver compilati staticamente nel kernel, se è quello che vuoi sapere. Puoi solo fare deduzioni indirette.
Vediamo se ho capito ( :D )
I moduli che posso caricare con 'modprobe' con c'entrano nulla con la mia compilazione del kernel, ma sono direttamente resi disponibili come binari sin dalla prima installazione della mia distro?
Ho capito bene?
ilsensine
27-03-2007, 10:33
Vediamo se ho capito ( :D )
I moduli che posso caricare con 'modprobe' con c'entrano nulla con la mia compilazione del kernel, ma sono direttamente resi disponibili come binari sin dalla prima installazione della mia distro?
Ho capito bene?
...no:stordita:
I driver che puoi caricare con modprobe sono quelli che hai indicato come "M" al momento della compilazione (o che chi ti ha fornito il kernel precompilato ha indicato come "M").
Nota che il set di moduli è strettamente legato al kernel in esecuzione; non puoi ad esempio caricare moduli forniti con il kernel precompilato quando il tuo kernel è in esecuzione (e viceversa). modprobe lo sa e ti mostra solo i driver disponibili per il kernel in esecuzione.
Dai che ci sono quasi :D ( propongo ilsensine santo subito :D )
Quindi tutti i moduli che ho contrassegnato con M non vengono automaticamente tutti caricati al boot, se così fosse non avrei ulteriori Moduli da caricare con modprobe.
:stordita:
ilsensine
27-03-2007, 10:45
Gli script di avvio e il sistema di hotplug/coldplug (normalmente gestito da udev o kmod) provvede a caricare alcuni moduli all'avvio e runtime quando necessario.
Avrai notato che se inserisci un dispositivo usb per il quale è disponibile un driver, questo viene caricato automaticamente. Non devi sempre ricorrere a modprobe.
Grazie,
sei stato gentilissimo :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.