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
Nächste Überarbeitung Beide Seiten, nächste Überarbeitung
admin_grundlagen:kernel [2011/10/26 13:28]
ingo_wichmann [Debian 6.0]
admin_grundlagen:kernel [2016/08/15 19:54]
ingo_wichmann [Einstellungen zur Laufzeit]
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 -w dummy
 +
 +(( wenn auch das nicht geht, kann man noch 
 +  rmmod -f dummy
 +probieren.))
 ===== 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 === +
-( nicht getestet ob das bei aktuellen Distributionen noch funktioniert ​beachtet wird ) +
- +
-''/​etc/​hotplug/​blacklist*''​ für Hardware Module die nicht per Hotplug geladen werden sollen+
  
 +''/​etc/​modprobe.d/​notip_tables.conf''​ :
 +<​file>​alias ip_tables off</​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/​dummy_params.conf'' ​
 +(( veraltet: 
 +''/​etc/​modprobe.conf''​ : 
 +)
 +<​file>​options dummy numdummies=2</​file>​
  
 ===== Fehlendes Kernel-Modul nachträglich installieren ===== ===== Fehlendes Kernel-Modul nachträglich installieren =====
Zeile 57: Zeile 79:
   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 143:
   * 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 ======
Zeile 192: Zeile 155:
  
 ====== 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: 
  
-''/​etc/sysctl.conf'' ​: +IPv4-Pingantworten ausschalten:​ (( Defaults in ''/​usr/lib/sysctl.d/*'' ​(CentOS 7) )) 
-<​file>​ + 
-fs.file-max = 16384 +<​file ​txt /​etc/​sysctl.conf
-kernel.threads-max ​2048+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 ((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 227: Zeile 205:
 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.txt · Zuletzt geändert: 2020/09/07 10:22 (Externe Bearbeitung)