Atunci când utilizați Linux pe un calculator personal sau pe un server, uneori trebuie să identificați componentele hardware din sistemul respectiv.
O comandă utilizată în acest scop este lspci. Aceasta funcționează prin afișarea tuturor dispozitivelor conectate la magistrala PCI. Este oferită de pachetul pciutils și este disponibilă pentru o gamă largă de sisteme de operare bazate pe Linux sau BSD.
Utilizare de bază lspci
Informațiile afișate atunci când un utilizator obșinuit rulează lspci pot fi limitate din cauza permisiunilor de acces. Rularea comenzii cu sudo oferă o persfectivă completă.
Rularea comenzi lspci de una singură afișează listele de magistrale PCI și dispozitivele atașate acestora.
Exemplu
Calculatorul este un sistem bazat pe pe un procesor AMD Phenom. Are un dispozitiv wireless Atheros și o placă grafică Nvidia. Toate dispozitivele hardware sunt afișate cu detalii, cum ar fi furnizorul, numele și numărul de model:
$ 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)
Rezultate detaliate cu lspci
Adăugarea opțiunii -v permite extinderea gradului de detalii pentru fiecare dispozitiv.
Puteți utiliza -vvv sau -vvvv pentru un nvivel și mai mare al detaliilor dispozitivelor.
La acest nivel, lspci afișează diverse subsisteme și adrese de memorie, numere de cerere de întrerupere (IRQ) și alte caracteristici pentru toate dispozitivele.
Căutare folosind grep
Uneori doriți să vă limitați căutarea. De exemplu, site-ul RPM Fusion conține instrucțiuni pentru instalarea driverelor grafice Nvidia.
Acestea încep cu identificarea plăcii grafice folosind comanda grep. În exemplul, este rezultatul folosiri comenzii lspci cu grep.
$ 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)
Comenzile grep de mai sus arată un dispozitiv VGA, dar nici un dispozitiv 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
$
Căutare după ID-ul furnizorului
Există o altă modalitate care nu necesită grep. Să prespupunem că vreau să aflu dacă sunt prezente și alte dispozitive Nvidia.
Este necesar să știm puțin mai multe informații. Folosesc opțiunea -nn pentru a afișa numerele de identificare ale furnizorului și ale dispozitivului.
Pe calculatorul din acest exemplu, această opțiune afișează placa VGA, ID-ul furnizorului și ID-ul dispozitivului:
$ sudo lspci -nn | grep -e VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
Setul de paranteze cu numere separate prin două puncte după numele dispozitivului indică furnizorul și ID-ul dispozitivului.
Rezultatul indică faptul că ID-ul furnizorului pentru un dispozitiv fabricat de Nvidia Corporation este 10de.
Opțiunea -d afișează toate dispozitivele de la un furnizor, dispozitiv sau ID de clasă specificat.
Aici sunt afișate toate dispozitivele Nvidia din calculatorul folosit ca exemplu (păstrând opțiunea -nn pentru a include ID-ul furnizzorului).
$ 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)
Din rezultatul obținut, puteți vedea că, pe lângă placa grafică, mai există un dispozitiv audio Nvidia.
De fapt, ambele fac parte din aceeași placă Nvidia GeForce GTX 650, dar, cu toate acesstea, acesta este un exemplu bun.
Căutarea modulelor nucleului cu lspci
Împreună cu dispozitivele PCI hardware, lspci poate arăta ce module de drivere pentru nucleu sunt încărcate cu opțiunea -k.
Adaug această opțiunea la comenzile lspci pentru a vizualiza mai multe informații despre dispozitivele 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
Sunt afișate două linii suplimentare: Driverul de nucleu utilizat și Modulele de nucleu. Cea de-a doua enumeră modulele disponibile pentru a oferi suport pentru dispozitiv.
Păstrarea actualizării
Noi dispozitive și furnizori apar în mod constat pe piață. Dacă vedeți un dispozitiv listat ca find necunoscut, este posibil ca baza de date PCI de identificare a dispozitivelor să fie neactualizată.
Există două modalități de verificare. Opțiune -Q utilizează DNS pentru a interoga baza de date centrală. Acest lucru necesită conectivitate la internet.
$ sudo lspci -Q
De asemenea, puteți actualiza baza de date PCI ID locală rulând comanda update-pciids.
$ sudo update-pciids
Downloaded daily snapshot dated 2021-08-22 03:15:01