Kako učitati i skinuti module kernela u Linuxu


Modul kernela je program koji se može učitati u jezgro ili ukloniti iz kernela na zahtjev, bez nužnog ponovnog kompajliranja (kernela) ili ponovnog pokretanja sistema, a namijenjen je poboljšanju funkcionalnosti kernela.

Općenito govoreći o softveru, moduli su manje-više kao dodaci za softver kao što je WordPress. Dodaci pružaju sredstva za proširenje softverske funkcionalnosti, bez njih, programeri bi morali da naprave jedan masivni softver sa svim funkcionalnostima integrisanim u paket. Ako su potrebne nove funkcionalnosti, one bi se morale dodati u nove verzije softvera.

Isto tako, bez modula, kernel bi morao biti izgrađen sa svim funkcionalnostima integriranim direktno u sliku kernela. To bi značilo da imate veće kernele, a sistemski administratori bi morali da ponovo kompajliraju kernel svaki put kada je potrebna nova funkcionalnost.

Jednostavan primjer modula je drajver uređaja – koji omogućava kernelu da pristupi hardverskoj komponenti/uređaju povezanom sa sistemom.

Preporučeno čitanje: Kako saznati koju verziju Linuxa koristite

Navedite sve učitane module kernela u Linuxu

U Linuxu, svi moduli završavaju ekstenzijom .ko i obično se automatski učitavaju kako se hardver otkrije pri pokretanju sistema. Međutim, administrator sistema može upravljati modulima koristeći određene naredbe.

Za popis svih trenutno učitanih modula u Linuxu, možemo koristiti naredbu lsmod (list modules) koja ovako čita sadržaj /proc/modules.

lsmod
Module                  Size  Used by
rfcomm                 69632  2
pci_stub               16384  1
vboxpci                24576  0
vboxnetadp             28672  0
vboxnetflt             28672  0
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci
bnep                   20480  2
rtsx_usb_ms            20480  0
memstick               20480  1 rtsx_usb_ms
btusb                  45056  0
uvcvideo               90112  0
btrtl                  16384  1 btusb
btbcm                  16384  1 btusb
videobuf2_vmalloc      16384  1 uvcvideo
btintel                16384  1 btusb
videobuf2_memops       16384  1 videobuf2_vmalloc
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_core         36864  2 uvcvideo,videobuf2_v4l2
v4l2_common            16384  1 videobuf2_v4l2
videodev              176128  4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl             20480  0
x86_pkg_temp_thermal    16384  0
media                  24576  2 uvcvideo,videodev
....

Kako učitati i ukloniti (ukloniti) module kernela u Linuxu

Za učitavanje modula kernela, možemo koristiti naredbu insmod (insert module). Ovdje moramo specificirati punu putanju modula. Naredba ispod će umetnuti speedstep-lib.ko modul.

insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Za izbacivanje modula kernela koristimo naredbu rmmod (ukloni modul). Sljedeći primjer će isprazniti ili ukloniti modul speedstep-lib.ko.

rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko 

Kako upravljati modulima kernela pomoću naredbe modprobe

modprobe je inteligentna komanda za listanje, umetanje kao i uklanjanje modula iz kernela. Pretražuje u direktoriju modula /lib/modules/$ (uname -r) sve module i povezane datoteke, ali isključuje alternativne konfiguracijske datoteke u /etc/modprobe.d direktorij.

Ovdje vam nije potrebna apsolutna putanja modula; ovo je prednost korištenja modprobe u odnosu na prethodne komande.

Da biste umetnuli modul, jednostavno navedite njegovo ime kako slijedi.

modprobe speedstep-lib

Da biste uklonili modul, koristite oznaku -r ovako.

modprobe -r speedstep-lib

Napomena: Pod modprobe, vrši se automatska konverzija donje crte, tako da nema razlike između _ i dok unos naziva modula.

Za više informacija o upotrebi i opcijama, pročitajte man stranicu modprobe.

man modprobe

Ne zaboravite provjeriti:

  1. Kako promijeniti parametre vremena izvođenja kernela na uporan i nepostojan način
  2. Kako instalirati ili nadograditi na najnoviju verziju kernela u CentOS 7
  3. Kako nadograditi kernel na najnoviju verziju u Ubuntu

To je sve za sada! Imate li neke korisne ideje koje ste željeli da dodamo ovom vodiču ili upitima, koristite obrazac za povratne informacije u nastavku da nam ih pošaljete.