Cum să încărcați și să descărcați modulele Kernel în Linux


Un modul kernel este un program care poate fi încărcat sau descărcat din nucleu la cerere, fără a-l recompila neapărat (kernel-ul) sau repornirea sistemului și are scopul de a îmbunătăți funcționalitatea nucleului.

În termeni generali de software, modulele sunt mai mult sau mai puțin ca pluginuri pentru un software precum WordPress. Pluginurile oferă mijloace pentru a extinde funcționalitatea software-ului, fără ele, dezvoltatorii ar trebui să construiască un singur software masiv cu toate funcționalitățile integrate într-un pachet. Dacă sunt necesare noi funcționalități, acestea ar trebui adăugate în versiuni noi ale unui software.

De asemenea, fără module, nucleul ar trebui să fie construit cu toate funcționalitățile integrate direct în imaginea nucleului. Aceasta ar însemna să aveți nuclee mai mari, iar administratorii de sistem ar trebui să recompileze nucleul de fiecare dată când este nevoie de o nouă funcționalitate.

Un exemplu simplu de modul este un driver de dispozitiv – care permite nucleului să acceseze o componentă hardware/dispozitiv conectat la sistem.

Listați toate modulele Kernel încărcate în Linux

În Linux, toate modulele se termină cu extensia .ko și, în mod normal, sunt încărcate automat pe măsură ce hardware-ul este detectat la pornirea sistemului. Cu toate acestea, un administrator de sistem poate gestiona modulele folosind anumite comenzi.

Pentru a lista toate modulele încărcate curent în Linux, putem folosi comanda lsmod (list modules) care citește conținutul /proc/modules astfel.

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

Cum să încărcați și să descărcați (eliminați) modulele Kernel în Linux

Pentru a încărca un modul kernel, putem folosi comanda insmod (inserare modul). Aici, trebuie să specificăm calea completă a modulului. Comanda de mai jos va insera modulul speedstep-lib.ko.

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

Pentru a descărca un modul kernel, folosim comanda rmmod (eliminați modulul). Următorul exemplu va descărca sau elimina modulul speedstep-lib.ko.

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

Cum să gestionați modulele kernel utilizând comanda modprobe

modprobe este o comandă inteligentă pentru listarea, inserarea și eliminarea modulelor din nucleu. Acesta caută în directorul modulelor /lib/modules/$ (uname -r) toate modulele și fișierele aferente, dar exclude fișierele de configurare alternative din /etc/modprobe.d director.

Aici, nu aveți nevoie de calea absolută a unui modul; acesta este avantajul utilizării modprobe față de comenzile anterioare.

Pentru a introduce un modul, pur și simplu furnizați numele acestuia, după cum urmează.

# modprobe speedstep-lib

Pentru a elimina un modul, utilizați steag-ul -r astfel.

# modprobe -r speedstep-lib

Notă: în modprobe, se realizează conversia automată a sublinierii, deci nu există nicio diferență între _ și în timp ce introduceți numele modulelor.

Pentru mai multe informații și opțiuni de utilizare, citiți pagina de manual modprobe.

# man modprobe

Nu uitați să verificați:

  1. Cum să modificați parametrii de rulare a kernelului într-un mod persistent și nepersistent
  2. Cum se instalează sau se face upgrade la cea mai recentă versiune de kernel în CentOS 7
  3. Cum să actualizați Kernel-ul la cea mai recentă versiune în Ubuntu

Asta este tot pentru acum! Aveți idei utile pe care ați dorit să le adăugăm la acest ghid sau întrebări, utilizați formularul de feedback de mai jos pentru a ni le trimite.