Ein Kernelmodul unter Linux (siehe auch LinuxKernel) ist etwas sinngemäß ähnliches, wie ein "Treiber" unter anderen Betriebssystemen - nur besser, denn man kann ein LKM (Linux Kernel Modul) zur Laufzeit laden und auch wieder entladen (ohne Neustart ;).
Beim Linux-Kernel kann man es sich beim Übersetzen raussuchen, ob ein "Treiber" fest im Kernel oder als LKM übersetzt wird. LinuxDistributionen sind i.d.R. voll modularisiert, haben also praktisch alle Treiber als LKM.
Mini-Howto
Infos über ein Modul (insbesondere Modulparameter) |
modinfo modul |
geladene Module anzeigen |
lsmod oder cat /proc/modules |
Modul laden (primitiv) |
insmod modul |
Modul laden (Komfort-Version, lädt auch Abhängigkeiten) |
modprobe modul |
Modul entladen |
rmmod modul |
Einstellungen zu Modulen (Parameter, Ladeskripte, etc) kann man über die Datei /etc/modules.conf festlegen. Nach einer Änderung muss man das Programm depmod ausführen. Die Datei wird nur in Verbindung mit modprobe wirksam, nicht mit insmod.
Einstellungen in modules.conf
|
Beispiel |
|
Modulparameter |
options modul parameter |
options 3c59x full_duplex=1 |
Modul einem Gerät zuordnen |
alias gerät modul |
alias eth0 3c59x |
Befehl nach dem Laden ausführen |
post-install modul befehl |
post-install ip_conntrack modprobe ip_conntrack_ftp |
Befehl vor dem Entladen ausführen |
pre-remove modul befehl |
pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || : |
Weitere Möglichkeiten stehen in der ManPage zu modules.conf.
Normalerweise geschieht das Laden von Modulen vollautomisch durch kmod, den Kernel-Modul-Lader (in Verbindung mit modprobe). Bei manchen Konstellationen kann es notwendig sein, Module von Hand zu laden; wie man das elegant lösen kann, zeigt dieses /LadeSkript.