Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
lpi1:kernel [2013/12/10 20:36] ingo_wichmann [Debian] |
lpi1:kernel [2015/05/07 14:09] jan_buecken [Module nicht automatisch laden] |
||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
lspci | lspci | ||
lspci -v | lspci -v | ||
+ | lspci -vv -nn # mit ids | ||
===== SCSI ===== | ===== SCSI ===== | ||
lsscsi | lsscsi | ||
Zeile 32: | Zeile 33: | ||
modprobe -r dummy | modprobe -r dummy | ||
- | Wenn das nicht geht, weil das Modul in Benutzung ist, dann kann man | + | Wenn das nicht geht, weil das Modul in Benutzung ist, dann kann man versuchen: |
rmmod -w dummy | rmmod -w dummy | ||
Zeile 42: | Zeile 43: | ||
Beispiel: automatisches laden des Moduls //ipv6// verhindern | Beispiel: automatisches laden des Moduls //ipv6// verhindern | ||
+ | ''/etc/modprobe.d/notipv6.conf'' : | ||
+ | (( veraltet: | ||
''/etc/modprobe.conf'' : | ''/etc/modprobe.conf'' : | ||
+ | )) | ||
<file>alias ipv6 off</file> | <file>alias ipv6 off</file> | ||
- | |||
==== Module beim Starten laden ==== | ==== Module beim Starten laden ==== | ||
Beispiel: Modul //dummy// laden | Beispiel: Modul //dummy// laden | ||
Zeile 67: | Zeile 70: | ||
=== dauerhaft === | === dauerhaft === | ||
- | ''/etc/modprobe.d/dummy_params'' : | + | ''/etc/modprobe.d/dummy_params.conf'' : |
(( veraltet: | (( veraltet: | ||
''/etc/modprobe.conf'' : | ''/etc/modprobe.conf'' : | ||
Zeile 141: | Zeile 144: | ||
* http://wiki.centos.org/HowTos/BuildingKernelModules | * http://wiki.centos.org/HowTos/BuildingKernelModules | ||
- | ===== Eigenes Kernel-Modul schreiben ===== | + | ====== Kernel kompilieren ====== |
- | Keine Angst, nur ein ganz einfaches "Hello World" Beispiel ... | + | [[lpi2::kernel_kompilieren]] |
- | ==== Debian ==== | + | |
- | + | ||
- | cd | + | |
- | aptitude install linux-source-xxx | + | |
- | tar xjf /usr/src/linux-source-xxx | + | |
- | mkdir hello | + | |
- | vi hello.c | + | |
- | <file> | + | |
- | #include <linux/init.h> | + | |
- | #include <linux/module.h> | + | |
- | #include <linux/kernel.h> | + | |
- | + | ||
- | static int hello_init(void) | + | |
- | { | + | |
- | printk(KERN_ALERT "Hello World!\n"); | + | |
- | return 0; | + | |
- | } | + | |
- | + | ||
- | static void hello_exit(void) | + | |
- | { | + | |
- | printk(KERN_ALERT "Good bye world!\n"); | + | |
- | } | + | |
- | + | ||
- | module_init(hello_init); | + | |
- | module_exit(hello_exit); | + | |
- | + | ||
- | + | ||
- | MODULE_LICENSE("GPL"); | + | |
- | MODULE_AUTHOR("me"); | + | |
- | </file> | + | |
- | + | ||
- | vi Makefile | + | |
- | <file> | + | |
- | obj-m := hello.o | + | |
- | </file> | + | |
- | make -C ../linux-source-2.6.18/ SUBDIRS=$PWD modules | + | |
====== Neuen Kernel installieren ====== | ====== Neuen Kernel installieren ====== | ||
Zeile 211: | Zeile 178: | ||
|b|System _sofort_ rebooten| | |b|System _sofort_ rebooten| | ||
|o|System _sofort_ ausschalten| | |o|System _sofort_ ausschalten| | ||
+ | |k|Alle Prozesse diese Terminals killen| | ||
sysctl -w 'kernel.sysrq=1' | sysctl -w 'kernel.sysrq=1' |