Quante volte vi è capitato di avere la necessità di sapere con precisione i dettagli dell’hardware di un PC per effettuare un acquisto di un componente da aggiornare, per effettuare un intervento di assistenza su un PC non vostro oppure semplicemente per comunicarlo al vostro consulente informatico?
Come nella maggior parte dei casi, in informatica ci sono vari modi per raggiungere lo stesso scopo: in questo caso potremmo ad esempio:
-
consultare le specifiche del produttore presenti on-line.
Questo metodo può andare bene per i PC portatili mantenuti con le componenti di fabbrica, ma qualora siano state aggiornate oppure nel caso ancora più complesso di un PC desktop assemblato su misura non troveremo queste informazioni in rete. -
aprire il case del PC e controllare manualmente le componenti.
Questo metodo, più indicato per i PC desktop che per i portatili, richiede del tempo e - in alcuni casi - competenze informatiche non di base (basti pensare al caso delle memorie RAM, che in assenza di serigrafie o etichette che ne indicano la versione, sono riconoscibili solo dalla piedinatura oppure controllando in rete i model number). -
fare in modo che sia il PC stesso, possibilmente tramite un singolo comando, ad elencare tutto l’hardware presente in dettaglio.
Questo è il metodo preferibile perché non è soggetto ad errori e non richiede particolari conoscenze pregresse in campo informatico relativo alle componenti.
Per elencare le caratteristiche hardware di PC con installato il sistema operativo Windows sono presenti varie utilities scaricabili dalla rete, ma poiché queste informazioni tipicamente serviranno in casi non frequenti è possibile evitare di installare ulteriori software sul PC e procedere tramite una distribuzione live di Linux, in modo che il sistema sottostante non venga influenzato da questa verifica.
Se poi il PC ha già una distribuzione Linux come sistema operativo (sia come unico sistema operativo che – ad esempio – in dual boot con Windows) allora tutti gli strumenti necessari all’analisi dell’hardware sono già presenti all’interno del sistema.
Invece di ricercare in rete la manualistica o aprire il PC per analizzarne le componenti facciamole elencare direttamente dal sistema operativo!
dmidecode e lshw
I due software che utilizzeremo per verificare la dotazione hardware di un PC sono eseguibili direttamente da terminale e si tratta di dmidecode
e di lshw
.
Entrambi riportano un elenco (eventualmente filtrabile) delle caratteristiche hardware del sistema su cui vengono eseguiti ma - come vedremo - lshw
ha un dettaglio maggiore e soprattutto ci permetterà anche di esportare i file in formato HTML per poterli vedere più agevolmente tramite il browser.
Per poter funzionare al meglio, è consigliabile eseguire entrambi i comandi come amministratori, per avere accesso completo all’analisi del PC.
dmidecode
Utilizzando dmidecode
verranno mostrati in formato human readable i dati contenuti nella tabella dei contenuti DMI (Desktop Management Interface), descrivendo quanti più dettagli del sistema possibile.
Nel suo utilizzo più semplice, sarà sufficiente lanciare il comando:
sudo dmidecode
per avviare l’analisi ed ottenere a schermo il dettaglio della configurazione hardware del sistema.
Questo comando produrrà un elenco molto esteso e potrebbe essere scomodo da consultare direttamente nell’output del terminale, pertanto è possibile utilizzare uno dei due sistemi elencati di seguito per poter leggere in maniera più agevole il risultato:
sudo dmidecode | less
dmidecode
al comando less
che ne permetterà una lettura più agevole
sudo dmidecode > analisi.txt
dmidecode
in un file (chiamato analisi.txt
) da aprire con un editor di testo

Output a schermo di dmidecode (in macchina virtuale)
Questo comando riporta un elenco molto esteso di informazioni di cui possiamo aver bisogno, ma in alcuni casi potrebbero essere addirittura più dettagliate di quanto ci è necessario perché – magari – vogliamo conoscere solamente i dettagli di uno specifico componente.
In questo caso è possibile utilizzare il flag -s
seguito da una stringa che indica il tipo di dato che vogliamo ottenere, come ad esempio:
sudo dmidecode -s processor-family
per ottenere il dato relativo alla famiglia del processore; in questo caso, trattandosi di un output molto più ridotto, non è necessario passarlo al comando less
o salvarlo sotto forma di file di testo da aprire successivamente con un editor.
Per la lista completa delle stringhe che indicano le componenti su cui è possibile filtrare l’output è possibile consultare la pagina del manuale del comando con
man dmidecode
oppure ottenerne l’elenco semplicemente usando il flag senza specificare nessuna stringa:
dmidecode -s
Oltre al flag -s
per filtrare per singolo componente è disponibile anche il flag -t
che permette di filtrare per tipo di risorsa nel formato SMBIOS; come valore può essere indicato il numero che identifica un particolare tipo (l’elenco completo è presente nella pagina del manuale) oppure una stringa che ne identifica una sezione (come ad esempio bios che raggruppa i tipi 0 e 13 che indicano rispettivamente i dettagli del BIOS e la lingua impostata (sempre all’interno del BIOS).

dmidecode con flag per ottenere il nome del sistema su cui è eseguito
Una cosa che appare subito evidente controllando l’output di dmidecode
è che non tutte le informazioni sull’hardware che potrebbero interessarci sono presenti. Nel caso di una scheda video esterna, ad esempio, non avremo alcuna informazione in merito alla GPU e dovremmo ricorrere ad un altro comando, ovvero lspci
per ottenere le informazioni che ci mancano ed una cosa analoga accade se vogliamo conoscere la sigla che identifica il disco rigido presente nel sistema, per il quale dovremmo ricorrere al comando lsscsi
.
lshw
Per raggruppare tutte le informazioni possibili e dettagliate riguardanti le componenti interne del PC in un singolo comando è possibile utilizzare lshw
.
Dal nome del comando è abbastanza semplice intuire cosa otterremo eseguendolo, ovvero una lista (ls) di tutto l’hardware (hw) presente nel sistema in cui il comando viene lanciato.
Nella sua forma più semplice (e completa) il comando può essere lanciato con:
sudo lshw
Questo produrrà – dopo pochi secondi – un output a schermo con i dettagli di tutte le componenti hardware del sistema. Anche in questo caso, qualora ci si trovi in un sistema non dotato di interfaccia grafica potrebbe risultare utile passare l’output di lshw
in pipe al comando less
in modo da agevolarne la lettura, oppure ridirigere l’output verso un file di testo da aprire successivamente con un editor.
sudo lshw | less
lshw
al comando less
che ne permetterà una lettura più agevole
sudo lshw > analisi.txt
lshw
in un file (chiamato analisi.txt
) da aprire con un editor di testo

Parte iniziale dell'output di lshw
A differenza di dmidecode
, con lshw
abbiamo anche una ulteriore e comoda possibilità, ovvero quella di far generare un output in formato HTML che potrà essere visualizzato in seguito tramite un browser.
Per generare un risultato in formato HTML invece che in testo semplice è sufficiente aggiungere il flag -html
al comando, ricordandosi però di ridirigere l’output in un file su disco, altrimenti lo stesso sarà mostrato sul terminale, rendendo molto difficile la lettura del risultato.
sudo lshw -html > analisi.html
Aprendo il file con un browser sarà possibile trovare le stesse informazioni che si hanno anche nel caso dell’output in semplice testo, ma in questo caso le sezioni saranno evidenziate graficamente con box colorati, ognuna per ogni componente (o proprietà) dell’hardware del sistema.

Informazioni sul sistema in formato HTML ottenute con lshw e visualizzate con Firefox

Informazioni su RAM e processore
Come accade anche con il comando dmidecode
, anche con lshw
è possibile sfruttare alcuni flag per limitare l’output solamente alle componenti di cui ci interessa conoscere i dettagli.
Se volessimo – ad esempio – ottenere i dettagli sulla scheda video (che ricordiamo non essere disponibili tramite dmidecode
) potremmo lanciare il comando nel seguente modo:
sudo lshw -class display
Tutte le classi disponibili sono recuperabili lanciando il comando con il flag che permette di ottenere una tabella sintetica delle componenti, ovvero:
sudo lshw -short

Output di lshw in formato ridotto (nella terza colonna è possibile notare l'elenco di tutte le classi utilizzabili con il flag -class)
Infine, sebbene non presente di default all’interno delle distribuzioni linux, è disponibile anche una interfaccia GTK per lshw
installabile semplicemente con:
sudo apt install lshw-gtk

Interfaccia grafica GTK per lshw