Identificació de
Perifèrics a Linux
Manual complet amb format wiki per identificar, diagnosticar i monitoritzar perifèrics connectats a un sistema GNU/Linux. Inclou opcions, exemples reals, diagnosi normal/anòmal, capes del SO i scripts d'automatització.
Presentació i metodologia
Linux ofereix un conjunt d'eines de línia de comandes que permeten identificar qualsevol perifèric connectat al sistema: des de dispositius USB i targetes PCI fins a discs, impressores i mòduls del kernel. A diferència d'entorns gràfics, les comandes de terminal proporcionen informació detallada directament des de les capes del sistema operatiu.
Aquest manual segueix una estructura wiki amb tres eixos principals:
- Justificació de la tria: per què s'utilitza cada comanda i quina capa del SO gestiona.
- Comparativa normal/anòmal: com distingir un perifèric ben detectat d'un amb problemes.
- Monitorització en directe: captura d'events en temps real en connectar/desconnectar dispositius.
usbutils, pciutils, util-linux,
kmod i cups.
Capes del SO i vinculació amb les comandes
Cada comanda d'identificació de perifèrics s'adreça a una capa concreta de l'arquitectura Linux. Comprendre aquesta vinculació ajuda a diagnosticar problemes en el nivell correcte:
dmesg (capa kernel), després lsmod (driver carregat?),
després udevadm (node creat?), i finalment la comanda d'alt nivell (lsusb, etc.).
Seguir les capes de baix a dalt localitza el problema de manera eficient.
lsusb — Dispositius USB
lsusb (del paquet usbutils) consulta el subsistema USB del kernel
a través de /sys/bus/usb/devices i la base de dades usb.ids.
Mostra identificadors del fabricant (Vendor ID) i del producte (Product ID) en hexadecimal.
Per què es tria: és la font primària per confirmar si un controlador USB ha detectat físicament el dispositiu, independentment de si el driver d'espai d'usuari funciona.
| Opció | Descripció | Exemple |
|---|---|---|
| -v | Sortida detallada (verbose): mostra tots els descriptors USB | lsusb -v |
| -t | Arbre jeràrquic de concentradors i dispositius | lsusb -t |
| -s bus:dev | Filtra un dispositiu específic per bus i número de dispositiu | lsusb -s 001:003 -v |
| -d vid:pid | Filtra per Vendor ID i Product ID (hexadecimal) | lsusb -d 046d:c52b |
| -D /dev/bus/usb/... | Accedeix directament al node del dispositiu | lsusb -D /dev/bus/usb/001/003 |
Arbre d'identificació USB: L'identificador 046d:c52b es descompon
en 046d (Logitech, Inc.) i c52b (Unifying Receiver). Amb -v
s'obté la velocitat, les classes i les interfícies del dispositiu.
lspci — Dispositius PCI/PCIe
lspci (paquet pciutils) llegeix directament l'espai de configuració PCI
des de /proc/bus/pci o /sys/bus/pci. Identifica targetes gràfiques,
controladors SATA/NVMe, adaptadors de xarxa, àudio i qualsevol dispositiu intern del bus PCIe.
Per què es tria: imprescindible per identificar el driver necessari per a hardware intern (targeta de xarxa sense driver, GPU no reconeguda, controlador RAID).
| Opció | Descripció | Exemple |
|---|---|---|
| -v / -vv / -vvv | Nivells de detall creixents | lspci -vv |
| -k | Mostra el driver del kernel i els mòduls disponibles per a cada dispositiu | lspci -k |
| -n | Mostra IDs numèriques en lloc de noms (útil per buscar a pci.ids) | lspci -n |
| -nn | Mostra nom i ID alhora | lspci -nn |
| -s slot | Mostra un dispositiu concret per adreça de bus | lspci -s 02:00.0 -v |
| -d vid:did | Filtra per Vendor:Device ID | lspci -d 10de: -k |
lsblk — Dispositius de Blocs
lsblk (paquet util-linux) llegeix de /sys/block i
/proc/partitions per mostrar tots els dispositius de blocs: discs durs (HDD),
unitats SSD, NVMe, unitats òptiques i dispositius de loopback. Mostra la jerarquia
disc → particions → punts de muntatge.
Per què es tria: visió ràpida i jeràrquica de l'emmagatzematge, incloent UUID, sistema de fitxers, punts de muntatge i mida.
| Opció | Descripció | Exemple |
|---|---|---|
| -a | Mostra tots els dispositius, fins i tot els buits | lsblk -a |
| -f | Sistema de fitxers, UUID i etiqueta de particions | lsblk -f |
| -o col,... | Tria quines columnes mostrar | lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT |
| -d | Mostra només discs, sense particions | lsblk -d -o NAME,SIZE,MODEL,TRAN |
| -J / -P | Sortida en JSON o pares clau=valor (scripting) | lsblk -J |
| -T | Mostra en arbre explícit (per defecte actiu) | lsblk -T |
TRAN indica el tipus de connexió del disc: sata, nvme,
usb o ata. Amb ROTA=0 confirmem SSD; ROTA=1 indica disc magnètic (HDD).
lsmod — Mòduls del Kernel
lsmod llegeix /proc/modules i mostra els mòduls (drivers) carregats
en memòria. Cada mòdul és un fitxer .ko que implementa el suport per a un
determinat tipus de hardware. La columna Used by indica si altres mòduls depenen del driver.
Per què es tria: un perifèric que lsusb detecta però no funciona
sovint indica que el mòdul corresponent no s'ha carregat o ha donat error.
Comandes relacionades:
modinfo <mòdul>— metadades del mòdul (versió, paràmetres, autor)modprobe <mòdul>— càrrega manual d'un mòdul amb dependènciesrmmod <mòdul>— descàrrega d'un mòduldepmod— reconstrueix la taula de dependències de mòduls
dmesg — Ring Buffer del Kernel
dmesg mostra el ring buffer del kernel — un registre de capacitat fixa on el
kernel escriu missatges en temps real sobre detecció de hardware, errors de drivers, inicialitzacies
de subsistemes i events del sistema. És la font de diagnosi de nivell més baix disponible sense
accedir a fitxers de log del sistema.
Per què es tria: és la primera eina a consultar quan un perifèric no funciona. Mostra exactament on el kernel ha fallat o quina línia de detecció ha tingut error.
| Opció | Descripció | Exemple |
|---|---|---|
| -H | Format llegible per humans amb colors i timestamps relatius | dmesg -H |
| -T | Timestamps en format data/hora llegible | dmesg -T |
| -w | Mode "follow": espera nous missatges en temps real | dmesg -w |
| -l level | Filtra per nivell: err, warn, notice, info | dmesg -l err,warn |
| -f facility | Filtra per origen: kern, daemon, user | dmesg -f kern |
| --since / --until | Filtra per rang temporal | dmesg --since "10 minutes ago" |
lpinfo — Impressores (CUPS)
lpinfo forma part del sistema d'impressió CUPS (Common Unix Printing System).
A diferència de les comandes de hardware, lpinfo opera sobre el daemon cupsd
i consulta els backends disponibles per a impressores: USB, xarxa (IPP, LPD, Socket), etc.
Per què es tria: permet identificar impressores detectades (físiques o de xarxa) i els controladors (PPD) disponibles, cosa que cap altra comanda de hardware fa de manera integrada.
| Opció | Descripció | Exemple |
|---|---|---|
| -v | Mostra els dispositius d'impressió disponibles (backends) | lpinfo -v |
| -m | Llista tots els controladors (PPD) disponibles | lpinfo -m |
| --include-schemes | Filtra per esquema (usb, ipp, socket...) | lpinfo -v --include-schemes usb |
| --timeout | Temps en segons per detectar dispositius de xarxa | lpinfo -v --timeout 10 |
lpinfo requereix que el daemon CUPS estigui en funcionament.
Si no és actiu: sudo systemctl start cups abans d'executar la comanda.
Per a diagnosi bàsica de la impressora, lsusb és independent de CUPS.
udevadm — Gestió d'Events udev
udevadm és l'eina d'administració del daemon udev, el sistema de Linux
que gestiona events de dispositius. Quan es connecta un dispositiu, el kernel emet un event
uevent que udev processa per crear nodes a /dev, aplicar regles i
notificar serveis d'espai d'usuari.
| Subcomanda | Descripció | Exemple |
|---|---|---|
| info -a -n /dev/sdX | Atributs complets d'un dispositiu (inclou parentals) | udevadm info -a -n /dev/sdb |
| info -q all -n /dev/sdX | Propietats udev del dispositiu (SUBSYSTEM, DRIVER...) | udevadm info -q all -n /dev/sda |
| monitor | Monitoritza events udev i del kernel en temps real | udevadm monitor --kernel --udev |
| settle | Espera que tots els events pendents s'hagin processat | udevadm settle |
| trigger | Reprocessa events per a dispositius existents | sudo udevadm trigger |
Normal vs Anòmal — Diagnosi Comparativa
Cada comanda presenta diferències clares entre un perifèric ben detectat i un que presenta problemes. La comparativa següent documenta els patrons de sortida que cal identificar.
lsusb · USB
dmesg · Kernel Ring Buffer
lspci -k · PCI / Driver
lsmod · Mòdul carregat / absent
-62 (ETIME): timeout, connector o port USB danyat.
-32 (EPIPE): pipe trencada, firmware del dispositiu corrupte.
-19 (ENODEV): dispositiu desaparegut sobtadament (desconnexió brusc).
Monitorització en Directe
Les eines de monitorització en temps real permeten observar exactament el que succeeix en el moment de connectar o desconnectar un dispositiu. Aquesta secció documenta les sortides reals capturades durant proves de connexió/desconnexió.
dmesg -w · Kernel en temps real
journalctl -f · Journal del sistema en temps real
udevadm monitor · Events udev en directe
Scripts d'Automatització
Els scripts següents automatitzen les comprovacions habituals d'identificació de perifèrics.
Es poden desar a /usr/local/bin/ i executar-se com a comandes del sistema.
Glossari de Termes
| Terme | Definició |
|---|---|
| VID / PID | Vendor ID / Product ID: identificadors hexadecimals únics de fabricant i producte USB o PCI |
| udev | Dimoni del kernel de Linux que gestiona events de dispositius, crea nodes a /dev i aplica regles .rules |
| uevent | Missatge que el kernel envia a udev quan canvia l'estat d'un dispositiu (add, remove, change) |
| Mòdul / .ko | Fitxer de codi del kernel carregable en temps d'execució que implementa el suport per a un driver |
| Ring buffer | Buffer circular de mida fixa on el kernel emmagatzema missatges de diagnosi (llegit per dmesg) |
| PPD | PostScript Printer Description: fitxer que descriu les capacitats d'una impressora per a CUPS |
| CUPS | Common Unix Printing System: sistema d'impressió estàndard de Linux/macOS |
| xhci_hcd | eXtensible Host Controller Interface: driver del controlador USB 3.x |
| sysfs | Sistema de fitxers virtual muntat a /sys que exposa informació del kernel sobre dispositius i mòduls |
| Blacklist | Llista de mòduls que el kernel no ha de carregar automàticament (fitxer /etc/modprobe.d/blacklist.conf) |
| SCSI subsystem | Capa d'abstracció del kernel per a dispositius d'emmagatzematge (HDD, SSD, USB Mass Storage) |
| TRAN (lsblk) | Transport: protocol de connexió del disc (sata, nvme, usb, ata) |