Hur man kontrollerar vilken GPU som är installerad på Linux

By rik

Identifiera ditt grafikkort i Linux: En komplett guide

Har du någonsin befunnit dig i en situation där du behöver ta reda på vilken grafikprocessor (GPU) som sitter i en Linux-dator? Kanske ger du teknisk support till en vän eller kollega och misstänker att det är drivrutinerna till grafikkortet som spökar. Att veta exakt vilket grafikkort som används är då A och O. Men hur gör man egentligen för att ta reda på det?

Låt oss anta att du inte har tillgång till någon information om drivrutinerna, eller att de kanske till och med saknas. Ingen fara, du kan identifiera grafikkortet både via kommandoraden och genom ett grafiskt gränssnitt (GUI).

Användning av lspci och PCI-ID-databasen

PCI (Peripheral Component Interconnect) är ett standardprotokoll som används för att kommunicera med intern kringutrustning, inklusive grafikkort. Det finns en databas, PCI ID-databasen, som innehåller information om alla kända PCI-enheter. Genom att veta enhetens ID kan du slå upp dess information.

Kommandot lspci listar alla PCI-enheter som är installerade i din Linux-dator. Det som är smart är att lspci inte bara listar enheterna utan även kontrollerar en lokal kopia av PCI-databasen för att ge dig så mycket information som möjligt. Innan du kör kommandot är det bra att uppdatera den lokala databasen med kommandot:

sudo update-pciids

Nu när databasen är uppdaterad kan vi använda lspci för att se vilken grafikprocessor som finns. Eftersom det kan generera en hel del utdata använder vi alternativet ”-v” (verbose) för att få med så mycket information som möjligt, och skickar utdata till ”less” för enkel hantering. Kör följande kommando:

sudo lspci -v | less

Använd ”/VGA” för att söka efter relevanta rader och bläddra sedan genom resultaten för att se vilken eller vilka grafikkort som hittades.


Här är ett exempel på utdata från en fysisk dator:

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

Som du ser ger utdata bra information, i det här fallet är grafikkortet ett NVIDIA Corporation GP108 [GeForce GT 1030]. Texten ”[VGA controller]” indikerar det aktiva grafikkortet, vilket är användbart om det finns flera grafikkort installerade.

Använd kommandot lshw

Du kan också använda kommandot lshw för att se all installerad hårdvara i din dator. Det ger liknande information som lspci men med fler detaljer.

För att filtrera ut information om grafikkort används -C (klass) följt av ”display”. Vi använder även alternativet -numeric för att få numeriska ID:n, och kör följande kommando:

sudo lshw -numeric -C display

Här är utdata från en dator:

 *-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

Här ser vi samma grafikkort som i förra exemplet. De numeriska identifierarna [10DE:1D01] kan användas för att söka efter information om enheten online.

Kommandot glxinfo

Ett annat sätt att få reda på vilken grafikkort du har är med glxinfo-kommandot, som ger information om OpenGL-tillägg för X Windows-systemet. glxinfo är normalt sett inte installerat men kan installeras med:

sudo apt-get install mesa-utils

För att använda glxinfo och visa enhetens information i mindre skriver vi:

glxinfo -B | less

Raden ”Device” visar information om grafikkortet.

Här är utdata från den fysiska datorn:

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

Även här ser vi samma identifierare NV138 som kan användas för att hitta information om enheten.

Använda det grafiska gränssnittet (GUI)

Om du använder ett GUI finns det oftast ett grafiskt alternativ för att se information om grafikkortet. I GNOME går du till ”Inställningar”, klickar på ”Detaljer” och letar efter ”Grafik”. Här visas information om det aktiva grafikkortet. Det är viktigt att veta att vissa datorer kan ha fler än ett grafikkort.

I GNOME-inställningar på en fysisk värd ser vi samma ”NV138”-ID som tidigare, vilket kan användas för att ta reda på kortets typ.

Grafikkort i bärbara datorer

Många bärbara datorer har två grafikkort, ett integrerat från CPU-tillverkaren och ett dedikerat grafikkort. Om vi kör samma lspci-kommando på en bärbar dator får vi liknande utdata:

sudo lspci -v | less

Resultaten kommer visa information om båda grafikkorten.

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

Här ser vi att datorn har både ett Intel Core GPU och ett NVIDIA GeForce 610M. Båda korten har ”VGA controller” vilket kan indikera vilket som används.

Det är inte troligt att båda korten används samtidigt, och det dedikerade kortet från en GPU-tillverkare är det som oftast används. Det är alltså den infon du ska leta efter om du behöver veta grafikkortets modell.

Med hjälp av dessa metoder kan du identifiera vilket grafikkort som finns i din dator. Denna information kan sedan användas för att ladda ner rätt drivrutiner.