Sådan kontrolleres hvilken GPU der er installeret på Linux

Har du brug for at identificere Graphics Processing Unit (GPU) på en Linux-computer? Her er hvordan du kan identificere grafikkortet fra kommandolinjen og i GNOME.

Det første skridt

Du har sikkert været der. Du er udnævnt til at yde støtte til en ikke-teknologisk slægtning eller en arbejdskollega, og noget siger dig, at det ikke kommer til at gå smertefrit. Alligevel melder du dig ind! Du finder hurtigt ud af, at problemet sandsynligvis er et skærmdriverproblem. Hej, det er måske ikke så slemt alligevel! Men så bliver dit kortvarige flimmer af håb slukket, når du spørger: “Hvilken slags grafikkort har du?”

Deer-in-headlights-udtrykket, du modtager som svar, taler meget. For at støtte noget skal du vide, hvad det er. Så hvordan identificerer du grafikkortet i en Linux-computer?

Lad os antage det værst tænkelige scenarie og sige, at driverne til grafikkortet aldrig blev installeret, så du kan ikke engang se på dem for at få et fingerpeg. Det er lige meget! Du kan løse denne gåde enten fra kommandolinjen eller gennem grafisk brugerflade (GUI).

lspci og PCI ID-databasen

Det Peripheral Component Interconnect (PCI)-standard er en almindelig protokol, du kan bruge til at tale med interne ydre enheder, såsom grafikkort. Det PCI ID-lager vedligeholder en database med alle kendte ID’er for PCI-enheder. Det betyder, at hvis du kender nogle oplysninger om enheden, kan du slå dem op.

Du kan bruge kommandoen lspci til at liste PCI-enheder installeret på en Linux-computer, samt nogle oplysninger om dem.

Ville det ikke være fantastisk, hvis vi kunne binde PCI-databasen og lspci-kommandoen sammen? Nå, faktisk er det præcis, hvad der sker, når du kører kommandoen lspci. Den kontrollerer en lokal kopi af PCI-databasen for at identificere de PCI-enheder, den registrerer. Før vi starter, er det klogt at opdatere den lokale kopi af PCI-databasen.

Indtast kommandoen update-pciids at gøre netop det:

sudo update-pciids

Det

Den seneste databaseversion er hentet til os, og vi kan nu bruge kommandoen lspci. Der vil være en masse output, så vi overfører det til mindre. Indstillingen -v (verbose) fortæller lscpi at give os så meget information, som den kan. Vi bruger sudo for at sikre, at oplysningerne er så detaljerede som muligt.

  Sådan bruger du journalctl til at læse Linux-systemlogfiler

Vi skriver vores kommando som følger:

sudo lspci -v | less

Det

Resultaterne vises i mindre. Hvis du trykker på skråstregen frem (/), aktiverer du mindre søgefunktionen.

Skriv “VGA” med store bogstaver og tryk på Enter.

Type

færre søgninger efter strengen “VGA”, og den viser dig de første resultater, den finder. Fra det tidspunkt kan du scrolle eller side frem for at se, hvor mange grafikkort lspci fandt.

Søgeresultater for

Til denne artikel udførte vi vores forskning i en række forskellige Linux-distributioner, der kører i VirtualBox virtuelle maskiner. Virtuelle maskiner har selvfølgelig virtuelle grafikkort.

Så du kan se et eksempel på resultater fra den virkelige verden, her er outputtet fra værtscomputeren (fysisk):

26:00.0 VGA compatible controller: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd GP108 [GeForce GT 1030]
Flags: bus master, fast devsel, latency 0, IRQ 97
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f0000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Legacy Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [250] Latency Tolerance Reporting
Capabilities: [128] Power Budgeting >
Capabilities: [420] Advanced Error Reporting
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 >
Capabilities: [900] Secondary PCI Express >
Kernel driver in use: nouveau
Kernel modules: nouveau

Det gav os en masse god information med det samme!

Kortet er en NVIDIA Corporation GP108 [GeForce GT 1030], og efter et par sekunder med en søgemaskine fandt vi NVIDIA-teknologiside for den enhed. Det “[VGA controller]” tekst i slutningen af ​​den første linje angiver, at dette er det “operative” grafikkort. Det er nyttig information, når mere end ét kort er installeret på en computer.

lshw kommandoen

Du kan også bruge kommandoen lshw til at vise den hardware, der er installeret på en Linux-computer. Det rapporterer også en række forskellige typer – ikke kun PCI-hardware.

For at bede den rapportere om de grafikkort, den finder, bruger vi muligheden -C (klasse) og videregiver “display”-modifikatoren. Valgmuligheden -numeric tvinger lshw til at angive enhedernes numeriske ID’er, såvel som deres navne.

Indtast følgende:

sudo lshw -numeric -C display

Det

Her er hvad kommandoen fandt på den fysiske computer:

 *-display 
   description: VGA compatible controller
   product: GP108 [GeForce GT 1030] [10DE:1D01]
   vendor: NVIDIA Corporation [10DE]
   physical id: 0
   bus info: [email protected]:26:00.0
   version: a1
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
   configuration: driver=nouveau latency=0
   resources: irq:97 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:e000(size=128) memory:c0000-dffff

Opmuntrende nok fandt begge det samme kort!

  Sådan bruges Wireshark-filtre på Linux

Det [10DE:1D01] identifikatorer repræsenterer producenten (10DE) og modellen (1D01). For at finde mærket og modellen med det samme, kan du skrive “grafikkort 10de:1d01” i en søgemaskine.

Glxinfo-kommandoen

Glxinfo-kommandoen er endnu en metode, du kan bruge. Det giver dig information fra OpenGL-udvidelse til X Windows-systemet. Du kan derefter søge i nogle af disse oplysninger for at finde ud af, hvilken slags grafikkort der er installeret på en maskine.

Glxinfo-kommandoen er allerede til stede på Manjaro og Fedora, men du skal installere den på Ubuntu. For at gøre det skal du skrive følgende kommando:

sudo apt-get install mesa-utils

Det

For at røre output fra glxinfo gennem mindre og bruge -B (udskrifts-id’er), skal du skrive følgende:

glxinfo -B | less

Det

Grafikkortet er beskrevet i linjen “Enhed”.

Enhedslinjen fremhævet i outputtet fra

Dette er output fra den fysiske computer:

name of display: :1
display: :1 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: nouveau (0x10de)
Device: NV138 (0x1d01)
Version: 19.3.2
Accelerated: yes
Video memory: 1987MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.3
Max compat profile version: 4.3
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: nouveau
OpenGL renderer string: NV138
OpenGL core profile version string: 4.3 (Core Profile) Mesa 19.3.2
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.3 (Compatibility Profile) Mesa 19.3.2
OpenGL shading language version string: 4.30
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Når du skriver “NV138” i en søgemaskine, identificeres NVIDIA-grafikkortet med det samme.

Brug af GUI til at identificere grafikkortet

Hvis computeren kun er en CLI-server, skal du bruge en af ​​de teknikker, vi dækkede ovenfor. Hvis det dog har en (fungerende) GUI, er der sandsynligvis en grafisk måde, hvorpå du kan identificere grafikkortet. Faktisk er denne mulighed sandsynligvis et sted i dine Linux-skrivebordsindstillinger.

På et GNOME-skrivebord skal du åbne dialogboksen “Indstillinger”, og derefter klikke på “Detaljer” i sidebjælken. I panelet “Om” skal du se efter en “Grafik”-indgang. Dette fortæller dig, hvilken slags grafikkort der er i computeren, eller mere specifikt det grafikkort, der er i brug i øjeblikket. Din maskine har muligvis mere end én GPU.

  Sådan installeres og aktiveres Bitcoin Core Wallet på Linux

GNOME-indstillingerne

På fanen “Om” GNOME-indstillinger fra en fysisk vært får vi det samme “NV138”-kort-id, som vi så tidligere. Igen kan vi tilslutte disse oplysninger til en søgemaskine for at finde korttypen.

GNOME-indstillingerne

Grafikkort på bærbare computere

Mange bærbare computere har to grafikkort: et fra producenten af centralenhed (CPU), og en fra en almindelig GPU-udbyder.

Lad os skrive den samme lspci-kommando fra tidligere, men denne gang kører vi den på en bærbar computer:

sudo lspci -v | less

Som forventet får vi en beskrivelse af grafikkortene i maskinen:

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. 3rd Gen Core processor Graphics Controller
Flags: bus master, fast devsel, latency 0, IRQ 33
Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [a4] PCI Advanced Features
Kernel driver in use: i915
Kernel modules: i915

01:00.0 VGA compatible controller: NVIDIA Corporation GF119M [GeForce 610M] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. GF119M [GeForce 610M]
Flags: bus master, fast devsel, latency 0, IRQ 34
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=128M]
Memory at e8000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at f7000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information: Len=14 >
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting >
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 >
Kernel driver in use: nouveau
Kernel modules: nouveau

Denne bærbare computer har både en Intel Core GPU og en NVIDIA GeForce 610M. Begge kort har dog “[VGA controller]”-streng, som normalt angiver, hvilken GPU der er i brug.

De kan ikke begge være i brug, så prøv først at få kortet fra den almindelige GPU-udbyder til at virke. Det er den, producenten af ​​bærbare computere betragter som standard og inkluderer i hardwarespecifikationerne for maskinen.

En af de teknikker, vi har dækket her, vil helt sikkert fungere for dig! Når du ved, hvilken type grafikkort en computer eller bærbar computer har, kan du vælge den relevante grafikdriver.