La comanda lshw (list hardware) fa un inventari complet del maquinari de l’equip: placa base, processador, memòria, discos, targetes de xarxa i gràfiques, controladors USB i PCI… i ho presenta en forma d’arbre, amb el fabricant, el model, la mida, la versió del firmware i el controlador (driver) que fa servir cada component. És ideal per saber què hi ha dins d’un equip sense obrir-lo o per documentar un servidor.
Sintaxi
sudo lshw [format] [opcions]
Normalment no ve instal·lada. Per instal·lar-la: sudo apt install lshw (Debian, Ubuntu) o sudo dnf install lshw (Fedora, Rocky, Alma).
Es pot executar com a usuari normal, però avisa amb WARNING: you should run this program as super-user. i la informació surt incompleta (sense números de sèrie, dades de la memòria, de la BIOS…). Per tenir l’inventari sencer, executa-la amb sudo.
Fixa’t que les opcions de lshw van amb un sol guió encara que siguin paraules: -short, -class, -json.
Opcions més útils
| Opció | Què fa |
|---|---|
| (cap) | Arbre complet amb tots els detalls (és molt llarg) |
-short | Una línia per component: ruta, dispositiu, classe i descripció |
-businfo | Com -short, però amb l’adreça del bus (pci@…, usb@…, scsi@…) |
-class classe, -C classe | Només una classe: cpu, memory, disk, storage, network, display, bus, system… |
-json, -xml, -html | Exporta l’inventari en aquests formats |
-sanitize | Treu les dades sensibles (números de sèrie, adreces IP…) per poder compartir la sortida |
-numeric | Mostra també els identificadors numèrics (PCI, USB) |
-quiet | No mostra el progrés mentre analitza el sistema |
Exemples
Resum d’una línia per component
En un Raspberry Pi 4:
$ sudo lshw -short
H/W path Device Class Description
=================================================
system Computer
/0 bus Motherboard
/0/1 memory 3795MiB System memory
/0/2 processor
/0/3 processor
/0/4 processor
/0/5 processor
/0/0 bridge BCM2711 PCIe Bridge
/0/0/0 bus VL805/806 xHCI USB 3.0 Controller
/1 mmc0 bus MMC Host
/1/aaaa mmcblk0 disk SC128
...
En un PC o un servidor x86 la llista és més rica: hi veuràs el model de la placa base, la BIOS, cada mòdul de memòria (DIMM DDR4 … 3200 MHz), els discos amb el model, les targetes de xarxa, etc. Aquesta informació la treu de les taules DMI/SMBIOS del firmware, que els Raspberry Pi i moltes plaques ARM no tenen.
Només una classe de maquinari
sudo lshw -C memory # memòria: mòduls instal·lats, ranures lliures, velocitat
sudo lshw -C disk # discos: model, número de sèrie, mida
sudo lshw -C network # xarxa: model, adreça MAC, controlador, velocitat de l'enllaç
sudo lshw -C display # targeta gràfica i el seu controlador
Per exemple, la sortida de -C cpu té aquest aspecte (retallada):
*-cpu:0
physical id: 2
bus info: cpu@0
size: 1500MHz
capacity: 1500MHz
capabilities: fp asimd evtstrm crc32 cpuid cpufreq
La línia configuration: que surt a molts components (per exemple, a les targetes de xarxa) és la més útil per diagnosticar: hi apareixen driver=… (el controlador del nucli), firmware=…, link=yes/no i speed=1Gbit/s.
Amb l’adreça del bus
sudo lshw -businfo
Et permet relacionar cada component amb el que surt a lspci (pci@0000:01:00.0) o a lsusb.
Exportar l’inventari
# Informe HTML per obrir amb el navegador
sudo lshw -html > inventari.html
# JSON per processar-lo amb jq o desar-lo en una base de dades
sudo lshw -json > inventari.json
# Sense dades sensibles, per enganxar-ho en un fòrum
sudo lshw -short -sanitize
Un exemple de JSON d’una sola classe:
$ sudo lshw -json -C memory
[
{
"id" : "memory",
"class" : "memory",
"claimed" : true,
"description" : "System memory",
"physid" : "1",
"units" : "bytes",
"size" : 3980189696
}
]
Compte amb…
- La sortida completa és molt llarga: passa-la per
lesso filtra amb-Co-short. - Pot trigar uns segons: analitza molts busos. Si es penja en algun pas en un equip concret, pots desactivar aquella prova amb
-disable, p. ex.-disable usb. - Màquines virtuals i contenidors: mostra el maquinari virtual, no el de l’equip real.
- Números de sèrie: no comparteixis la sortida completa sense
-sanitize.