Laddningsbara kärn-moduler kan spara minne och göra konfigureringen enklare. Modulernas omfattning har växt till att inkludera filsystem, drivrutiner till ethernet-kort, bandspelare, drivrutiner till skrivare m.m.
Modul-verktygen är tillgängliga från samma ställe som du hittar källkoden till
kärnan, som modules-x.y.z.tar.gz
; välj den högsta patch-nivån
x.y.z
, som är lika med eller under den till din aktuella kärna.
Packa upp det med `tar zxvf modules-x.y.z.tar.gz
', cd
-a
till katalogen det skapar (modules-x.y.z
), ta en titt på
README
-filen och utför det du instrueras att göra (vilket vanligtvis
är något enkelt, som make install
). Du ska nu ha programmen
insmod
, rmmod
, ksyms
, lsmod
,
genksyms
, modprobe
och depmod
i
/sbin
. Om du vill så kan du testa verktygen med
"hw"-exempel-drivrutinen i insmod
; titta till INSTALL
-filen
i den underkatalogen, för detaljer.
insmod
infogar en modul i en kärna som körs. Moduler har
vanligtvis en .o
-ändelse; exempel-drivrutinen, som nämns ovan,
heter drv_hello.o
, så för att infoga denna skriver du
`insmod drv_hello.o
'. För att ta reda på vilka moduler kärnan
använder för tillfället, använd lsmod
. Utdatan ser ut så här:
blah# lsmod Module: #pages: Used by: drv_hello 1`
drv_hello
' är namnet på modulen, det använder en minnes-sida (page)
(4k), och inga andra kärn-moduler är beroende av den för tillfället. För att
ta bort den här modulen, använd `rmmod drv_hello
'. Observera att
rmmod
vill ha ett modul-namn, inte ett filnamn; du får reda
på detta från lsmod
s uppräkning. De andra modul-verktygen
dokumenteras i sina man-sidor.
I version 2.0.30 är nästan allt tillgängligt som laddningsbara moduler. För
att använda dem måste du först se till att inte konfigurera in dem i den
vanliga kärnan; säga alltså inte y
till dem under
`make config
'. Kompilera en ny kärna och starta om med den.
cd
-a sedan till /usr/src/linux
igen och kör en
`make modules
'. Detta kompilerar alla de moduler som du inte
specificerade i kärn-konfigureringen, och placerar länkar till i
/usr/src/linux/modules
. Du kan använda dem direkt från den katalogen,
eller köra `make modules_install
', vilket installerar dem i
/lib/modules/x.y.z
, där x.y.z
är versionen av kärnan.
Detta kan vara särskilt praktiskt med filsystem. Du kanske inte använder
minix- eller msdos-filsystemen så ofta. Om jag t.ex. stötte på en msdos-diskett
(usch då), så skulle jag insmod /usr/src/linux/modules/msdos.o
, och
sedan rmmod msdos
när jag var klar. Denna procedur spara runt
50k RAM i kärnan, under normal användning. En liten anmärkning är på sin
plats angående minix-filsystemet: du ska alltid konfigurera in det
direkt i kärnan, för användning på "räddnings"-disketter.