## page was renamed from Hardware/Periferiche/IdentificareLePeriferiche
## page was renamed from IdentificareLePeriferiche
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
La presente guida illustra diversi metodi tramite i quali è possibile identificare l'[[https://it.wikipedia.org/wiki/Hardware|hardware]] presente nel computer e/o le periferiche ad esso collegate.
== Approfondimento: il VendorID ==
Quando si collega una periferica al computer, questa viene riconosciuta dal sistema operativo in base al «''Vendor_ID:Hardware_ID''», una coppia di numeri univoca, utile per l'identificazione dell'hardware e del relativo produttore.
Ogni produttore possiede il suo «''VendorID''», ogni periferica il suo «''Hardware_ID''» univoco. Sempre più spesso però, alcuni produttori comprano lotti di periferiche da un costruttore che poi commercializzano con il proprio marchio, senza nemmeno cambiare il «''Vendor_ID:Hardware_ID''».
Ciò pone l'acquirente davanti ad un mercato nel quale coesistono periferiche realizzate da una casa costruttrice (dunque identificate da un solo «''Vendor_ID:Hardware_ID''»), ma vendute da una miriade di piccoli rivenditori che di proprio mettono solo il marchio e da altre periferiche, in tutto e per tutto identiche fra di loro, ma con «''Vendor_ID:Hardware_ID''» differenti.
Sapendo ciò è più facile gestire le periferiche in tutti i sistemi operativi (compreso Windows), in quanto esisterà un singolo driver per tutte le periferiche uguali tra loro ma di marche diverse, pur con dati identificativi differenti.
Quello che segue è un esempio di una situazione molto comune:
||'''Marca'''|| '''Vendor_ID:Hardware_ID''' ||
|| A || AFBD:0001 ||
|| B || AFBD:0001 ||
|| C || FFDE:1000 ||
|| D || CDE0:1234 ||
|| E || AFBD:0001 ||
Tutte queste periferiche, fisicamente identiche, possono essere gestite dallo stesso driver.
Come ulteriore esempio, si consideri la scheda «!WiFi USB Wi-Fi Finder della !AllNet» il cui ID è «157E:3204». Tale scheda è perfettamente identica alla «AG-225H» prodotta dalla ZYxel il cui ID è «0586:3409».<
>
Essendo le due schede identiche, con un aggiornamento del firmware rilasciato dalla ZYxel è possibile fare l'aggiornamento anche alla scheda della !AllNet.
{{{#!wiki note
Può accadere che una periferica non venga riconosciuta. Ciò potrebbe essere dovuto al fatto che la periferica sia nuova e non sia ancora supportata dal kernel in uso, oppure che questa sia stata disabilitata nel [[http://it.wikipedia.org/wiki/BIOS|BIOS]] del PC. In quest'ultimo caso caricare le impostazioni di default del BIOS.}}}
= Strumenti con interfaccia grafica =
{{{#!wiki tip
Solitamente informazioni più dettagliate sono disponibili tramite gli strumenti più avanzati [[#riga_di_comando|a riga di comando]].}}}
Per Ubuntu sono disponibili diversi programmi dotati di interfaccia grafica per visualizzare informazioni sull'hardware presente nel computer.
Di seguito vengono elencati i relativi pacchetti che è possibile [[AmministrazioneSistema/InstallareProgrammi|installare]], disponibili nei [[Repository|repository ufficiali]]:
* [[apt://lshw-gtk | lshw-gtk]] (interfaccia grafica di '''[[#lshw|lshw]]''')
* [[apt://hardinfo | hardinfo]]
* [[apt://cpu-x | cpu-x]]
* [[apt://kinfocenter| kinfocenter]] (strumento dell'ambiente grafico [[AmbienteGrafico/Kde|KDE]])
* [[apt://sysinfo | sysinfo]] (solo fino alla release 18.04 LTS)
Si elencano in questa sede anche programmi di terze parti (consultare le documentazioni dei singoli progetti per le procedure d'installazione e per ulteriori informazioni):
* '''[[https://sourceforge.net/projects/cpug/|CPU-G]]'''
* '''[[http://i-nex.linux.pl/|I-Nex]]'''
<>
= Strumenti tramite riga di comando =
Di seguito sono riportati i principali comandi eseguibili via [[AmministrazioneSistema/Terminale|terminale]] per ottenere informazioni sull'hardware in uso.<
>Questi comandi sono solitamente già presenti in tutte le versioni di Ubuntu e, più in generale, nelle principali distribuzioni GNU/Linux.
<>
== Periferiche PCI: lspci ==
'''lspci''' è uno strumento utile per il riconoscimento delle periferiche ''[[https://it.wikipedia.org/wiki/Peripheral_Component_Interconnect|PCI]]'' collegate al proprio computer. Per avviarlo digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
lspci
}}}
La sintassi completa del comando è:{{{
lspci [-eventuali opzioni …]
}}}
Alcune opzioni da utilizzare con il comando '''lspci''':
||'''Opzione''' ||<:>'''Risultato''' ||
||<:>'''-k'''||<:> mostra i kernel driver di ciascun dispositivo||
||<:>'''-d []:[]'''||<:> mostra solo dispositivi specificati con i numeri in esadecimale per vendor e device||
||<:>'''-nn'''||<:> mostra gli identificativi testuali e numerici ||
||<:>'''-t'''||<:> mostra l'output con uno schema ad albero ||
||<:>'''-v'''||<:> incrementa la descrizione in uscita ||
Alcuni esempi di uso del comando '''lspci''':
* Mostrare una lista di tutti i dispositivi con i rispettivi kernel driver:{{{
lspci -k
}}}
* Mostrare una lista di tutti i dispositivi con gli identificativi testuali e numerici:{{{
lspci -nn
}}}
* Mostrare nel dettaglio il dispositivo selezionato:{{{
lspci -vd vendor:device
}}}
* Mostrare più dettagliatamente il dispositivo selezionato:{{{
lspci -vvd vendor:device
}}}
* Usato in combinazione col comando '''grep''' per filtrare uno specifico dispositivo:{{{
lspci -nn | grep -i `nomedispositivo`
}}}
Fra i nomi dei dispositivi più comuni si ricordano ''network'', ''audio'', ''display'', spesso abbreviati in ''net'', ''aud'' e ''dis''.
== Periferiche PCMCIA: lspcmcia ==
'''lspcmcia''' è uno strumento finalizzato al riconoscimento delle periferiche ''[[https://it.wikipedia.org/wiki/PC_Card|pcmcia]]''. È un comando utile soprattutto per i vecchi computer. Per avviarlo digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
lspcmcia
}}}
<>
== Periferiche USB: lsusb ==
'''lsusb''' è uno strumento utile per il riconoscimento delle periferiche ''[[https://it.wikipedia.org/wiki/USB|USB]]'' collegate al proprio computer. Per avviarlo digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
lsusb
}}}
Un esempio di output di '''lsusb''' è il seguente:{{{
Bus 002 Device 003: ID 067b:3507 Prolific Technology, Inc. PL3507 ATAPI6 Bridge
Bus 002 Device 002: ID 157e:3204
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
}}}
La sintassi completa del comando è la seguente:{{{
lsusb [-eventuali opzioni …]
}}}
Alcune delle opzioni disponibili con il comando '''lsusb''':
||'''Opzione''' ||<:>'''Risultato''' ||
||<:>'''-d vendor:[product]'''||<:> mostra solo dispositivi con i specifici numeri in esadecimale per ID||
||<:>'''-s [[bus]:][devnum]'''||<:> mostra solo dispositivi specificati con i numeri in decimale per bus e device||
||<:>'''-t'''||<:> mostra i dispositivi in uno schema ad albero ||
||<:>'''-v'''||<:> incrementa la descrizione in uscita ||
* Mostrare uno specifico dispositivo tramite numeri bus e device:{{{
lsusb -d 067b:3507
}}}
Risultato:{{{
Bus 002 Device 003: ID 067b:3507 Prolific Technology, Inc. PL3507 ATAPI6 Bridge
}}}
* Mostrare uno specifico dispositivo tramite numeri device e bus:{{{
lsusb -s 002:003
}}}
Risultato:{{{
Bus 002 Device 003: ID 067b:3507 Prolific Technology, Inc. PL3507 ATAPI6 Bridge
}}}
* Mostrare nel dettaglio il dispositivo selezionato:{{{
lsusb -vs 002:003
}}}
* Mostrare i dispositivi in ordine gerarchico:{{{
lsusb -t
}}}
Risultato:{{{
/: Bus 02.Port 1: Dev 2, Class=root_hub, Driver=ehci-pci/4p, 480M
|__ Port : Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port : Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
}}}
Nel caso nell'output non appaia un dispositivo, o venga mostrato con dati incompleti, provare ad aggiornare il database dei dispositivi '''USB''' con il comando:{{{
sudo update-usbids
}}}
In alcuni casi potrebbe essere utile consultare il [[AmministrazioneSistema/LogDiSistema#kernelring|kernel ring buffer]] (tramite comando il '''dmesg'''), in modo da tracciare nel log gli eventi relativi all'inserimento della periferica.
Infine potrebbe anche essere utile visualizzare le informazioni estese dei dispositivi con il comando:{{{
usb-devices
}}}
== Periferiche wireless: iwconfig ==
Lo strumento '''iwconfig''' serve per identificare periferiche di rete ''wireless''.<
>
Per accertarsi che la propria scheda !WiFi sia stata correttamente rilevata, digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
iwconfig
}}}
Qualora le periferiche rilevate non abbiano estensione wireless, l'output del comando sarà simile al seguente:{{{
lo no wireless extensions.
eth0 no wireless extensions.
}}}
Ciò significa che la propria scheda non è stata rilevata o necessita dell'[[Hardware/AbilitareDriverProprietari| abilitazione di driver proprietari]]. In caso di ulteriore mancato riconoscimento, consultare [[Hardware/DispositiviSenzaFili#Wireless|questa pagina]].
Ulteriori informazioni sul dispositivo wireless possono essere ricavate tramite gli strumenti '''[[#lspci|lspci]]''' e '''[[#lshw|lshw]]'''.
== Monitor: xrandr ==
Il comando '''xrandr''' è uno strumento utile per il riconoscimento del monitor integrato e/o connesso al proprio computer.
La sintassi del comando è la seguente:{{{
xrandr [-opzioni]
}}}
Alcuni esempi di uso del comando '''xrandr''':
* Mostrare le informazioni base:{{{
xrandr --query
}}}
* Mostrare le informazioni estese:{{{
xrandr --verbose
}}}
== BIOS: dmidecode ==
'''dmidecode''' è un programma che permette di visualizzare le informazioni relative al computer ricavabili dal ''[[https://it.wikipedia.org/wiki/BIOS|BIOS]]''. Per informazioni sul suo utilizzo consultare [[Hardware/Periferiche/Dmidecode|questa guida]].
== CPU: cpuinfo ==
Le informazioni relative alla ''[[https://it.wikipedia.org/wiki/CPU|CPU]]'' del computer (detta comunemente "processore") sono presenti nel file `/proc/cpuinfo`. Per stampare a video queste informazioni, digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
cat /proc/cpuinfo
}}}
Se nell'output del comando è presente la dicitura `lm` (long mode), si è in possesso di una CPU a [[Hardware/Architettura64Bit|64bit]].<
>
Per ottenere altre informazioni importanti sulla CPU tramite i ''flag'' (ad esempio quelle relative al supporto [[https://it.wikipedia.org/wiki/Physical_Address_Extension|PAE]]), digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
grep flags /proc/cpuinfo
}}}
Il seguente è un esempio di output per una CPU 64bit:
{{{
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
}}}
<>
== Elenco dettagliato dell'hardware: lshw ==
'''lshw''' riassume la configurazione dell'hardware presente nella propria macchina. Di ogni periferica viene riportato, tra le varie informazioni, il driver o modulo del kernel utilizzato per il suo funzionamento. Grazie a questa informazione è possibile stabilire se il gestore delle periferiche ha assegnato ad esse il driver corretto.
{{{#!wiki note
'''lshw''' non è in grado di rilevare le periferiche firewire. A tal fine utilizzare '''[[AmministrazioneSistema/LogDiSistema#kernelring|dmesg]]'''.}}}
Per un utilizzo di base del programma, digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
lshw
}}}
La sintassi è la seguente (il comando richiede i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] per ottenere informazioni complete):{{{
sudo lshw [- eventuali opzioni]
}}}
Nella tabella sono elencate alcune opzioni disponibili con il comando '''lshw''':
||'''Opzione''' ||<:>'''Risultato''' ||
||<:>'''-c'''||<:> mostra solo certe classi dell'hardware (cpu, multimedia, network, ecc.)||
||<:>'''-sanitize'''||<:> rimuove informazioni e dati sensibili ||
||<:>'''-numeric'''||<:> uscita ID numerica (per PCI, USB, ecc.) ||
Alcuni esempi d'uso del comando '''lshw''':
* Ottenere un breve elenco delle periferiche presenti nel sistema:{{{
sudo lshw -short
}}}
* Mostrare le caratteristiche delle CPU:{{{
sudo lshw -c cpu
}}}
* Mostrare le schede di rete senza dati sensibili:{{{
sudo lshw -sanitize -c network
}}}
* Mostrare i numeri esadecimali delle schede audio video:{{{
sudo lshw -numeric -c multimedia
}}}
<>
== Hardware e sistema: inxi ==
Lo strumento '''inxi''' permette di reperire rapidamente informazioni sia sull'hardware (CPU, RAM, dischi rigidi ecc.) sia sul sistema installato (kernel, server grafico, Desktop, repository ecc.). Si rivela molto utile pertanto per le richieste di aiuto nei [[https://www.ubuntu-it.org/supporto|canali di supporto]].<
> A differenza degli strumenti più comuni descritti in questa guida, '''inxi''' non si trova preinstallato in Ubuntu.
Per abilitare il programma [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://inxi|inxi]].
Per un uso di base digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
inxi
}}}
L'output sarà simile al seguente:{{{
CPU~Dual core Intel Core i7-6700HQ (-MCP-) speed~2591 MHz (max) Kernel~4.4.0-112-generic x86_64 Up~50 min Mem~1609.9/1999.8MB HDD~42.9GB(17.6% used) Procs~197 Client~Shell inxi~2.3.5
}}}
La sintassi completa del comando è:{{{
inxi [-eventuali opzioni …]
}}}
Alcune opzioni da utilizzare con il comando '''inxi''':
||'''Opzione''' ||<:>'''Risultato''' ||
||<:>'''-b'''||<:> mostra le informazioni di base sul sistema ||
||<:>'''-F'''||<:> mostra le informazioni complete sul sistema ||
||<:>'''-M'''||<:> mostra le informazioni relative a marca e modello della scheda madre ||
||<:>'''-C'''||<:> mostra le informazioni sulle CPU ||
||<:>'''-f'''||<:> mostra le informazioni sulle opzioni supportate dalla CPU||
||<:>'''-B'''||<:> mostra le informazioni relative alla batteria ||
||<:>'''-plu'''||<:> mostra le informazioni relative alle partizioni montate, comprese etichette ed UUID ||
||<:>'''-Dd'''||<:> mostra le informazioni relative al disco rigido ed al masterizzatore ||
||<:>'''-N'''||<:> mostra le informazioni sulle schede di rete ||
||<:>'''-A'''||<:> mostra le informazioni sui dispositivi audio ||
||<:>'''-G'''||<:> mostra le informazioni sulla scheda grafica ||
||<:>'''-r'''||<:> mostra le informazioni sui repository ||
||<:>'''-z'''||<:> rimuove informazioni e dati sensibili ||
||<:>'''-h'''||<:> mostra a schermo tutte le opzioni disponibili di '''inxi''' ||
<>
== Salvare in un file le informazioni sull'hardware ==
Le informazioni mostrate dai comandi precedenti sono talvolta troppo lunghe per essere agevolmente consultate nel terminale.
Pertanto può risultare utile l'uso della redirect (carattere «'''>'''») per salvare l'output di un comando in un file di testo nella propria cartella '''Home'''. Ad esempio tramite il comando:{{{
sudo lshw > profilo_hardware.txt
}}}
verrà esportato il risultato di '''lshw''' nel file di testo `profilo_hardware.txt`.
In alternativa è possibile salvare l'output in formato HTML con il comando: {{{
sudo lshw -html > profilo_hardware.html
}}}
== Reperire informazioni su una nuova periferica ==
Usando lo strumento del precedente [[#esportare|paragrafo]], è possibile ottenere informazioni su una nuova periferica collegata al computer.
0. Prima di collegare la nuova periferica, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
sudo lshw > vecchio_profilo_hardware.txt
}}}
0. Collegare la periferica e digitare il comando: {{{
sudo lshw > nuovo_profilo_hardware.txt
}}}
0. Verranno così creati i file `vecchio_profilo_hardware.txt` e `nuovo_profilo_hardware.txt`. Per evidenziare le differenze fra i due file, digitare il comando: {{{
diff vecchio_profilo_hardware.txt nuovo_profilo_hardware.txt
}}}
Verranno mostrate solo le informazioni relative alla nuova periferica appena collegata.
In alternativa si può collegare il dispositivo e digitare il comando:{{{
dmesg |tail
}}}
che mostrerà le ultime righe del comando [[AmministrazioneSistema/LogDiSistema#kernelring|dmesg]].
= Ulteriori risorse =
* [[http://en.wikipedia.org/wiki/Lspci|Articolo enciclopedico sul comando lspci]]
* [[http://pci-ids.ucw.cz/iii/|Elenco dei pci.ids]]
* [[Installazione/HardwareObsoleto|Guida sull'hardware obsoleto]]
----
CategoryHardware