====== 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 -f dummy ===== Konfigurations-Dateien ===== ==== Module nicht automatisch laden ==== Beispiel: automatisches laden des Moduls //ip_tables// verhindern blacklist ip_tables ==== Laden des Moduls blockieren ==== alias dummy off oder install dummy /bin/false ==== 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/z_dummy_params.conf'' : (( veraltet: ''/etc/modprobe.conf'' https://www.debian.org/releases/stable/amd64/release-notes/ch-information.de.html Admins who were depending on different values will need to ensure they are set in the correct way to take precedence. A file in /etc/modprobe.d will override one with the same name under /lib/modprobe.d, but the names are processed in alphabetical order, so /lib/modprobe.d/systemd.conf follows and overrides (for instance) /etc/modprobe.d/dummy.conf. Make sure that any local configuration file has a name that sorts after „systemd.conf“, such as „/etc/modprobe.d/zz-local.conf“. )) 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 [[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 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 === * 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: === 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 === (( Defaults in ''/usr/lib/sysctl.d/*'' (CentOS 7) )) net.ipv4.icmp_echo_ignore_all=1 sysctl -p oder net.ipv4.icmp_echo_ignore_all=1 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. Wobei "SysRq" die "Druck"-, bzw. "S-Abf"-Taste meint.((Die vollständige Liste der Befehle steht in der Kerneldokumentation in der Datei ''[[https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst|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 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 [[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