Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:kernel

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:kernel [2011/10/26 11:14]
ingo_wichmann
admin_grundlagen:kernel [2019/09/17 10:04] (aktuell)
Zeile 1: Zeile 1:
-==== Schnittstellen ====+====== Hardware ​Schnittstellen ​anzeigen ======
   ls /​sys/​bus/​*/​*   ls /​sys/​bus/​*/​*
-=== USB ===+===== USB =====
   lsusb   lsusb
   lsusb -v   lsusb -v
-=== PCI ===+===== PCI =====
   lspci   lspci
   lspci -v   lspci -v
-=== SCSI ===+  lspci -vv -nn # mit ids 
 +===== SCSI =====
   lsscsi   lsscsi
  
-==== Kernelmodule ​====+====== ​Kernel-Module ​====== 
 +Modulverzeichnis: ​
   ls /​lib/​modules/​$(uname -r)/   ls /​lib/​modules/​$(uname -r)/
- 
-====== Kernel-Module ====== 
 ===== Befehle ===== ===== Befehle =====
 ==== Kernel Meldungen anzeigen ==== ==== Kernel Meldungen anzeigen ====
   dmesg   dmesg
 +fortlaufend,​ mit Uhrzeit:
 +  dmesg -wT
  
 ==== Kernel Module anzeigen ==== ==== Kernel Module anzeigen ====
Zeile 22: Zeile 24:
  
 ==== Informationen und mögliche Parameter zu einem Modul anzeigen ==== ==== Informationen und mögliche Parameter zu einem Modul anzeigen ====
-  ​modinfo+Informationen zum Modul "​dummy"​ anzeigen 
 +  ​modinfo ​dummy
  
 ==== Modul von Hand laden ==== ==== Modul von Hand laden ====
-  ​modprobe+Modul "​dummy"​ laden 
 +  ​modprobe ​dummy
  
 ==== Modul entladen ==== ==== Modul entladen ====
-  ​modprobe -r+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 ===== ===== Konfigurations-Dateien =====
 ==== Module nicht automatisch laden ==== ==== Module nicht automatisch laden ====
-=== Distributionsübergreifend ab Linux 2.6 === +Beispiel: automatisches laden des Moduls ​//ip_tables// verhindern
-''​/etc/modprobe*''​ ( passende Datei wählen ) +
-<​file>​alias ipv6 off</file>+
  
-=== Hotplug === +<file txt /​etc/​modprobe.d/​notip_tables.conf>​ 
-( nicht getestet ob das bei aktuellen Distributionen noch funktioniert ​beachtet wird )+blacklist ip_tables 
 +</file>
  
-''​/etc/hotplug/blacklist*''​ für Hardware Module die nicht per Hotplug geladen werden sollen+==== Laden des Moduls blockieren ==== 
 +<file txt /etc/modprobe.d/nodummy.conf>​ 
 +alias dummy off 
 +</​file>​ 
 +oder 
 +<file txt /​etc/​modprobe.d/​nodummy.conf>​ 
 +install dummy /​bin/​false 
 +</​file>​
  
 ==== Module beim Starten laden ==== ==== Module beim Starten laden ====
 +Beispiel: Modul //dummy// laden
 === Debian=== ​ === Debian=== ​
 ''/​etc/​modules''​ ''/​etc/​modules''​
 +<​file>​dummy</​file>​
  
 === SuSE ===  === SuSE === 
 ''/​etc/​sysconfig/​kernel''​ : ''/​etc/​sysconfig/​kernel''​ :
-<​file>​MODULES_LOADED_ON_BOOT=""</​file>​+<​file>​MODULES_LOADED_ON_BOOT="​dummy"</​file>​
  
-=== Distributionsübergreifend ab Linux 2.=== +=== RedHat === 
-''/​etc/​modprobe*''​ ( passende Datei wählen ​+''/​etc/​rc.modules''​ :  
-<​file>​install ipv6</​file>​+<​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/​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“.  
 +)
 +<​file>​options dummy numdummies=2</​file>​
  
 ===== Fehlendes Kernel-Modul nachträglich installieren ===== ===== Fehlendes Kernel-Modul nachträglich installieren =====
Zeile 57: Zeile 92:
   zypper search kmp   zypper search kmp
  
-==== Debian ====+==== Debian ​====
 Verfügbare Pakete anzeigen: ​ Verfügbare Pakete anzeigen: ​
   aptitude search modules   aptitude search modules
 +  aptitude search dkms
 ( Vorsicht: nicht alle angezeigten Pakete enthalten //​kernel//​-Module ) ( Vorsicht: nicht alle angezeigten Pakete enthalten //​kernel//​-Module )
  
-Beispiel WLAN Treiber ipw3945 +==== CentOS ​5 ====
-  aptitude install ipw3945-modules-2.6-686 ipw3945d firmware-ipw3945 +
-  modprobe ipw3945 +
- +
-==== Centos ​5 ====+
 Verfügbare Pakete anzeigen: Verfügbare Pakete anzeigen:
   yum list | grep kmod   yum list | grep kmod
  
-=== Modul über dkms nachinstallieren === +=== Modul über ELRepo ​nachinstallieren === 
-Repository [[http://wiki.centos.org/​AdditionalResources/​Repositories/​RPMForge|rpmforge]] hinzufügen ( siehe auch [[paketverwaltung]] ): +ELRepo ist ein Repository mit Fokus auf hardware-nahen Paketen 
-  yum install yum-priorities + 
-''/​etc/​yum.repos.d/​CentOS-Base.repo''​ : +Repository [[http://elrepo.org|ELRepo]] hinzufügen (siehe auch [[yum]]): 
-<​file>​ +
-[base] +
-priority=1 +
-</​file>​ +
-.. +
-<​file>​ +
-[update] +
-priority=1 +
-</​file>​ +
-.. +
-  rpm --import http://​dag.wieers.com/​rpm/​packages/​RPM-GPG-KEY.dag.txt +
-  rpm -ihv http://​apt.sw.be/​redhat/​el5/​en/​i386/​RPMS.dag/​rpmforge-release-0.3.6-1.el5.rf.i386.rpm +
-Modul installieren +
-  yum install dkms-ipw3945 +
-testen +
-  modinfo ipw3945 +
-  /​etc/​init.d/​ipw3945d start +
-  dmesg | tail +
-   +
-==== Scientific Linux 6 ====+
 Verfügbare Pakete anzeigen: Verfügbare Pakete anzeigen:
-  yum list | grep kmod+  yum search ​kmod
  
-=== Modul von ATrpms nachinstallieren === 
  
-ATrpms Repository hinzufügen:​ (( aktuelle Version siehe http://​packages.atrpms.net/​name/​atrpms-repo/​ )) +== Modul installieren == 
-  ​rpm -i http://​dl.atrpms.net/​all/​atrpms-repo-6-4.el6.i686.rpm +  ​yum install kmod-ntfs 
-  yum list | grep kmdl +== testen ​== 
-  ​ +  ​modprobe ntfs 
-=== Doku === +  dmesg | tail 
-http://​wiki.centos.org/​HowTos/​BuildingKernelModules+
  
 ===== Fehlendes Kernel-Modul selbst bauen ===== ===== Fehlendes Kernel-Modul selbst bauen =====
Zeile 144: Zeile 156:
   * 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 ======
 ===== Debian 6.0 ===== ===== Debian 6.0 =====
-Repository hinzufügen,​ z.B. Debian Backports+[[admin_grundlagen:​paketverwaltung#​zusaetzliche_repositories|Repository]] hinzufügen,​ z.B. Debian Backports
  
   apt-get -t squeeze-backports install linux-image   apt-get -t squeeze-backports install linux-image
Zeile 192: Zeile 168:
  
 ====== Einstellungen zur Laufzeit ====== ====== Einstellungen zur Laufzeit ======
-Mögliche Einstellungen sind in der Kerneldokumentation in der Datei ''​Documentation/​filesystems/​proc.txt''​ beschrieben. Hier ein paar Beispiele:+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:
  
-Auf sehr hoch belasteten Servern kann es Sinn machen, die Anzahl der gleichzeitig geöffneten Dateien zu erhöhen:+=== Maximale PID ===
  
-''/​etc/sysctl.conf'' ​: +Maximale PID anzeigen: 
-<​file>​ +  sysctl kernel.pid_max 
-fs.file-max = 16384 + 
-kernel.threads-max ​2048+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) )) 
 + 
 +<​file ​txt /​etc/​sysctl.conf
 +net.ipv4.icmp_echo_ignore_all=1
 </​file>​ </​file>​
  
   sysctl -p   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 ((Die vollständige Liste der Befehle steht in der Kerneldokumentation in der Datei ''​Documentation/​sysrq.txt''​)):​+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. Wobei "​SysRq"​ die "​Druck"​-,​ bzw. "​S-Abf"​-Taste meint.((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|
  
-| Buchstabe | Funktion | +  * //​Eselsbrücken:​ BUSTIER// <- (dann allerdings von Hinten nach Vorne
-|h|Hilfe zu den SysRq Keys anzeigen| +  * //SUB// - hektisches Notaus 
-|e|Allen Prozessen ​außer init das Signal TERM schicken| +  * ''​K''​ ist sehr nützlich, um die grafische Oberfläche zu beenden. ​(Ersatz für Ctrl+Alt+Backspace)
-|i|Allen Prozessen ​außer init das Signal KILL schicken| +
-|s|Alle gemounteten Dateisysteme syncen| +
-|u|Alle Dateisysteme umounten| +
-|b|System _sofort_ rebooten| +
-|o|System _sofort_ ausschalten|+
  
   sysctl -w '​kernel.sysrq=1'​   sysctl -w '​kernel.sysrq=1'​
Zeile 219: Zeile 224:
 Diese Einstellungen rebootfest machen: Diese Einstellungen rebootfest machen:
  
-''/​etc/​sysctl.conf''​ :+''/​etc/​sysctl.d/kernel.conf''​ :
 <​file>​ <​file>​
 kernel.sysrq = 1 kernel.sysrq = 1
Zeile 227: Zeile 232:
 Eine Übersicht über die Parameter, die der Kernel beim Booten auswertet findet sich in der Datei ''​Documentation/​kernel-parameters.txt''​ in den Kernel-Quelltexten. ​ 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 ​( z.B. ''/​boot/​grub/​menu.lst''​ ) übergeben werden. ​+Kernel Bootparameter können beim Booten oder über die Konfigurationsdatei des [[admin_grundlagen:​bootloader|Bootloaders]] übergeben werden. ​
  
 ====== Kernel Compile-parameter ====== ====== Kernel Compile-parameter ======
admin_grundlagen/kernel.1319627658.txt.gz · Zuletzt geändert: 2011/10/26 11:14 von ingo_wichmann