Det er moduler for grafikkmaskinvaren (GPU), forskjellige filsystemer (som ext4, zfs, btrfs), nettverkshardware, skjerm, tastatur og forskjellige inngangsenheter og mange flere.
I denne artikkelen skal jeg vise deg hvordan du bruker modprobe for å administrere kjernemoduler på Debian GNU / Linux-distribusjon. Jeg skal bruke Debian 9 Stretch til demonstrasjonen. Men det skal fungere på alle versjoner av Debian GNU / Linux. Så la oss komme i gang.
Standard modulkatalog:
Alle modulene i Debian er lagret er / lib / modules / $ (uname -r) katalog.
Kjernemodulene er lagret i en underkatalogkjerne /. Kjernemodulene er lagret i en hierarkisk modulær rekkefølge som du kan se på skjermbildet nedenfor.
$ ls / lib / modules / $ (uname -r) / kjerne
Viser alle tilgjengelige kjernemoduler:
Du kan liste opp alle kjernemodulene i en pent formatert trestruktur med følgende kommando:
$ tree / lib / modules / $ (uname -r) / kjerne
MERK: Trekommandoen er ikke installert som standard. Du må installere den manuelt med sudo apt installere treet
Som du kan se, er katalogene og kjernemodulene oppført som et tre.
Det er en veldig lang liste. Du kan også overføre den til en personsøker som for eksempel mindre for å gjøre det lettere å navigere gjennom listen:
$ tree / lib / modules / $ (uname -r) / kjerne | mindre
Nå kan du trykke på
Du kan søke etter moduler i mindre personsøker. Bare trykk / og skriv inn søkeordet ditt.
Trykk nå
Du kan også trykke n og s for å gå til henholdsvis neste eller forrige resultat.
Trykk på for å avslutte personsøkeren q.
Oppføring av alle de lastede kjernemodulene:
Du kan liste opp alle kjernemodulene som brukes av Debian-operativsystemet ditt med følgende kommando:
$ lsmod
Det er en lang liste. På Modul kolonne (1), kan du se navnet på kjernemodulen på Størrelse kolonne (2), kan du se kjernemodulstørrelsen i byte.
De Brukt av kolonne (3) er interessant. Denne kolonnen starter med et tall og eventuelt en kommaseparert liste over modulnavn.
Tallet bestemmer hvor mange moduler som er avhengig av denne modulen. Hvis det er 0, betyr det at ingen andre moduler er avhengig av denne modulen. For eksempel pppdev modulen brukes ikke av noen annen modul. Så du kan trygt fjerne eller legge til pppdev kjernemodul når som helst.
Hvis det er noe annet enn 0, er mange andre moduler avhengig av denne modulen. For eksempel avhenger 2 andre moduler av snd_pcm modul som du kan se i den merkede delen av skjermbildet nedenfor. Så du kan ikke fjerne snd_pcm modul med mindre du fjerner modulene som er avhengig av denne modulen. I dette tilfellet vil snd_ac97_codec og snd_ens1371 moduler må fjernes for å kunne fjernes snd_pcm modul.
Få informasjon om spesifikk kjernemodul:
Nå som du vet hvordan du lister opp alle tilgjengelige kjernemoduler og de lastede kjernemodulene. I denne delen skal jeg vise deg hvordan du får informasjon om hvilken som helst kjernemodul.
På Debian kan du bruke modinfo kommando for å få informasjon om hvilken som helst modul.
For eksempel for å få informasjon om snd_pcm modul vi så tidligere, kjør følgende kommando:
$ sudo modinfo snd_pcm
Som du kan se, modulfilbanen, lisens, en kort beskrivelse av modulen snd_pcm, modulene snd_pcm avhenger av og noe annen informasjon er oppført.
Dette er viktige biter av informasjon du trenger å vite for å jobbe med moduler på Deban. For eksempel hvis du vil aktivere snd_pcm modul, så må du også aktivere å snd og snd-timer moduler før du gjør det. Som snd_pcm kommer an på snd og snd-timer. Ellers vil det ikke fungere.
Laster inn ny kjernemodul ved hjelp av modprobe:
Du kan laste inn nye kjernemoduler ved hjelp av modprobe kommando. La oss for eksempel si at du vil aktivere btrfs filsystemkjernemodul.
Sjekk først hvilke moduler btrfs kjernemoduler avhenger av med modinfo som følger:
$ sudo modinfo btrfsSom du kan se, er btrfs kjernemodulen avhenger av raid6_pg og xor kjernemoduler.
La oss sjekke om de er aktivert som følger:
$ lsmod | grep raid6$ lsmod | grep xor
Som du ser er ingen av modulene lastet.
Kjør nå følgende kommandoer for å laste inn raid6_pq og xor kjernemoduler:
$ sudo modprobe raid6_pq$ sudo modprobe xor
La oss nå sjekke om avhengighetskjernemodulene er lastet inn igjen:
$ lsmod | grep raid6$ lsmod | grep xor
Som du kan se, er kjernemodulene lastet inn.
Nå kan du laste inn btrfs kjernemodul med følgende kommando:
$ sudo modprobe btrfs
La oss nå kontrollere om btrfs kjernemodulen er lastet med følgende kommando:
$ lsmod | grep btrfs
Som du kan se, er btrfs kjernemodulen er lastet inn, og det avhenger av raid6_pq og xor kjernemoduler.
Meste parten av tiden modprobe kommandoen vil løse avhengigheter for deg automatisk. Men jeg viste deg hvordan du gjør det manuelt, for noen ganger kan det hende du må gjøre det på denne måten. Det er best å vite hvordan du løser et problem, ettersom du kanskje må takle det en dag.
Fjerne moduler med modprobe:
Du kan også fjerne moduler med modprobe kommando. Hvis ingen andre moduler er avhengige av modulen du vil fjerne, er prosessen grei.
For eksempel for å fjerne btrfs modul jeg lastet inn tidligere, kjør følgende kommando:
$ sudo modprobe -r btrfs
Modulen skal fjernes.
Hvis andre moduler er avhengig av modulen du vil fjerne, må du først fjerne disse modulene før du kan fjerne ønsket modul.
Det er i utgangspunktet alt du trenger å vite om administrering av kjernemoduler på Debian. Takk for at du leser denne artikkelen.