Tutoriel Linux

USB-poorten onder Linux: commando’s die daadwerkelijk laten zien wat er is aangesloten.

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Als een USB-stick, externe harde schijf of seriële adapter niet meer reageert onder Linux, is het eerste wat je moet doen niet de computer opnieuw opstarten. Je moet eerst controleren of het apparaat wordt herkend door de kernel, door de USB-bus en vervolgens door het systeem.

Daarvoor heb je slechts een paar commando’s nodig: lsusb, lsusb -t, dmesg En journalctl -kZe vertellen niet allemaal hetzelfde verhaal. Als je ze in de juiste volgorde gebruikt, kun je snel tijd besparen op een apparaat dat niet herkend wordt.

Begin met het opsommen van de USB-apparaten.

Het eenvoudigste commando is lsusbHet toont de apparaten die op de USB-bussen zijn gedetecteerd:

lsusb

Je krijgt dan dit soort regels:

Bus 002 Apparaat 003: ID 0781:5581 SanDisk Corp. Ultra
Bus 001 Apparaat 004: ID 046d:c52b Logitech, Inc. Unifying Receiver

Het belangrijkste onderdeel is vaak de identificatiecode. leverancier: product, Bijvoorbeeld 0781:5581Zelfs als Linux het juiste stuurprogramma niet heeft geladen of de schijf niet heeft aangekoppeld, bewijst deze identificatiecode al dat het apparaat reageert op de USB-bus.

Als het commando niet bestaat, installeer dan het pakket. usbutils :

sudo apt update
sudo apt install usbutils

Bij andere distributies blijft de pakketnaam vaak behouden. usbutilsDe handleidingpagina lsusb(8) beschrijft de nuttige opties.

Bekijk de mappenstructuur met lsusb -t

lsusb Geeft aan wat er is gedetecteerd. lsusb -t Het laat zien hoe trendy het is:

lsusb -t

Deze weergave is erg handig bij USB-hubs, dockingstations en poorten op het voorpaneel. Voorbeeld:

/: Bus 02.Poort 1: Dev 1, Klasse=root_hub, Stuurprogramma=xhci_hcd/4p, 5000M
    |__ Poort 2: Apparaat 3, Als 0, Klasse=Massaopslag, Stuurprogramma=usb-opslag, 5000M

Hier zien we een USB-opslagapparaat in 5000MDaarom wordt USB 3.x gebruikt. Als er een snelle schijf verschijnt in 480MHet apparaat kan aangesloten zijn op een USB 2.0-poort, via een kabel met een beperkte bandbreedte, of achter een hub die de snelheid beperkt.

Kijk ook naar de kolom. BestuurderAls het veld leeg of onverwacht is, wordt het apparaat wel herkend, maar wordt het stuurprogramma niet noodzakelijkerwijs geladen zoals verwacht.

Houd in de gaten wat er gebeurt op het verbindingspunt.

Om het probleem goed te diagnosticeren, opent u een terminal, start u de kernelmonitoring en sluit u vervolgens het apparaat aan:

sudo dmesg -w

Je kunt ook gebruiken journaalctl Als uw distributie logbestanden centraliseert met behulp van systemd:

sudo journalctl -k -f

Op het verbindingspunt ziet u lijnen die verwijzen naar usb, nieuw hogesnelheids-USB-apparaat, usb-opslag, ttyUSB Of sdX afhankelijk van de apparatuur. Het zegt vaak meer dan lsusb alleen, omdat de fouten precies op het moment van de verbinding optreden.

Om de laatste berichten opnieuw te lezen zonder de realtime updates te volgen:

sudo dmesg | tail -80
sudo journalctl -k -n 80 --no-pager

Als je de logbestanden bij het opstarten of na een incident nader wilt bekijken, heb ik de methode gedetailleerd beschreven in de handleiding op… journalctl en de logbestanden van de laatste Linux-opstart.

Een USB-schijf identificeren die niet kan worden herkend.

Een USB-schijf wordt mogelijk wel gedetecteerd, maar niet automatisch gekoppeld. Controleer in dat geval de opslagblokken:

lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINTS,MODEL
sudo blkid

Als de schijf verschijnt in lsblkHet probleem ligt niet bij de USB-poort. Je moet het bestandssysteem, de machtigingen, automatisch aankoppelen of partitiefouten controleren. Als er niets verschijnt in lsblkGa terug naar de kernel-logboeken.

Probeer bij een verdachte USB-stick of -schijf niet direct een reparatie uit te voeren. Lees eerst de meldingen:

Lijnen met resetten van een USB-apparaat met hoge snelheid, I/O-fout Of apparaatbeschrijving lezen Ze wijzen eerder op een instabiele kabel, box, voeding of randapparaat.

Identificeer een seriële, netwerk- of Bluetooth-adapter.

Zoek naar een USB-naar-serieel-adapter bij de randapparatuur. ttyUSB Of ttyACM :

ls -l /dev/ttyUSB* /dev/ttyACM* 2>/dev/null
sudo dmesg | grep -Ei 'ttyUSB|ttyACM|ch341|cp210|ftdi'

Voor een USB-netwerkadapter combineer je de volgende stappen: lsusb met netwerkinterfaces:

ip-link
nmcli device status 2>/dev/null

Als de adapter wordt herkend door lsusb maar niet erin ip-linkWaarschijnlijk is er sprake van een probleem met de driver of firmware. Noteer in dat geval de exacte USB-identificatiecode voordat u naar een oplossing zoekt. Zoeken 0bda:8153 Linux is veel effectiever dan simpelweg zoeken naar “USB ethernet adapter”.

De snelle oplossing als een USB-apparaat niet reageert.

Als ik snel een diagnose moet stellen, gebruik ik deze volgorde:

lsusb
lsusb -t
sudo journalctl -k -f

Vervolgens koppel ik het apparaat los en sluit het opnieuw aan. Als er geen verandering in de logboeken te zien is, test ik een andere poort, kabel of voeding. Als de logboeken activiteit tonen, maar het apparaat nog steeds onbruikbaar is, controleer ik de driver en de opslag. lsblk, of de interface die is gemaakt in /ontwikkelaar.

Het is geen wondermiddel, maar het voorkomt dat het alle kanten op gaat. Eerst de USB-bus, dan de kernel-logs, en pas daarna het mounten, de driver of de applicatie die de hardware nodig heeft.

Dit moet worden geverifieerd voordat kan worden geconcludeerd dat de poort niet meer werkt.

Voordat je de USB-poort de schuld geeft, test dan in ieder geval het volgende:

  • nog een kabel, vooral voor externe schijven en smartphones;
  • een poort direct op de machine, zonder hub;
  • een ander apparaat op dezelfde poort;
  • de berichten dmesg Of journalctl -k op het moment van verbinding;
  • de voeding van het apparaat als het een 2,5-inch schijf, een behuizing of een dockingstation is.

Als lsusb Als het apparaat op de ene poort wel, maar op de andere niet wordt gedetecteerd, is er al een hardwarematige kabel aangesloten. Als geen enkele poort het apparaat detecteert, test het dan eerst op een andere computer voordat u uw Linux-configuratie aanpast.

Voor opdrachten met betrekking tot logbestanden, zie de referenties. dmesg(1) En journalctl(1) blijven nuttig wanneer je een specifieke optie wilt controleren.

sudo apt update && sudo apt upgrade