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

admin_grundlagen:kernel [2013/11/15 16:17]
ingo_wichmann [Kernel Bootparameter]
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 
-===== 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 
-  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 //ipv6// verhindern 
- 
-''/​etc/​modprobe.conf''​ : 
-<​file>​alias ipv6 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 
- 
-''/​etc/​modprobe.conf''​ : 
-<​file>​options dummy numdummies=2</​file>​ 
- 
-===== Fehlendes Kernel-Modul nachträglich installieren ===== 
-==== openSuSE 11.1 ==== 
-  zypper search kmp 
- 
-==== Debian ==== 
-Verfügbare Pakete anzeigen: ​ 
-  aptitude search modules 
-( Vorsicht: nicht alle angezeigten Pakete enthalten //​kernel//​-Module ) 
- 
-Beispiel WLAN Treiber ipw3945 
-  aptitude install ipw3945-modules-2.6-686 ipw3945d firmware-ipw3945 
-  modprobe ipw3945 
- 
-==== 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 
- 
-===== Eigenes Kernel-Modul schreiben ===== 
-Keine Angst, nur ein ganz einfaches "Hello World" Beispiel ... 
-==== 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 ====== 
-===== 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: 
- 
-Auf sehr hoch belasteten Servern kann es Sinn machen, die Anzahl der gleichzeitig geöffneten Dateien zu erhöhen: 
- 
-''/​etc/​sysctl.conf''​ : 
-<​file>​ 
-fs.file-max = 16384 
-kernel.threads-max = 2048 
-</​file>​ 
- 
-  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 ''​[[http://​kernel.org/​doc/​Documentation/​sysrq.txt|Documentation/​sysrq.txt]]''​ )): 
- 
-| Buchstabe | Funktion | 
-|h|Hilfe zu den SysRq Keys anzeigen| 
-|e|Allen Prozessen ( außer init ) das Signal TERM schicken| 
-|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'​ 
- 
-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 
admin_grundlagen/kernel.txt · Zuletzt geändert: 2020/09/07 10:22 (Externe Bearbeitung)