GNU/Linux >> Linux Esercitazione >  >> Linux

Usa lspci su Linux per vedere il tuo hardware

Quando esegui Linux su un desktop o un server, a volte devi identificare l'hardware in quel sistema. Un comando utilizzato per questo è lspci . Funziona mostrando tutti i dispositivi collegati al bus PCI. Viene fornito dal pacchetto pciutils ed è disponibile per un'ampia gamma di sistemi operativi basati su Linux e BSD.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Utilizzo di base

Le informazioni visualizzate quando un utente normale esegue lspci potrebbe essere limitato a causa delle autorizzazioni di accesso. Eseguire il comando con sudo fornisce un quadro completo.

Esecuzione di lspci da solo elenca i bus PCI e i loro dispositivi collegati. Ecco un esempio dal mio PC media center. È un sistema basato su CPU AMD Phenom, quindi ha un chipset AMD. Ha anche un controller wireless Atheros e una scheda grafica Nvidia. Tutti i dispositivi hardware sono elencati con dettagli come fornitore, nome e numero di modello:

$ sudo lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780 PCI to PCI bridge (ext gfx port 0)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 0)
00:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 1)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 3c)
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)
02:00.0 Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) (rev 01)

Risultato dettagliato

Aggiunta di un -v l'opzione aumenta la verbosità o il livello di dettaglio per ogni dispositivo. Puoi usare -vv o -vvv per quantità ancora maggiori di dettagli del dispositivo. A questo livello, lspci visualizza vari sottosistemi e indirizzi di memoria, numeri di richiesta di interruzione (IRQ) e altre funzionalità per tutti i dispositivi. L'uscita è estremamente lunga. Provalo sul tuo sistema.

Ricerca con grep

A volte vuoi restringere la tua ricerca. Ad esempio, il sito Web RPM Fusion contiene istruzioni per l'installazione dei driver grafici Nvidia. Iniziano con l'identificazione della scheda grafica utilizzando il grep comando. Questo è ciò che ottengo sul mio laptop:

$ sudo lspci | grep -e VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
$ sudo lspci | grep -e 3D
01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce MX130] (rev a2)

Il grep i comandi sopra mostrano un dispositivo VGA sul mio PC media center ma nessun dispositivo 3D.

$ sudo lspci | grep -e VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
$ sudo lspci | grep -e 3D
$

Ricerca per ID fornitore

C'è un altro modo che non richiede grep . Supponiamo di voler determinare se sono presenti altri dispositivi Nvidia. È necessario sapere un po' di più. Uso il -nn opzione per visualizzare i numeri ID del fornitore e del dispositivo. Sul mio PC Media Center, questa opzione mostra la mia scheda VGA, l'ID fornitore e l'ID dispositivo:

$ sudo lspci -nn | grep -e VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)

L'insieme di parentesi con i numeri separati da due punti dopo il nome del dispositivo mostra il fornitore e l'ID del dispositivo. L'output indica che l'ID fornitore per un dispositivo prodotto da Nvidia Corporation è 10de .

Il -d l'opzione visualizza tutti i dispositivi di un fornitore, dispositivo o ID classe specificato. Ecco tutti i dispositivi Nvidia nel mio sistema (mantenendo il -nn per includere gli ID fornitore):

$ sudo lspci -nn -d 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GK107 HDMI Audio Controller [10de:0e1b] (rev a1)

Dall'output, puoi vedere che oltre a una scheda grafica, ho un dispositivo audio Nvidia. In realtà fanno entrambi parte della stessa Nvidia GeForce GTX 650 carta, ma questo è comunque un buon esempio.

Moduli del kernel

Insieme ai dispositivi hardware PCI, lspci può mostrare quali moduli del driver del kernel sono caricati con -k opzione. Aggiungo questa opzione al mio lspci comandi per visualizzare diverse informazioni sui miei dispositivi Nvidia.

$ sudo lspci -nn -k -d 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
 Subsystem: eVga.com. Corp. GK107 [GeForce GTX 650] [3842:2650]
 Kernel driver in use: nvidia
 Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation GK107 HDMI Audio Controller [10de:0e1b] (rev a1)
 Subsystem: eVga.com. Corp. GK107 HDMI Audio Controller [3842:2650]
 Kernel driver in use: snd_hda_intel
 Kernel modules: snd_hda_intel

Vengono visualizzate due righe aggiuntive:Driver del kernel in uso e Moduli del kernel . La seconda elenca i moduli disponibili per supportare il dispositivo.

Mantenersi aggiornati

Nuovi dispositivi e fornitori entrano costantemente nel mercato. Se vedi un dispositivo elencato come sconosciuto , il database dell'ID dispositivo PCI potrebbe non essere aggiornato. Ci sono due modi per controllare. Il -Q l'opzione utilizza il DNS per interrogare il database centrale. Questo, ovviamente, richiede connettività di rete.

$ sudo lspci -Q

Puoi anche aggiornare il tuo database PCI ID locale eseguendo il comando update-pciids .

$ sudo update-pciids
Downloaded daily snapshot dated 2021-08-22 03:15:01

Ulteriori informazioni sul tuo hardware

Naturalmente, lspci è solo uno dei tanti comandi disponibili per Linux che è utile per interrogare l'hardware e il software del tuo sistema. Scopri di più sull'hardware su Linux nel mio articolo sui dispositivi USB:riconosci più dispositivi su Linux con questo repository di ID USB.


Linux
  1. Usa il terminale Linux per navigare nel tuo computer

  2. Usa il terminale Linux per vedere quali file sono sul tuo computer

  3. Qual è il processo di disattivazione dell'hardware del server Linux?

  4. Come utilizzare OpenSSH per connettersi al tuo server Linux

  5. Trovare informazioni sull'hardware su Linux senza lspci

Usa un terminale Linux sul tuo telefono Android

Usa il desktop Fluxbox Linux come gestore di finestre

Come usare praticamente il tuo terminale Linux (quattro esempi)

Come utilizzare praticamente il tuo terminale Linux (parte 2)

Come utilizzare Red Hat Insights per mantenere i tuoi sistemi Linux

Come installare e utilizzare Docker nel tuo sistema Linux