LPIC101/101.1 Hardwareeinstellungen ermitteln und konfigurieren
Allgemeines[Bearbeiten | Quelltext bearbeiten]
- Hauptsoftwarekomponente ist der Kernel
- fungiert als Schnittstelle zwischen Soft- und Hardware
- Linux Kernel ist Modular
Identifizieren der Kernel-Version[Bearbeiten | Quelltext bearbeiten]
$ uname -r 5.9.0-1-amd64
- Erste Ziffer: Major Release (wird bei gravierenden Änderungen verändert)
- Zweite Ziffer: Version des Major Release
- Dritte Ziffer: Patch Level (kleine Änderungen)
- Zahlen danach sind frei wählbar und können beim Erstellen des Kernels selber (Makefile) oder durch die Distributoren festgelegt werden
Kommandos zur Verwaltung von Kernel-Modulen[Bearbeiten | Quelltext bearbeiten]
lsmod[Bearbeiten | Quelltext bearbeiten]
Zeigt Status der Kernelmodule durch Zugriff auf Datei /proc/modules
$ cat /proc/modules usbcore 196608 5 usbhid,usb_storage,xhci_pci,xhci_hcd, Live r8169 77824 0 - Live 0xffffffffa046f000 psmouse 114688 0 - Live 0xffffffffa0404000 mii 16384 1 r8169, Live 0xffffffffa03ff000 processor 3276 80-Live 0xffffffffa03f1000 thermal 20480 0 - Live 0xffffffffa03eb000 pcspkr 16384 0 - Live 0xffffffffa0320000 soundcore 16384 1 snd, Live 0xffffffffa03c8000 usb_common 16384 1 usbcore, Live 0xffffffffa0309000 fan 16384 0 - Live 0xffffffffa01cb000 lp204800-Live 0xffffffffa0189000 parport 40960 3 parport_pc,ppdev,lp, Live 0xffffffffa0112000 ext4 503808 1 - Live 0xffffffffa032f000 i915 1175552 3 - Live 0xffffffffa01d2000 ahci 36864 3 - Live 0xffffffffa01c1000 cryptd 20480 1 ghash_clmulni_intel, Live 0xffffffffa0047000 drm 286720 4 i915,drm_kms_helper, Live 0xffffffffa0070000 video 36864 1 i915, Live 0xffffffffa0019000 $ lsmod Module Size Used by usbcore 196608 5 usb_storage,usbhid,xhci_hcd,xhci_pci r8169 77824 0 psmouse 114688 0 mii 16384 1 r8169 processor 32768 0 thermal 20480 0 pcspkr 16384 0 soundcore 16384 1 snd usb_common 16384 1 usbcore fan 16384 0 lp 20480 0 parport 40960 3 lp,ppdev,parport_pc ext4 503808 1 i915 1175552 3 ahci 36864 3 cryptd 20480 1 ghash_clmulni_intel drm 286720 4 i915,drm_kms_helper video 36864 1 i915
insmod[Bearbeiten | Quelltext bearbeiten]
- Module können in den laufenden Kernel geladen werden durch komplette Pfadangabe und eventuell Optionen falls es diese benötigt
- Abhängigkeiten werden automatisch geprüft und im Falle einer Abhängigkeit mit Fehlermeldungen beantwortet.
- insmod gibt im Erfolgsfall keine Bestätigungsmeldung aus. Das Modul wird kommentarlos in den Arbeitsspeicher geladen.
# insmod /lib/modules/4.6.3/kernel/drivers/usb/storage/usb-storage.ko
rmmod[Bearbeiten | Quelltext bearbeiten]
Dient zum entfernen von nicht mehr benötigten Modulen. Dabei ist kein Pfad nötig sondern der Modulname
# rmmod usb-storage
Gibt bei Modulen die benutzt werden Fehlermeldung aus
# rmmod usbcore rmmod: ERROR: Module usbcore is in use by: usb_storage usbserial usbhid xhci_hcd xhci_pci
Optionen
-v verbose-Mode -f erzwingt das entladen eines Modules wärend Abhängigkeit
modprobe[Bearbeiten | Quelltext bearbeiten]
Vereint und optimiert die Befehle insmod und rmmod.
- Keine Pfadangabe mehr nötig
- Erkennt Abhängigkeit zwischen Modulen und behebt diese Probleme durch Installation der fehlenden Module bei Bedarf
- Module eines Typs können auf ein mal geladen werden
- Entfernen und Auflisten von Modulen (Bei Auflistung werden aber nur Module gezeigt die in den laufenden Kernel intrigiert werden können)
# modprobe -at
Die Option -a steht für all und -t für Type des Moduls. Optionen sind bei neueren Versionen nicht mehr möglich
Ressourcen für Hardwarekomponenten[Bearbeiten | Quelltext bearbeiten]
Zur abfrage der Konfigurationen der Hardwareressourcen sind die Dateien unterhalb des Verzeichnisses /proc nötig
Im zusammenhang wichtige Date zum prüfen:
- /proc/interrupts enthält Informationen über die vom System verwendeten Interrupts.
- /proc/ioports enthält Informationen über die von Hardwarekomponenten verwendeten I/O-Adressen
- /proc/dma ist eine Liste der von Geräten verwendeten DMA-Kanäle.
- /proc/pci ist ein veraltetes Verzeichnis, das bei älteren Kernel-Versionen Informationen über den PCI-Bus enthielt. Heutige Kernel-Versionen verwenden eine eigene Verzeichnishierarchie unterhalb von /proc/bus/pci.
Das Verzeichnis /proc/sys/kernel[Bearbeiten | Quelltext bearbeiten]
Zur Laufzeit legt der Kernel seine Konfigurationsinformationen im /proc-Dateisystem ab.Mit dem Befehl cat
können Änderungen vorgenommen werden. Wenn Sie Änderungen an diesen Dateien vornehmen, gehen diese bei einem Neustart des Systems verloren, weil das /proc-Dateisystemsich Informationen abbildet, die sich im Arbeitsspeicher befinden.
Das virtuelle Dateisystem sysfs[Bearbeiten | Quelltext bearbeiten]
sysfs exportiert, ähnlich wie das /proc-System, Informationen über Treibermodule des Kernels
root@user:/sys# ls -l insgesamt 0 drwxr-xr-x 2 root root 0 Feb 10 05:55 block drwxr-xr-x 28 root root 0 Feb 10 05:55 bus drwxr-xr-x 47 root root 0 Feb 10 05:55 class drwxr-xr-x 4 root root 0 Feb 10 05:55 dev drwxr-xr-x 16 root root 0 Feb 10 05:55 devices drwxr-xr-x 5 root root 0 Feb 10 05:55 firmware drwxr-xr-x 6 root root 0 Feb 10 05:55 fs drwxr-xr-x 2 root root 0 Feb 10 05:55 hypervisor drwxr-xr-x 9 root root 0 Feb 10 05:55 kernel drwxr-xr-x 128 root root 0 Feb 10 05:55 module drwxr-xr-x 2 root root 0 Feb 10 15:24 power
Jedes dieser Unterverzeichnisse repräsentiert ein Treibermodell des laufenden Kernels. Das Verzeichnis /sys ist dynamisch generiert und enthält deshalb nur benötgte Informationene zu den vorhandenen Geräten, dabei wird der Ressourcenverbrauch reduziert.
hald und dbus[Bearbeiten | Quelltext bearbeiten]
hald repräsentiert den Hardware Abstraction Layer. Im zusammenhang mit Hotplug-Geräten hat er die Aufgabe dem dbus zu informieren wenn ein Wechsellaufwerk angeschlossen wird.
udev[Bearbeiten | Quelltext bearbeiten]
- udev ist ein in das System intregierter Gerätemanger der die Ein- und Ausgabe dieser Gerärer verwaltet.
- Er erstellt dynamische Gerätedatein im Verzeichnis /dev
Gerätedateien unter /dev[Bearbeiten | Quelltext bearbeiten]
Bekannte Dateien unter /dev sind z. B.
/dev/null /dev/zero /dev/stdin /dev/stdout /dev/stderr
Gerätedateien für die Terminals (tty).
Auch Datenträger und logische Laufwerke werden unter Linux als Gerätedateien unterhalb des Pfades /dev dargestellt
Die Gerätedateien für Datenträger beginnen in der regel mit /dev/sd. Das gilt für SATA, USB und SCSI-Geräte.
/dev/sda - erstens Gerät /dev/sdb - zweites Gerät ...
- Auf einer Festplatte können nicht mehr als vier Partitionen erstellt werden.
- Primäre Partitionen sind Direkt ansprechbar und können problemlos formatiert und benutzt werden.
- Es können bis zu vier primär Partitionen gleichzeitig existieren
- Erweiterte Partitionen dienen als Behälter für logische Partitionen.
- Man kann nur eine einzige erweiterte Partition auf einer Festplatte anlegen in der nach Festplattentyp 60 (IDE) oder 12 (SCSi/SATA) logische Partitionen erstellt werden können.
- Primär und erweiterte Partitionen werden von 1-4 gelistet und logische ab 5 auch wenn nur eine erweiterte und eine primäre vorliegen.
/dev/sda1 – erste primäre Partition /dev/sda2 – zweite primäre Partition /dev/sda3 – erweiterte Partition /dev/sda5 – erste logische Partition /dev/sda6 – zweite logische Partition /dev/sda7 – dritte logische Partition
Der PCI-Bus[Bearbeiten | Quelltext bearbeiten]
- PCI-Steckplätze können genutzt werden, um Erweiterungskarten auf die Hauptplatine eines Computers zu stecken (Sound-, Netzwerk-und Grafikkarten usw.).
- Zum Überblick über den PCI-Bus benutzt man das Kommando lspci
- Das Kommando unterscheidet drei verbose Stufen
- lspci -vvvgibt sehr detaillierte Informationen
# lspci -v ... 00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/ Z37xxx Series Graphics & Display (rev 0e) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device 368d Flags: bus master, fast devsel, latency 0, IRQ 88 Memory at b0000000 (32-bit, non-prefetchable) [size=4M] Memory at a0000000 (32-bit, prefetchable) [size=256M] I/O ports at f080 [size=8] [virtual] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: [d0] Power Management version 2 Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- Capabilities: [b0] Vendor Specific Information: Len=07 <?> Kernel driver in use: i915
- lspci bezieht seine Informationen aus dem Verzeichnis /proc/bus/pci
- Es wertet die Dateien aus und stellt sie übersichtlich dar
- Mit -t stellt es die PCI-Geräte in einem Baumdiagramm dar
USB – Universal Serial Bus[Bearbeiten | Quelltext bearbeiten]
USB (Universal Serial Bus) ist ein Bus-System zum Anschluss von Peripheriegeräten
USB-Host-Controller-Typen[Bearbeiten | Quelltext bearbeiten]
- UHCI (Universal Host Controller Interface) unterstützt USB 1.1
- OHCI (Open Host Controller Interface) unterstützt USB 1.0
- EHCI (Enhanced Host Controller Interface) unterstützt USB 2.0
- xHCI (Extensible Host Controller Interface) unterstützt USB 3.1
Linux muss zu den jeweiligen Typen das Passende Kernel Modul geladen werden
- usb-ohci.o
- usb-uhci.o
- usb-ehci.o
- xhci_hci.o
USB-Klassen[Bearbeiten | Quelltext bearbeiten]
Nach dem Laden des richtigen Host-Controllers können die Klassentreiber eingebunden werden.
- hio.o (Human Interface Devices) Eingabegeräte: Tastatur, Maus etc.
- usb-sorage.o zur Ansteuerung von USB-Massenspeicher Geräten
- ...
Wenn ein USB-Gerät initialisiert wurde, wird unterhalb von /dev/bus/usb ein Verzeichnis angelegt
Die Dateien in diesem System liegen in binärer Form vor und sind nicht mit einem Editor einsehbar.
Mit lsusb
können informationen zu USB-Geräten trotzdem ausgelesen werden.
root@user:/ # lsusb -t Bus# 5 `-Dev# 1 Vendor 0x0000 Product 0x0000 `-Dev# 29 Vendor 0x1058 Product 0x0702 Bus# 4 `-Dev# 1 Vendor 0x0000 Product 0x0000 Bus# 3 `-Dev# 1 Vendor 0x0000 Product 0x0000 Bus# 2 `-Dev# 1 Vendor 0x0000 Product 0x0000 `-Dev# 52 Vendor 0x050f Product 0x0003 |-Dev# 53 Vendor 0x1131 Product 0x1001 `-Dev# 54 Vendor 0x04e8 Product 0x1623 Bus# 1 `-Dev# 1 Vendor 0x0000 Product 0x0000
Möchten Sie genauere Informationen über ein einzelnes Gerät erhalten, können Sie dieses über die Vendor- und Produktnummer angeben und einen ausführlichen Bericht erstellen lassen.
root@user:/ # lsusb -d 0x1058:0x0702 -v Bus 005 Device 029: ID 1058:0702 Western Digital Technologies, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 ...
Kontrollfragen[Bearbeiten | Quelltext bearbeiten]
Welche Kernel-Architektur wird weitgehen in Linux-Distibutionen verwendet?
Für was steht die erste Ziffer der Kernalversion?