Kaip įkelti ir iškrauti branduolio modulius į Linux


Branduolio modulis yra programa, kurią galima įkelti arba iškrauti iš branduolio pagal poreikį, nebūtinai jo perkompiliuojant (branduolio) ar nepaleidus sistemos iš naujo, ir skirta branduolio funkcionalumui pagerinti.

Apskritai kalbant apie programinę įrangą, moduliai yra daugmaž panašūs į tokios programinės įrangos kaip „WordPress“ papildinius. Papildiniai suteikia galimybę išplėsti programinės įrangos funkcionalumą, be jų kūrėjai turėtų sukurti vieną didžiulę programinę įrangą, kurioje visos funkcijos būtų integruotos į paketą. Jei reikia naujų funkcijų, jas reikės pridėti naujose programinės įrangos versijose.

Be modulių, branduolys turėtų būti kuriamas visas funkcijas integruojant tiesiai į branduolio vaizdą. Tai reikštų, kad turėtumėte didesnius branduolius, o sistemos administratoriams kiekvieną kartą, kai reikės naujos funkcijos, reikės sukompiliuoti branduolį.

Paprastas modulio pavyzdys yra įrenginio tvarkyklė, leidžianti branduoliui pasiekti prie sistemos prijungtą aparatūros komponentą/įrenginį.

Išvardinkite visus „Linux“ įkeltus branduolio modulius

„Linux“ sistemoje visi moduliai baigiasi plėtiniu .ko ir paprastai jie automatiškai įkeliami, kai aparatūra aptinkama įkrovos metu. Tačiau sistemos administratorius gali valdyti modulius naudodamas tam tikras komandas.

Norėdami išvardyti visus šiuo metu įkeliamus „Linux“ modulius, galime naudoti komandą „lsmod“ („Modulių sąrašas“), kuri skaito panašų/proc/modulių turinį.

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

Kaip įkelti ir iškrauti (pašalinti) branduolio modulius sistemoje „Linux“

Norėdami įkelti branduolio modulį, galime naudoti komandą insmod (insert module). Čia mes turime nurodyti visą modulio kelią. Žemiau esančia komanda bus įterptas „speedstep-lib.ko“ modulis.

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

Norėdami iškrauti branduolio modulį, naudojame komandą rmmod (pašalinti modulį). Šis pavyzdys iškraus arba pašalins „speedstep-lib.ko“ modulį.

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

Kaip valdyti branduolio modulius naudojant modprobe komandą

„modprobe“ yra intelektuali komanda modulių įtraukimui, įterpimui ir pašalinimui iš branduolio. Jis ieško modulių kataloge/lib/modules/& # 36 (uname -r) visų modulių ir susijusių failų, tačiau neįtraukia alternatyvių konfigūracijos failų kataloge /etc/modprobe.d.

Čia jums nereikia absoliutaus modulio kelio; tai yra „modprobe“ naudojimo pranašumas prieš ankstesnes komandas.

Norėdami įterpti modulį, tiesiog nurodykite jo pavadinimą taip.

# modprobe speedstep-lib

Norėdami pašalinti modulį, naudokite tokią žymę -r .

# modprobe -r speedstep-lib

Pastaba: „modprobe“ sistemoje atliekamas automatinis pabraukimo konvertavimas, todėl įvedant modulių pavadinimus nėra jokio skirtumo tarp _ ir - .

Norėdami gauti daugiau informacijos apie naudojimą ir parinktis, perskaitykite „modprobe“ žmogaus puslapį.

# man modprobe

Nepamirškite patikrinti:

  1. Kaip nuolat ir nepertraukiamai pakeisti branduolio vykdymo parametrus
  2. Kaip įdiegti arba atnaujinti į naujausią branduolio versiją sistemoje „CentOS 7“
  3. Kaip atnaujinti branduolį į naujausią „Ubuntu“ versiją

Tai kol kas viskas! Ar turite naudingų idėjų, kurias norėtumėte, kad pridėtume prie šio vadovo ar užklausų, naudokite toliau pateiktą atsiliepimų formą, kad jas atsiųstumėte mums.