Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:kernel

Dies ist eine alte Version des Dokuments!


Hardware Schnittstellen anzeigen

ls /sys/bus/*/*

USB

lsusb
lsusb -v

PCI

lspci
lspci -v
lspci -vv -nn # mit ids

SCSI

lsscsi

Kernel-Module

Modulverzeichnis:

ls /lib/modules/$(uname -r)/

Befehle

Kernel Meldungen anzeigen

dmesg

Kernel Module anzeigen

lsmod

Informationen und mögliche Parameter zu einem Modul 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 -w dummy

1)

Konfigurations-Dateien

Module nicht automatisch laden

Beispiel: automatisches laden des Moduls ipv6 verhindern

/etc/modprobe.d/notipv6.conf :

alias ipv6 off

Module beim Starten laden

Beispiel: Modul dummy laden

Debian

/etc/modules

dummy

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/dummy_params.conf : 2)

options dummy numdummies=2

Fehlendes Kernel-Modul nachträglich installieren

openSuSE 11.1

zypper search kmp

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
yum install kmod-ntfs
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

Mögliche Einstellungen sind in der Kerneldokumentation in der Datei Documentation/filesystems/proc.txt beschrieben. Hier ein paar Beispiele:

Auf sehr hoch belasteten Servern kann es Sinn machen, die Anzahl der gleichzeitig geöffneten Dateien zu erhöhen:

/etc/sysctl.conf :

fs.file-max = 16384
kernel.threads-max = 2048
sysctl -p

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 3):

Buchstabe Funktion
hHilfe zu den SysRq Keys anzeigen
eAllen Prozessen ( außer init ) das Signal TERM schicken
iAllen Prozessen ( außer init ) das Signal KILL schicken
sAlle gemounteten Dateisysteme syncen
uAlle Dateisysteme umounten
bSystem _sofort_ rebooten
oSystem _sofort_ ausschalten
kAlle Prozesse diese Terminals killen
sysctl -w 'kernel.sysrq=1'

Diese Einstellungen rebootfest machen:

/etc/sysctl.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

1)
wenn auch das nicht geht, kann man noch
rmmod -f dummy
probieren.
2)
veraltet: /etc/modprobe.conf :
3)
Die vollständige Liste der Befehle steht in der Kerneldokumentation in der Datei Documentation/sysrq.txt
lpi1/kernel.1431112831.txt.gz · Zuletzt geändert: 2015/05/08 19:20 von ingo_wichmann