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 lsmods 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.