Hardware Schnittstellen anzeigen
USB
PCI
lspci
lspci -v
lspci -vv -nn # mit ids
SCSI
Kernel-Module
Modulverzeichnis:
ls /lib/modules/$(uname -r)/
Befehle
Kernel Meldungen anzeigen
dmesg
fortlaufend, mit Uhrzeit:
dmesg -wT
Kernel Module anzeigen
Informationen zum Modul „dummy“ anzeigen
modinfo dummy
Modul von Hand laden
Modul „dummy“ laden
modprobe dummy
Modul entladen
Kernel-Modul „dummy“ entladen:
modprobe -r dummy
Wenn das nicht geht, weil das Modul in Benutzung ist, dann kann man versuchen:
rmmod -f dummy
Konfigurations-Dateien
Module nicht automatisch laden
Laden des Moduls blockieren
Module beim Starten laden
Beispiel: Modul dummy laden
Debian
SuSE
/etc/sysconfig/kernel
:
MODULES_LOADED_ON_BOOT="dummy"
RedHat
/etc/rc.modules
:
modprobe dummy
chmod +x /etc/rc.modules
Modul-Optionen setzen
Beispiel: 2 Dummy-Interfaces erstellen
einmalig
modprobe dummy numdummies=2
dauerhaft
/etc/modprobe.d/z_dummy_params.conf
:
1)
options dummy numdummies=2
Fehlendes Kernel-Modul nachträglich installieren
openSuSE 11.1
Debian 7
Verfügbare Pakete anzeigen:
aptitude search modules
aptitude search dkms
( Vorsicht: nicht alle angezeigten Pakete enthalten kernel-Module )
CentOS 5
Verfügbare Pakete anzeigen:
yum list | grep kmod
Modul über ELRepo nachinstallieren
ELRepo ist ein Repository mit Fokus auf hardware-nahen Paketen
Repository ELRepo hinzufügen (siehe auch yum):
Verfügbare Pakete anzeigen:
yum search kmod
Modul installieren
testen
modprobe ntfs
dmesg | tail
Fehlendes Kernel-Modul selbst bauen
Problem: es gibt in der verwendeten Distribution keinen Treiber für folgendes Gerät:
lsusb
Bus 001 Device 005: ID 0a46:6688 Davicom Semiconductor, Inc.
als Nutzer
Lösung: jagen & sammeln & Modul selbst kompilieren:
Auf der Seite http://alcopop.org/unix/linux/dm9601/ sind zwei passende Treiber verlinkt:
wget http://www.silencio.ro/DM9601.GZ
Entpacken und hineinwechseln:
tar xzf DM9601.GZ
cd 2.6.18/
USB-ID hinzufügen:
vi dm9601.h
DM9601_DEV( "Davicom USB-100", 0x0a46, 0x6688, DEFAULT_GPIO_RESET )
Kompilieren:
make
Als root
Modul laden
insmod /tmp/2.6.18/dm9601.ko
Testen ob Gerät erscheint:
dmesg
ifconfig -a
Aufräumen:
rmmod dm9601
Gerät entfernen
Modul installieren:
cp /tmp/2.6.18/dm9601.ko /lib/modules/`uname -r`/kernel/drivers/usb/net
depmod -a
Doku
CentOS / Redhat
Kernel kompilieren
Neuen Kernel installieren
Debian 6.0
Repository hinzufügen, z.B. Debian Backports
apt-get -t squeeze-backports install linux-image
Passende Version auswählen, z.B.
apt-get -t squeeze-backports install linux-image-2.6.39-bpo.2-686-pae
Einstellungen zur Laufzeit
Maximale PID
Maximale PID anzeigen:
sysctl kernel.pid_max
Aktuelle PID ermitteln:
cat &
kill 19477
Maximale PID ändern (kleiner als die grade ermittelte):
sysctl kernel.pid_max=18000
cat &
kill %1
IPv4-Pingantworten ausschalten
sysrq
Wenn das System nicht mehr reagiert ( z.B. überhohe Last, X Absturz ) gibt es als letzte Rettung oft nur die „magischen“ Tastenkombinationen aus ALTGr + SysRq + Buchstabe. Wobei „SysRq“ die „Druck“-, bzw. „S-Abf“-Taste meint.3):
Buchstabe | Funktion | |
h | Hilfe zu den SysRq Keys anzeigen | help |
e | Allen Prozessen ( außer init ) das Signal TERM schicken | tErm |
i | Allen Prozessen ( außer init ) das Signal KILL schicken | kIll |
s | Alle gemounteten Dateisysteme syncen | Sync |
u | Alle Dateisysteme umounten | Umount |
b | System _sofort_ rebooten | reBoot |
o | System _sofort_ ausschalten | powerOff |
k | Alle Prozesse dieses Terminals killen | KillTTY |
Eselsbrücken: BUSTIER ← (dann allerdings von Hinten nach Vorne)
SUB - hektisches Notaus
K
ist sehr nützlich, um die grafische Oberfläche zu beenden. (Ersatz für Ctrl+Alt+Backspace)
sysctl -w 'kernel.sysrq=1'
Diese Einstellungen rebootfest machen:
/etc/sysctl.d/kernel.conf
:
kernel.sysrq = 1
Kernel Bootparameter
Eine Übersicht über die Parameter, die der Kernel beim Booten auswertet findet sich in der Datei Documentation/kernel-parameters.txt
in den Kernel-Quelltexten.
Kernel Bootparameter können beim Booten oder über die Konfigurationsdatei des Bootloaders übergeben werden.
Kernel Compile-parameter
Auf den meisten Systemen ist es nicht notwendig, den Kernel neu zu kompilieren. Es macht Unerfahrenen mehr Ärger als es bringt. Trotzdem ist es interessant, sich die Einstellungen anzusehen, die auf Kernel-Ebene möglich sind:
http://kernel.xc.net/
Dokus & Links