Nästa Föregående Innehållsförteckning

9. Moduler

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.

9.1 Installera modul-verktygen

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.

9.2 Moduler som distribueras med kärnan

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.


Nästa Föregående Innehållsförteckning