Rund um USB - Universal Serial Bus


© November 2020, Letzte Änderung 05.08.22

This page is under construction - wie es so schön heißt...

Übersicht

Dateien auf externen Datenträger löschen

Wer unter Debian 10 mit den Dateimanager Thunar (siehe xfce.org)
der Xfce-Oberfläche gearbeitet hat, wird bereits festgestellt haben,
daß Löschen nicht unwiderbringlich gelöscht bedeutet,
sondern die Datei in den Mülleimer geschoben wird
z.B. in den Ordner .Trash-xxxx,
welcher sich auf dem Wechseldatenträger befindet.
xxxx steht für die Benutzer-ID.

Im Benutzerverzeichnis gibt es einen vergleichbaren Mülleimer
~/.local/share/Trash,  welcher für gelöschte Daten
von der  Home-Partition  gedacht ist.
Die gelöschten Dateien befinden sich im Unter-Ordner  files.
Die Lösch-Orte und das Datum befinden sich im Unter-Ordner  info.
Hat man Ordner mit fremden Inhalten gelöscht,
landet das im Unter-Ordner  expunged.

Die Zusammenfassung beider Ordner befindet sich unter Thunar
im virtuellen Ordner trash:///.

thunar pulldown menu

Sowohl im Pull-Down-Menü, alsauch in dem Kontext-Menü via
rechte Maustaste, befindet sich nur ein 'in den Mülleimer verschieben' Befehl.
Die DEL- oder Entfernen-Taste funktioniert ebenso.

thunar context sensitive menu

Ein unwiderbringliches Löschen wie  rm  habe ich ich bisher nicht gefunden.
In den meisten Fällen hilft es dann das Mülleimersymbol
mit rechter Maus zu drücken und alles zu löschen.
Bitte vorher einmal in den Müll schauen, ob alles weg kann.

waste basket remove all

Hier ist leider nur möglich den kompletten Inhalt zu löschen,
nicht aber einzelne Dateien.
Es kann sein, das die gelöschten Dateien vom Wechseldatenträger
nicht angezeigt werden.
Und es kann auch passieren, daß sie angezeigt werden, aber nicht löschbar sind.

waste basket remove error

Eine mögliche Lösung via GUI, ist es Krusader zu verwenden.
Hier habe ich die Möglichkeit in den Ordner z.B.  .Trash-1001  zu gehen
und dann jeweils in den Ordnern  info  und  files  das Gewünschte zu löschen.

remove via krusader

Tatsächlich gibt es auch bei Thunar diese Möglichkeit via Shift-Del-Taste.
Entschuldigung, ich meinte natürlich Hochstelltaste und Entfernen-Taste.

remove via Thunar

Wichtig ist natürlich auch, am Ende aller Aktionen, nicht einfach den USB-Stick
raus zu ziehen, sondern bei allen Anwendungen, welche darauf zugriffen,
einen anderen Pfad zu wählen z.B.  /media/  um dann
das Medium korrekt via unmount zu entfernen.

Zum Anfang

Weitere Info über USB

Ab und an kann es Probleme mit den USB-Anschlüssen geben.
Z.B.   Der USB-Frontanschluss eines PCs ist meist über ein ca. 50 cm langes Kabel
über einen Pfostenstecker mit den Motherboard verbunden.
Die Kabelquerschnitte lassen meist zu wünschen übrig, was dann zu unsicheren Übertragungen führt.
Versucht man über einen Hub zu viel Pheripherie zu betreiben, können ebenso die Kabelquerschnitte,
die Stromfähigkeit des Hubs alsauch die Stromfähigkeit des USB-Anschlusses ein Problem werden.

Um sich einen Überblick zu verschaffen was dieser Computer kann, kann man folgendes eingeben.

cat /sys/bus/usb/devices/usb?/speed
480        Bus 01
10000      Bus 02
480        Bus 03
5000       Bus 04

Die Zahlen und deren Reihenfolge sagen etwas aus.
Entsprechend habe ich die Bus-Nummer ergänzt, welche ich über  lsusb -t  heraus bekam.

Wegen Protokolle und anderen Gründen erreicht man in der Praxis
ca. die Hälfte des oben genannten theoretischen Datendurchsatzes.

Mbit/s theoretisch
Byte/s
Bezeichnung weitere Info
1,5 188 k USB 1.0 Low Speed max. 5 m
12 1,5 M USB 1.0 Full Speed max. 5 m, typ. 1 MBytes/s
480 60 M USB 2.0 Hi-Speed max. 5 m, typ. < 36 MBytes/s
5000 625 M USB 3.0 SuperSpeed
USB 3.1 Gen1   SS
max. 3 m, < 410 MBytes/s
bis 900 mA
10000 1,25 G USB 3.1 SuperSpeed Plus
USB 3.1 Gen2   SS10
< 900 MBytes/s,
bis 5 A
20000 2,5 G USB 3.2 SuperSpeed Plus
USB 3.2 Gen2x2
< 1,8 GBytes/s,
bis 5 A

Bis USB 3.0 sind alle USB-Anschlüsse 4 oder 5 polig (Type A, Type B, Mini, Micro).
Ab USB 3.1 werden mehrere Lanes (verdrillte Leitungspaare) verwendet,
sodaß mindestens ein USB Type C Anschluss nötig ist.
Umgekehrt garantiert ein USB-C Anschlusse allerdings keine USB 3.1 Geschwindigkeit.

Meist ist die Topologie interessant.

lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 3: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 6: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 6: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 3, If 0, Class=Vendor Specific Class, Driver=usbfs, 480M
    |__ Port 10: Dev 125, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 4: Dev 10, If 2, Class=Vendor Specific Class, Driver=btusb, 12M
        |__ Port 4: Dev 10, If 0, Class=Vendor Specific Class, Driver=btusb, 12M
        |__ Port 4: Dev 10, If 3, Class=Application Specific Interface, Driver=, 12M
        |__ Port 4: Dev 10, If 1, Class=Vendor Specific Class, Driver=btusb, 12M
        |__ Port 2: Dev 127, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 3: Dev 15, If 0, Class=Hub, Driver=hub/7p, 480M
            |__ Port 1: Dev 16, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 6: Dev 17, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 1: Dev 126, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

Eine Kurzbeschreibung der Komponenten erhalte ich wie folgt.
Reicht das nicht aus, kann ich mir mit   usb-devices   weitere Details angucken.
Anbei nur ein Auszug eines Gerätes.

lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 04d8:900a Microchip Technology, Inc. PICkit3
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 04a9:190a Canon, Inc. CanoScan LiDE 210
Bus 001 Device 002: ID 8087:0aa7 Intel Corp. 
Bus 001 Device 010: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
Bus 001 Device 017: ID 04d9:a052 Holtek Semiconductor, Inc. USB-zyTemp
Bus 001 Device 016: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 015: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 127: ID 046d:c050 Logitech, Inc. RX 250 Optical Mouse
Bus 001 Device 126: ID 046a:0011 Cherry GmbH G83 (RS 6000) Keyboard
Bus 001 Device 125: ID 214b:7250  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

usb-devices
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh=10
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.19
S:  Manufacturer=Linux 4.19.0-20-amd64 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:03:00.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

Versucht man nun aus diesen Informationen ein Bild zu erstellen, könnte das wie folgt aussehen.

USB topologie

Anbei noch ein leicht bearbeites Bild von der Rückseite des Motherboards B450-ITX von der ASRock.com-Seite.

MB Stecker

Oberhalb des PS/2 Anschlusses ist in diesem Beispiel  Bus 001 Device 003 oder  Bus 003 Device 125.

Neben dem HDMI ist der obere  Bus 002 Device 003  ein USB 3.0 Anschluss
und der untere USB-C Anschluss  Bus 002 Device 004.

Unterhalb des Ethernet-Anschlusses befindet sich  Bus 004 Device 002 und darunter  Bus 004 Device 003.
Schließt man dort ein USB 2.0 Gerät an, wird es  Bus 003 Device 003 oder darunter  Bus 003 Device 004.

Auf dem Board selber ist noch ein doppelter USB 3.0 Anschluß, welchen ich nach vorne herausgeführt habe.
Dieser ist offensichtlich bei USB 3.0 Geräten,  Bus 002 Device 002  und  Bus 002 Device 005
und für ein USB 2.0 Gerät sieht es aus wie  Bus 001 Device 070  und  Bus 001 Device 071.

Leider ist die Nummerierung der Busse und Devices nicht statisch.
Wird beispielsweise ein Hub durch ein USB-Speichermedium getauscht,
bekommt der Speicher nicht die selbe Nummer wie vorher der Hub.

Quellen

opensource.com   Recognize more devices on Linux with this USB ID Repository
gowdy.us   The USB ID Repository

Zum Anfang

USB Power Management

Spätestens wenn man einen USB-Umschalter hat, an dem Tasttatur und Maus angeschlossen sind,
wird man mit dem USB-Powermanagement (USB-PM) konfrontiert.
Bei mir hat es sich mit den AIMOS AM-UK404 so verhalten, daß wenn ich einen aktiven Linux-PC weg schaltete,
um auf einen weiteren PC etwas zu verändern, dann war es kaum noch möglich wieder zurück zu schalten.
Ich war dann gezwungen eine weitere Tastatur anzuschließen
um zumindest den PC geordnet runter fahren zu können.
Schaltete ich von einen PC weg, welcher bereits seinen Screensaver aktiv hatte, gab es keine Probleme.

Entsprechend  kernel.org  wird es damit erklärt,
das nicht verwendete USB-Hubs abgeschaltet - 'to suspend' werden,
weil der Kernel glaubt, dort ist nichts mehr angeschlossen - 'in idle'.
Aufgrund der bekannten Probleme, hat sich das Verhalten in neueren Kernel-Version geändert.
Unter DEB 10 kommt zurzeit folgendes heraus.

uname -srm
Linux 4.19.0-20-amd64 x86_64           → Version 4,   Rev. 19.0,   Patch 20

Präsentations-Modus

Eine Lösung ist somit das Desktop möglichst schnell dunkel zu schalten und
im Bedarfsfall das Abschalten über den Präsentationsmodus zu verhindern.

Siehe   Applications > Settings > Power Manager.
Im Reiter  General  aktiviere ich das System tray icon (für den Präsentationsmodus)
Und im Reiter  Display  kann ich als minimale Zeit  'Blank after 2 minutes'  einstellen.

Vom dynamischen zum statischen USB-PM

Über  lsusb  habe ich beispielsweise herausbekommen,
daß die Maus am USB-Hub als  Bus 003 Device 024  angeschlossen ist.
Die Tastatur ist ähnlich unter  Bus 003 Device 023  angeschlossen.
Via  lsusb -t  erhalte ich für die Tastatur folgenden Ordner-Name.

lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 3: Dev 13, If 0, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 4: Dev 22, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 23, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
→ 3-4.1

Im Ordner  power/  sind 3 Steuerdateien  control, wakeup  und  autosuspend_delay_ms.

ls /sys/bus/usb/devices/
1-0:1.0   1-6:1.0  2-0:1.0  3-4        3-4.2      3-4.3:1.0      3-4.3.6      3-4.4:1.1  usb1
1-10      1-6:1.1  3-0:1.0  3-4.1      3-4.2:1.0  3-4.3.1.1      3-4.3.6:1.0  3-4.4:1.2  usb2
1-10:1.0  1-7      3-3      3-4:1.0    3-4.3      3-4.3.1:1.0    3-4.4        3-4.4:1.3  usb3
1-6       1-7:1.0  3-3:1.0  3-4.1:1.0  3-4.3.1    3-4.3.1.1:1.0  3-4.4:1.0    4-0:1.0    usb4

cd /sys/bus/usb/devices/usb3/power/

cat control 
auto

cat autosuspend_delay_ms 
0

Für die Datei control ist  auto  die Standard-Einstellung, welche 'autosuspend' und 'autoresume' ermöglicht.
Ändere ich den Eintrag auf  on  bleibt die Schnittstelle aktiv.
Die Datei autosuspend_delay_ms steht laut  kernel.org  normalerweise auf  2000,
aber bei allen DEB 10-Systemen, welche ich überprüfte, ist sie  0.
Ändere ich die Zeit auf  -1  bleibt die Schnittstelle ebenso aktiv.

su

nano control
on

Und ab nun bleibt die 3. USB-Schnittstelle vom Powermanagement ausgeschlossen.
Ein Umschalten des AIMOS 4x4 USB-Switch hat keine negativen Folgen mehr.

Quellen

kernel.org   Power Management for USB
stackoverflow.com   Controlling a USB power supply (on/off) with Linux
stackoverflow.com   Linux USB: turning the power on and off?
force.com   USB Port Power Control in Linux (Ubuntu)
archlinux.org   Power management
askubuntu.com   How can I disable USB autosuspend for a specific device?
ubuntu.com   PowerManagement
linux-usb.org   Welcome to the home of the Linux USB Project

Zum Anfang