Comandes LinuxInformació del sistema LinuxLinux

La comanda lshw a Linux: inventari complet del maquinari



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)
-shortUna línia per component: ruta, dispositiu, classe i descripció
-businfoCom -short, però amb l’adreça del bus (pci@…, usb@…, scsi@…)
-class classe, -C classeNomés una classe: cpu, memory, disk, storage, network, display, bus, system…
-json, -xml, -htmlExporta l’inventari en aquests formats
-sanitizeTreu les dades sensibles (números de sèrie, adreces IP…) per poder compartir la sortida
-numericMostra també els identificadors numèrics (PCI, USB)
-quietNo 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 less o filtra amb -C o -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.

Comandes relacionades