Hvordan identifisere GPU-en din i Linux
Har du behov for å finne ut hvilken grafikkprosessor (GPU) som sitter i din Linux-maskin? Denne veiledningen viser deg hvordan du kan identifisere skjermkortet både via kommandolinjen og i GNOME-miljøet.
Startpunktet
Vi har alle vært der. Du skal hjelpe en venn eller kollega med et teknisk problem, og du vet at det kan bli utfordrende. Likevel, du tar utfordringen! Du innser raskt at problemet sannsynligvis skyldes skjermdriveren. Kanskje det ikke er så ille likevel? Men så forsvinner håpet når du spør: «Hva slags grafikkort har du?»
Det forvirrede blikket du får som svar sier sitt. For å yte støtte, må du vite hva det er du jobber med. Så, hvordan finner du ut hvilket grafikkort som sitter i en Linux-maskin?
La oss forutsette det verste, og anta at driverne for grafikkortet aldri ble installert, slik at du ikke engang kan sjekke der for å få ledetråder. Det spiller ingen rolle! Du kan løse dette mysteriet enten via kommandolinjen eller gjennom et grafisk brukergrensesnitt (GUI).
lspci og PCI ID-databasen
Peripheral Component Interconnect (PCI)-standarden er en vanlig protokoll for å kommunisere med internt utstyr, inkludert skjermkort. PCI ID-registeret vedlikeholder en database over alle kjente PCI-enhets-IDer. Dette betyr at dersom du har litt informasjon om enheten, kan du slå den opp.
Du kan bruke lspci
-kommandoen for å liste opp PCI-enheter som er installert på en Linux-maskin, samt få litt informasjon om dem.
Hadde det ikke vært fint om vi kunne knytte PCI-databasen og lspci
-kommandoen sammen? Faktisk er det akkurat det som skjer når du kjører lspci
-kommandoen. Den sjekker en lokal kopi av PCI-databasen for å identifisere PCI-enhetene den finner. Før vi begynner, er det lurt å oppdatere den lokale kopien av PCI-databasen.
Skriv inn kommandoen update-pciids
for å gjøre nettopp det:
sudo update-pciids
Den nyeste versjonen av databasen er nå hentet, og vi kan benytte lspci
-kommandoen. Siden det er mye utdata, bruker vi less
. Alternativet -v
(verbose) gir oss så mye informasjon som mulig. Vi bruker sudo
for å sikre at informasjonen er så detaljert som mulig.
Vi skriver kommandoen vår slik:
sudo lspci -v | less
Resultatene vises i less
. Ved å trykke på skråstrek (/), aktiverer du søkefunksjonen.
Skriv «VGA» med store bokstaver og trykk Enter.
less
søker etter strengen «VGA» og viser deg de første treffene. Derfra kan du bla fremover for å se hvor mange skjermkort lspci
fant.
For denne artikkelen gjorde vi undersøkelser på flere Linux-distribusjoner i VirtualBox virtuelle maskiner. Virtuelle maskiner har naturligvis virtuelle skjermkort.
For å vise et eksempel på resultater fra virkeligheten, er her utdata fra den fysiske maskinen (vert):
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
Dette ga oss mye nyttig informasjon!
Kortet er en NVIDIA Corporation GP108 [GeForce GT 1030], og etter et raskt søk fant vi NVIDIAs teknologiside for enheten. Teksten «[VGA controller]» på slutten av den første linjen indikerer at dette er det aktive skjermkortet. Dette er nyttig informasjon når det er mer enn ett skjermkort installert på en maskin.
lshw
-kommandoen
Du kan også bruke lshw
-kommandoen for å liste opp maskinvaren på en Linux-maskin. Den rapporterer også ulike typer enheter, ikke bare PCI-maskinvare.
For å få den til å rapportere om grafikkortene den finner, bruker vi alternativet -C
(klasse) og sender inn «display»-modifikatoren. Alternativet -numeric
tvinger lshw
til å rapportere de numeriske ID-ene i tillegg til navnene.
Skriv inn følgende:
sudo lshw -numeric -C display
Her er hva kommandoen fant på den fysiske maskinen:
*-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
Oppløftende nok fant begge det samme kortet!
Identifikatorene [10DE:1D01] representerer produsenten (10DE) og modellen (1D01). For raskt å finne merke og modell kan du skrive «grafikkort 10de:1d01» i en søkemotor.
glxinfo
-kommandoen
glxinfo
-kommandoen er en annen metode du kan bruke. Den gir informasjon fra OpenGL Extension to the X Window System. Du kan søke i denne informasjonen for å finne ut hvilket skjermkort som er installert på en maskin.
glxinfo
-kommandoen er allerede til stede på Manjaro og Fedora, men du må installere den på Ubuntu. Skriv inn denne kommandoen:
sudo apt-get install mesa-utils
For å sende utdata fra glxinfo
gjennom less
, og bruke -B
-alternativet (print IDs), skriv inn følgende:
glxinfo -B | less
Skjermkortet er beskrevet i linjen «Device».
Dette er utdataen fra den fysiske maskinen:
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 søker etter «NV138» i en søkemotor, vil NVIDIA-grafikkortet raskt identifiseres.
Identifisere grafikkortet ved hjelp av GUI
Hvis datamaskinen er en CLI-server, må du bruke en av metodene vi har gått gjennom over. Hvis den har et (fungerende) GUI, finnes det sannsynligvis en grafisk måte du kan identifisere grafikkortet på. Dette alternativet finnes som regel et sted i innstillingene for skrivebordet ditt.
På et GNOME-skrivebord åpner du dialogboksen «Innstillinger», og klikker deretter på «Detaljer» i sidepanelet. Se etter en «Grafikk»-oppføring i «Om»-panelet. Dette viser deg hvilket grafikkort som er i datamaskinen, eller mer spesifikt, hvilket grafikkort som er i bruk. Det kan hende at maskinen din har mer enn en GPU.
I «Om»-fanen i GNOME-innstillingene på en fysisk vert, får vi samme «NV138»-kort-ID som vi har sett tidligere. Igjen kan vi bruke denne informasjonen i en søkemotor for å finne ut hvilken korttype det er.
Grafikkort i bærbare datamaskiner
Mange bærbare datamaskiner har to grafikkort: ett fra produsenten av prosessor (CPU) og ett fra en dedikert GPU-leverandør.
La oss skrive den samme lspci
-kommandoen som tidligere, men denne gangen kjører vi den på en bærbar datamaskin:
sudo lspci -v | less
Som forventet får vi en beskrivelse av 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 datamaskinen har både en Intel Core GPU og en NVIDIA GeForce 610M. Begge kortene har imidlertid strengen «[VGA controller]», som vanligvis indikerer hvilken GPU som er i bruk.
De kan ikke begge være i bruk samtidig, så prøv å få kortet fra den vanlige GPU-leverandøren til å fungere først. Det er den bærbare produsenten anser som standard, og inkluderer i maskinvarespesifikasjonene.
En av metodene vi har gått gjennom her vil garantert fungere! Når du vet hva slags grafikkort en datamaskin har, kan du velge riktig grafikkdriver.