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:
- Sådan ændres kerneens kørselsparametre på en vedvarende og ikke-vedvarende måde
- Sådan installeres eller opgraderes til den nyeste kerneversion i CentOS 7
- 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.