LPIC101/101.1 Hardwareeinstellungen: Unterschied zwischen den Versionen

Aus Foxwiki
Jeremyehmke (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „==Allgemeines== *Hauptsoftwarekomponente ist der Kernel *fungiert als schnittstelle zwichen soft- und Hardware *Linux Kernel ist Modular **Ein monolithischer…“
 
(75 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Allgemeines==
'''LPIC101/101.1''' - Hardwareeinstellungen ermitteln und konfigurieren


*Hauptsoftwarekomponente ist der Kernel
== Beschreibung ==
*fungiert als schnittstelle zwichen soft- und Hardware
Hauptsoftwarekomponente ist der [[Kernel]]
*Linux Kernel ist Modular
* Schnittstelle zwischen Soft- und Hardware
**Ein monolithischer Kernel ist ein Kernel, in dem nicht nur Funktionen zu Speicher-,            Prozessverwaltung und zur Kommunikation zwischen den Prozessen, sondern auch Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.
* Linux [[Kernel ist Modular]]


==Identifizieren von Kernel-Versionen==
== Identifizieren der Kernel-Version ==
$ uname -r
5.9.0-1-amd64


<code>user@user:~$ uname -r</code>
* 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


*4 = Major Release (wird bei gravierenden änderungen verändert)
== Kernel-Module ==
*6 = Version des Major Release
; Kommandos zur Verwaltung von Kernel-Modulen
**((Früher) Grade Versionsnummern Stabel-Kernel Ungrade Entwickler-Kernel)
*3 = Patchlevel des Kernel (kleine Änderungen)
**(evtl. zahlen danach sind frei wehlbar und können selber zugeschrieben werden(Makefile))


==Kommandos zur Verwaltung von Kernel-Modulen==
=== lsmod ===
Zeigt Status der Kernelmodule durch Zugriff auf Datei /proc/modules


===Ismod===
$ '''cat /proc/modules'''
Zeigt Status der kernel Module durch zugriff auf Datei /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


    Auszug der Datei
$ '''lsmod'''
        user@user:~> cat /proc/modules
Module Size Used by
        usbcore 196608 5 usbhid,usb_storage,xhci_pci,xhci_hcd, Live
usbcore 196608 5 usb_storage,usbhid,xhci_hcd,xhci_pci
        r8169 77824 0 - Live 0xffffffffa046f000
r8169 77824 0
        psmouse 114688 0 - Live 0xffffffffa0404000
psmouse 114688 0
        mii 16384 1 r8169, Live 0xffffffffa03ff000
mii 16384 1 r8169
        processor 3276
processor 32768 0
        80-Live
thermal 20480 0
        0xffffffffa03f1000
pcspkr 16384 0
        thermal 20480 0 - Live 0xffffffffa03eb000
soundcore 16384 1 snd
        pcspkr 16384 0 - Live 0xffffffffa0320000
usb_common 16384 1 usbcore
        soundcore 16384 1 snd, Live 0xffffffffa03c8000
fan 16384 0
        usb_common 16384 1 usbcore, Live 0xffffffffa0309000
lp 20480 0
        fan 16384 0 - Live 0xffffffffa01cb000
parport 40960 3 lp,ppdev,parport_pc
        lp204800-Live
ext4 503808 1
        0xffffffffa0189000
i915 1175552 3
        parport 40960 3 parport_pc,ppdev,lp, Live 0xffffffffa0112000
ahci 36864 3
        ext4 503808 1 - Live 0xffffffffa032f000
cryptd 20480 1 ghash_clmulni_intel
        i915 1175552 3 - Live 0xffffffffa01d2000
drm 286720 4 i915,drm_kms_helper
        ahci 36864 3 - Live 0xffffffffa01c1000
video 36864 1 i915
        cryptd 20480 1 ghash_clmulni_intel, Live 0xffffffffa0047000
        drm 286720 4 i915,drm_kms_helper, Live 0xffffffffa0070000
        video 36864 1 i915, Live 0xffffffffa0019000
   
    Ausgabe unter lsmod:
        user@user:~> 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===
=== insmod ===
Module können in den laufenden Kernel geladen werden durch komlette Pfadangabe und evntuell Optionen falst es diese benötigt. Abhängigkeiten werden automatisch geprüft und im Falle einer Abhängigkeit mit Fehlermeldungen beantwortet.
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


<code>root@archangel:~# insmod /lib/modules/4.6.3/kernel/drivers/usb/storage/usb-storage.ko</code>
# '''insmod /lib/modules/4.6.3/kernel/drivers/usb/storage/usb-storage.ko'''


insmod gibt im Erfolgsfall keine Bestätigungsmeldung aus. Das Modul wird kommentarlos in den Arbeitsspeicher geladen.
=== rmmod ===
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


===rmmod===
=== modprobe ===
Dient zum entfernen von nicht mehr benötigten Modulen. Dabei ist kein Pfad nötig sondern der Modulname
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'''


Kommando:  root@user:~# rmmod usb-storage
Die Option -a steht für all und -t für Type des Moduls. Optionen sind bei neueren Versionen nicht mehr möglich


Gibt bei Modulen die benutzt werden fehlermeldung aus
== Hardwarekomponenten ==
; Ressourcen für Hardwarekomponenten
Zur Abfrage der Konfigurationen der Hardwareressourcen sind die Dateien unterhalb des Verzeichnisses /proc nötig


        root@user:~# rmmod usbcore
*/proc/interrupts enthält Informationen über die vom System verwendeten [[Interrupts]]
        rmmod: ERROR: Module usbcore is in use by: usb_storage usbserial usbhid
*/proc/ioports enthält Informationen über die von Hardwarekomponenten verwendeten I/O-Adressen
        xhci_hcd xhci_pci
*/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


Optionen für rmmod:
=== /proc/sys/kernel ===
            -v verbose-Mode
; Das Verzeichnis /proc/sys/kernel
            -f erzwingt das entladen eines Modules wärend Abhängigkeit
Zur Laufzeit legt der Kernel seine Konfigurationsinformationen im /proc-Dateisystem ab.Mit dem Befehl <code>cat</code> 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
           
===modprobe===
Vereint und Optimiet die befehle insmod und rmmod.
        -Keine Pfadangabe mehr nötig
        -Erkennt Abhängigkeit zwichen 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 intregiert werden können


Kommando:  archangel:~ # modprobe -at
=== sysfs ===
; Das virtuelle Dateisystem sysfs
sysfs exportiert, ähnlich wie das /proc-System, Informationen über Treibermodule des Kernels


Die Option -a steht für all und -t für type des Moduls. Optionen sind bei neueren Versionen nicht mehr möglich
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


==Ressourcen für Hardwarekomponenten==
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


Zur abfrage der Konfigurationen der Hardwareressourcen sind die Dateien unterhalb des Verzeichnisses /proc nötig
=== hald und dbus ===
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


        Im zusammenhang wichtige Date zum prüfen:
=== udev ===
            -/proc/interrupts enthält Informationen über die vom System verwendeten Interrupts.
* udev ist ein in das System intregierter Gerätemanger der die Ein- und Ausgabe dieser Gerärer verwaltet
            -/proc/ioports enthält Informationen über die von Hardwarekomponenten  verwendeten I/O-Adressen
* Er erstellt dynamische Gerätedatein im Verzeichnis /dev
            -/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==
=== Gerätedateien unter /dev ===
Bekannte Dateien unter /dev sind z.&nbsp;B.&nbsp;
/dev/null
/dev/zero
/dev/stdin
/dev/stdout
/dev/stderr


Zur Laufzeit legt der Kernel seine Konfigurationsinformationen im /proc-Dateisystem ab. Sie finden hier etliche Informationen, indem Sie die in diesem Verzeichnis enthaltenen Dateien z.B. mittels cat einsehen. Wenn Sie Änderungen an diesen Dateien vornehmen, sollten Sie bedenken, dass diese bei einem Neustart des Systems verloren gehen, weil das /proc-Dateisystemsich nicht auf der Festplatte eines Systems befindet, sondern Informationen
Gerätedateien für die Terminals (tty)
abbildet, die sich im Arbeitsspeicher befinden.


==Das virtuelle Dateisystem sysfs==
Auch Datenträger und logische Laufwerke werden unter Linux als Gerätedateien unterhalb des Pfades /dev dargestellt


sysfs exportiert, ähnlich wie das /proc-System, Informationen über Treibermodule des Kernels
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


            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äsen tiert 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==
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


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.
=== Der PCI-Bus ===
* 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


==udev==
# '''lspci -v'''


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.
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


==Gerätedatein unter /dev==
* ''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


Bekante datein unter /dev sind z.B. /dev/null, /dev/zero, /dev/stdin,/dev/stdout, /dev/stderr und Gerätedateien für die Terminals (tty). Auch Datenträger und logische Laufwerke werden unter Linux als Gerätedateien unterhalb des Pfades /dev dargestellt.
=== USB – Universal Serial Bus ===


Die Gerätedatein für Datenträger beginnen in der regel mit /dev/sd. Das gilt für SATA, USB und SCSI-Geräte.
USB (Universal Serial Bus) ist ein Bus-System zum Anschluss von Peripheriegeräten


        - /dev/sda  -   erstens Gerät
==== USB-Host-Controller-Typen ====
        - /dev/sdb  -  zweites Gerät
* 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
Auf grund des Master Boot Record aufbaus kann auf einer Festplatte nicht mehr als vier Partitionen erstellt werden. Man unterscheidet zwichen primiären und erweiterten Partitionen.
* xHCI (Extensible Host Controller Interface) unterstützt USB 3.1
Primäre Partitionen sind Direkt ansprechbar und können problemlos Formatiert und benutzt werden. es können bis zu vier premär Partitionen gleichzeitig exiszieren. Erweiterte Partitionen können nicht direkt verwendet werden sie sind nur als Behälter für logische Partitionen gedacht. Man kann nur eine einzige erweiterte Pertition auf einer Festplatte anlegen ind der je 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
Linux muss zu den jeweiligen Typen das Passende Kernel Modul geladen werden
        /dev/sda2 – zweite primäre Partition
* usb-ohci.o
        /dev/sda3 – einzige erweiterte Partition
* usb-uhci.o
        /dev/sda5 – erste logische Partition
* usb-ehci.o
        /dev/sda6 – zweite logische Partition
* xhci_hci.o
        /dev/sda7 – dritte logische Partition
       
==Der PCI-Bus==


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
==== USB-Klassen ====
benutzt man das Kommando lspci. Das Kommando unterscheidet in drei verbose Stufen. lspci -vvv
Nach dem Laden des richtigen Host-Controllers können die Klassentreiber eingebunden werden
gibt sehr Detaillierte Informationen über den PCI-Bus
* hio.o (Human Interface Devices) Eingabegeräte: Tastatur, Maus etc
* usb-sorage.o zur Ansteuerung von USB-Massenspeicher Geräten
*


        root@user:/ # lspci -v
Wenn ein USB-Gerät initialisiert wurde, wird unterhalb von /dev/bus/usb ein Verzeichnis angelegt
        ...
        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
           
Das Programm lspci bezieht seine Informationen aus dem Verzeichnis /proc/bus/pci . Es wertet die Datein aus und stellt sie übersichtlich dar. Mit t- stellt lspci die PCI-Geräte in einem Baumdiagram dar.


==USB – Universal Serial Bus==
Die Dateien in diesem System liegen in binärer Form vor und sind nicht mit einem Editor einsehbar


USB (Universal  Serial  Bus) ist ein von Intel entwickeltes Bus-System zum Anschluss von Peripheriegeräten an einen PC.
Mit <code>lsusb</code> können informationen zu USB-Geräten trotzdem ausgelesen werden


===USB-Host-Controller-Typen===
# 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


        UHCI (Universal Host Controller Interface) unterstützt USB 1.1
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
        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
       
Unter Windows brauch man sich keine gedanken zu machen. Linux muss zu den jewailigen Typen das Passende Kernelmodul geladen werden. Das wären die sogenannten Host-Controller-Treiber
usb-ohci.o, usb-uhci.o, usb-ehci.o oder xhci_hci.o.


===USB-Klassen===
# 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


Nach laden des richtigen Host-Controllers können die klassenteriber eingebunden werden.
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/LPIC101/101}}


        -hio.o (Human Interface Devices) Eingabegeräte: Tastatur, Maus etc.
==== Links ====
        -usb-sorage.o zur ansteuerung von USB-Massenspeicher geräten
===== Weblinks =====
        -...
       
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
=== Kontrollfragen ===
        Bus#  5
<div class="toccolours mw-collapsible mw-collapsed">
        `-Dev#  1 Vendor 0x0000 Product 0x0000
Welche Kernel-Architektur wird meist in Linux-Systemen verwendet?
        `-Dev#  29 Vendor 0x1058 Product 0x0702
<div class="mw-collapsible-content">Ein Monotitischer-kernel. Er ist ein Kernel, in dem nicht nur Funktionen zu Speicher-, Prozessverwaltung und zur Kommunikation zwischen den Prozessen, sondern auch Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind. </div>
        Bus#  4
</div>
        `-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 Siedieses über  die Vendor- und Produktnummer angeben und einen ausführlichenBericht erstellen lassen.
<div class="toccolours mw-collapsible mw-collapsed">
Was bedeutet die erste Ziffer der Kernelversion?
<div class="mw-collapsible-content">Major Release (wird bei gravierenden Änderungen verändert)</div>
</div>


        root@user:/ # lsusb -d 0x1058:0x0702 -v
[[Kategorie:Linux/LPIC/101]]
        Bus 005 Device 029: ID 1058:0702 Western Digital Technologies, Inc.
</noinclude>
        Device Descriptor:
            bLength                18
            bDescriptorType        1
            bcdUSB              2.00
            bDeviceClass            0 (Defined at Interface level)
            bDeviceSubClass        0
            bDeviceProtocol        0
            bMaxPacketSize0        64
        ...

Aktuelle Version vom 8. August 2024, 10:22 Uhr

LPIC101/101.1 - Hardwareeinstellungen ermitteln und konfigurieren

Beschreibung

Hauptsoftwarekomponente ist der Kernel

Identifizieren der Kernel-Version

$ 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

Kernel-Module

Kommandos zur Verwaltung von Kernel-Modulen

lsmod

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

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

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

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

Hardwarekomponenten

Ressourcen für Hardwarekomponenten

Zur Abfrage der Konfigurationen der Hardwareressourcen sind die Dateien unterhalb des Verzeichnisses /proc nötig

*/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

/proc/sys/kernel

Das Verzeichnis /proc/sys/kernel

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

sysfs

Das virtuelle Dateisystem sysfs

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

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

  • 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

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

  • 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
  1. 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

USB (Universal Serial Bus) ist ein Bus-System zum Anschluss von Peripheriegeräten

USB-Host-Controller-Typen

  • 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

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

# 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

# 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


Anhang

Siehe auch

Links

Weblinks

Kontrollfragen

Welche Kernel-Architektur wird meist in Linux-Systemen verwendet?

Ein Monotitischer-kernel. Er ist ein Kernel, in dem nicht nur Funktionen zu Speicher-, Prozessverwaltung und zur Kommunikation zwischen den Prozessen, sondern auch Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.

Was bedeutet die erste Ziffer der Kernelversion?

Major Release (wird bei gravierenden Änderungen verändert)