Ytimen moduulien lataaminen ja purkaminen Linuxissa


Ydinmoduuli on ohjelma, joka voidaan ladata ytimeen tai purkaa siitä pyynnöstä ilman, että sitä (ydintä) tarvitsee välttämättä kääntää tai järjestelmää uudelleenkäynnistetään. Sen tarkoituksena on parantaa ytimen toimivuutta.

Yleisesti ottaen moduulit ovat enemmän tai vähemmän kuin WordPressin kaltaisten ohjelmistojen laajennuksia. Laajennukset tarjoavat keinoja laajentaa ohjelmiston toimivuutta, ilman niitä kehittäjien olisi rakennettava yksi massiivinen ohjelmisto, jonka kaikki toiminnot on integroitu pakettiin. Jos uusia toimintoja tarvitaan, ne on lisättävä uusiin ohjelmistoversioihin.

Samoin ilman moduuleja ydin olisi rakennettava siten, että kaikki toiminnot on integroitu suoraan ytimen näköistiedostoon. Tämä tarkoittaisi suurempia ytimiä, ja järjestelmänvalvojien olisi käännettävä ydin uudelleen aina, kun uusia toimintoja tarvitaan.

Yksinkertainen esimerkki moduulista on laiteohjain – jonka avulla ydin voi käyttää järjestelmään kytkettyä laitteistokomponenttia/laitetta.

Suositeltu luku: Kuinka selvittää, mitä Linux-versiota käytät

Luettele kaikki Linuxin ladatut ydinmoduulit

Linuxissa kaikki moduulit päättyvät .ko-laajennukseen, ja ne latautuvat yleensä automaattisesti, kun laitteisto havaitaan järjestelmän käynnistyksen yhteydessä. Järjestelmänvalvoja voi kuitenkin hallita moduuleja tietyillä komennoilla.

Kaikkien tällä hetkellä ladattujen moduulien luetteloimiseksi Linuxissa voimme käyttää lsmod-komentoa (list modules), joka lukee tiedoston /proc/modules sisällön tällä tavalla.

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

Ytimen moduulien lataaminen ja purkaminen (poistaminen) Linuxissa

Ydinmoduulin lataamiseen voimme käyttää insmod-komentoa (insert module). Tässä meidän on määritettävä moduulin koko polku. Alla oleva komento lisää speedstep-lib.ko-moduulin.

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

Ytimen moduulin purkamiseen käytämme rmmod-komentoa (poista moduuli). Seuraava esimerkki purkaa tai poistaa speedstep-lib.ko-moduulin.

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

Ytimen moduulien hallinta modprobe-komennolla

modprobe on älykäs komento moduulien luetteloimiseen, lisäämiseen ja poistamiseen ytimestä. Se etsii moduulihakemistosta /lib/modules/$ (uname -r) kaikkia moduuleja ja niihin liittyviä tiedostoja, mutta sulkee pois vaihtoehtoiset määritystiedostot tiedostossa /etc/modprobe.d hakemistosta.

Täällä et tarvitse moduulin absoluuttista polkua; tämä on modprobe:n etu edellisiin komentoihin verrattuna.

Lisää moduuli antamalla sen nimi seuraavasti.

modprobe speedstep-lib

Voit poistaa moduulin käyttämällä -r-lippua näin.

modprobe -r speedstep-lib

Huomaa: modprobessa suoritetaan automaattinen alaviivamuunnos, joten _ ja välillä ei ole eroa. moduulien nimien syöttäminen.

Lisätietoja käytöstä ja vaihtoehdoista löytyy modprobe-manuaalisivulta.

man modprobe

Älä unohda tarkistaa:

  1. Kuinka muuttaa ytimen ajonaikaisia parametreja pysyvästi ja ei-pysyvästi
  2. Kuinka asentaa tai päivittää uusimpaan ydinversioon CentOS 7:ssä
  3. Kernelin päivittäminen uusimpaan versioon Ubuntussa

Tässä kaikki tältä erää! Jos sinulla on hyödyllisiä ideoita, joita halusit meidän lisäävän tähän oppaaseen tai kysymyksiä, käytä alla olevaa palautelomaketta lähettääksesi ne meille.