Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
admin_grundlagen:kernel [2016/08/15 19:54] ingo_wichmann [Einstellungen zur Laufzeit] |
admin_grundlagen:kernel [2019/09/17 10:04] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== 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 | ||
- | fortlaufend, mit Uhrzeit: | ||
- | dmesg -wT | ||
- | |||
- | ==== 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 | ||
- | |||
- | (( wenn auch das nicht geht, kann man noch | ||
- | rmmod -f dummy | ||
- | probieren.)) | ||
- | ===== Konfigurations-Dateien ===== | ||
- | ==== Module nicht automatisch laden ==== | ||
- | Beispiel: automatisches laden des Moduls //ip_tables// verhindern | ||
- | |||
- | ''/etc/modprobe.d/notip_tables.conf'' : | ||
- | <file>alias ip_tables off</file> | ||
- | ==== Module beim Starten laden ==== | ||
- | Beispiel: Modul //dummy// laden | ||
- | === Debian=== | ||
- | ''/etc/modules'' | ||
- | <file>dummy</file> | ||
- | |||
- | === SuSE === | ||
- | ''/etc/sysconfig/kernel'' : | ||
- | <file>MODULES_LOADED_ON_BOOT="dummy"</file> | ||
- | |||
- | === RedHat === | ||
- | ''/etc/rc.modules'' : | ||
- | <file>modprobe dummy</file> | ||
- | 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'' : | ||
- | (( veraltet: | ||
- | ''/etc/modprobe.conf'' : | ||
- | )) | ||
- | <file>options dummy numdummies=2</file> | ||
- | |||
- | ===== 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 [[http://elrepo.org|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 | ||
- | <file>Bus 001 Device 005: ID 0a46:6688 Davicom Semiconductor, Inc.</file> | ||
- | |||
- | ==== 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 | ||
- | <file> | ||
- | DM9601_DEV( "Davicom USB-100", 0x0a46, 0x6688, DEFAULT_GPIO_RESET ) | ||
- | </file> | ||
- | 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 === | ||
- | * http://wiki.centos.org/HowTos/BuildingKernelModules | ||
- | |||
- | ====== Kernel kompilieren ====== | ||
- | [[lpi2::kernel_kompilieren]] | ||
- | |||
- | ====== Neuen Kernel installieren ====== | ||
- | ===== Debian 6.0 ===== | ||
- | [[admin_grundlagen:paketverwaltung#zusaetzliche_repositories|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 ''[[http://kernel.org/doc/Documentation/filesystems/proc.txt|Documentation/filesystems/proc.txt]]'' beschrieben. Hier ein paar Beispiele: | ||
- | |||
- | |||
- | IPv4-Pingantworten ausschalten: (( Defaults in ''/usr/lib/sysctl.d/*'' (CentOS 7) )) | ||
- | |||
- | <file txt /etc/sysctl.conf> | ||
- | net.ipv4.icmp_echo_ignore_all=1 | ||
- | </file> | ||
- | |||
- | sysctl -p | ||
- | |||
- | oder | ||
- | <file txt /etc/sysctl.d/test.conf> | ||
- | net.ipv4.icmp_echo_ignore_all=1 | ||
- | </file> | ||
- | |||
- | sysctl -p /etc/sysctl.d/test.conf | ||
- | |||
- | Testen: | ||
- | ping localhost | ||
- | |||
- | ===== 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 ((Die vollständige Liste der Befehle steht in der Kerneldokumentation in der Datei ''[[http://kernel.org/doc/Documentation/sysrq.txt|Documentation/sysrq.txt]]'' )): | ||
- | |||
- | | 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 diese 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.conf'' : | ||
- | <file> | ||
- | kernel.sysrq = 1 | ||
- | </file> | ||
- | |||
- | ====== 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 [[admin_grundlagen:bootloader|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 ====== | ||
- | * http://www.linuxtopia.org/online_books/linux_kernel_index.html |