====== USB ====== Die erkennung von USB Speichermedien & Geräten.\\ Wenn ein USB-Gerät unter Linux eingesteckt wird, passiert im Hintergrund eine ganze Menge in Bruchteilen von Sekunden. Es ist eine Art „Staffellauf“ zwischen dem Kernel und verschiedenen Hintergrunddiensten (Daemons). lsusb - list USB devices lsblk - list block devices lsblk -S dmesg - print or control the kernel ring buffer dmesg | grep usb udisksctl - The udisks command line tool udisksctl status udevadm - udev management tool udevadm monitor | grep -i usb journalctl - Print log entries from the systemd journal journalct -f Hier sind die wichtigsten Akteure, unterteilt in ihre Aufgabenbereiche: ===== Die Hardware-Ebene: Der Kernel ===== Sobald die Kontakte schließen, übernimmt der **Linux Kernel**. * **usbcore**: Das Grundmodul, das erkennt, dass „etwas“ am Bus passiert ist. * **Treiber (Modules)**: Der Kernel schaut nach der Vendor-ID und Product-ID und lädt den passenden Treiber (z. B. `usb_storage` für USB-Sticks oder `usbhid` für Tastaturen). * **printk / dmesg**: Der Kernel schreibt das Ereignis in den Ringpuffer. (Mit dem Befehl `dmesg -w` kannst du das live beobachten). ===== Die Schaltzentrale: udev / systemd-udevd ===== Dies ist das wichtigste Programm im User-Space. * **Aufgabe**: Sobald der Kernel das Gerät sieht, sendet er ein „u-event“. **udev** fängt dieses ab. * **Regeln**: Es schaut in `/etc/udev/rules.d/` nach, was zu tun ist. * **Gerätedateien**: udev erstellt den Eintrag unter `/dev/` (z. B. `/dev/sdb1`). ===== Informationssammler: udisks / udisksd ===== Wenn es sich um ein Speichermedium handelt, kommt **udisks** ins Spiel. * Es liest die Partitionstabellen aus, erkennt das Dateisystem (FAT32, NTFS, ext4) und fragt Dinge wie den Namen (Label) des Sticks ab. * Es stellt diese Infos über den **D-Bus** (das interne Kommunikationssystem von Linux) anderen Programmen zur Verfügung. ===== Die Desktop-Ebene (GUI) ===== Wenn du eine grafische Oberfläche nutzt (GNOME, KDE, XFCE), reagieren deren Manager: * **gvfs (GNOME Virtual File System)** oder **KIO (KDE Input/Output)**: Diese Dienste sorgen dafür, dass das Gerät tatsächlich „gemountet“ (eingebunden) wird. * **Nautilus / Dolphin / Thunar**: Dein Dateimanager zeigt plötzlich ein Icon für den neuen Stick an. * **Notification Daemon**: Das kleine Pop-up erscheint („Neues Gerät gefunden“). --- ===== Zusammenfassung des Ablaufs ===== ^ Schritt ^ Programm / Komponente ^ Aktion ^ | **Erkennung** | Kernel (usbcore) | Elektrisches Signal wird registriert. | | **Benennung** | ''udevd'' | ''/dev/''-Eintrag wird erstellt & Berechtigungen gesetzt. | | **Analyse** | ''udisksd'' | Dateisystem und Kapazität werden geprüft. | | **Einbindung** | ''gvfs'' / ''mount'' | Das Gerät wird für den Nutzer beschreibbar gemacht. | | **Anzeige** | Dateimanager | Ein Fenster öffnet sich oder das Icon erscheint. | {{tag>cli usb}}