Sådan indlæses og aflæses kernemoduler i Linux


Et kernemodul er et program, der kan indlæses i eller aflæsses fra kernen efter behov uden nødvendigvis at kompilere det igen (kernen) eller genstarte systemet, og det er beregnet til at forbedre kernens funktionalitet.

Generelt set ligner moduler mere eller mindre plugins til en software som WordPress. Plugins giver midler til at udvide softwarefunktionalitet, uden dem skulle udviklere bygge en enkelt massiv software med alle funktioner integreret i en pakke. Hvis der er behov for nye funktioner, skal de tilføjes i nye versioner af en software.

Ligeledes uden moduler skal kernen bygges med alle funktionaliteter integreret direkte i kernebilledet. Dette ville betyde at have større kerner, og systemadministratorer skulle kompilere kernen hver gang der er behov for en ny funktionalitet.

Et simpelt eksempel på et modul er en enhedsdriver - som gør det muligt for kernen at få adgang til en hardwarekomponent/enhed, der er tilsluttet systemet.

Liste over alle indlæste kernemoduler i Linux

I Linux slutter alle moduler med .ko -udvidelsen, og de indlæses normalt automatisk, når hardwaren detekteres ved systemstart. En systemadministrator kan dog administrere modulerne ved hjælp af bestemte kommandoer.

For at liste alle aktuelt indlæste moduler i Linux kan vi bruge kommandoen lsmod (listemoduler), der læser indholdet af/proc/moduler som denne.

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

Sådan indlæses og fjernes (fjernes) kernemoduler i Linux

For at indlæse et kernemodul kan vi bruge kommandoen insmod (insert module). Her skal vi specificere modulets fulde sti. Kommandoen nedenfor indsætter speedstep-lib.ko-modulet.

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

For at aflaste et kernemodul bruger vi kommandoen rmmod (fjern modul). Følgende eksempel vil aflaste eller fjerne speedstep-lib.ko-modulet.

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

Sådan styres kernemoduler ved hjælp af modprobe Command

modprobe er en intelligent kommando til notering, indsættelse såvel som fjernelse af moduler fra kernen. Det søger i modulkataloget/lib/modules/& # 36 (uname -r) efter alle moduler og relaterede filer, men ekskluderer alternative konfigurationsfiler i /etc/modprobe.d-biblioteket.

Her har du ikke brug for den absolutte sti til et modul; dette er fordelen ved at bruge modprobe i forhold til de tidligere kommandoer.

For at indsætte et modul skal du blot angive dets navn som følger.

# modprobe speedstep-lib

For at fjerne et modul skal du bruge flag -r .

# modprobe -r speedstep-lib

Bemærk: Under modprobe udføres automatisk understregningskonvertering, så der er ingen forskel mellem _ og - under indtastning af modulnavne.

For mere brugsinformation og muligheder, læs gennem modprobe-mandsiden.

# man modprobe

Glem ikke at tjekke ud:

  1. Sådan ændres kerneens kørselsparametre på en vedvarende og ikke-vedvarende måde
  2. Sådan installeres eller opgraderes til den nyeste kerneversion i CentOS 7
  3. Sådan opgraderes kernen til den nyeste version i Ubuntu

Det er alt for nu! Har du nogle nyttige ideer, som du vil have os til at føje til denne vejledning eller forespørgsler, så brug feedbackformularen nedenfor til at sende dem til os.