Linuxkjernen har flere drivere for alle typer maskinvare, inkludert GPU-er, og de fleste drivere med åpen kildekode finnes i kjernen. Dette inkluderer AMD, i915 og Nouveau. Det finnes også andre drivere som kan være nyttige for visse brukere. Fastvare er også nødvendig for mange drivere.
Kjernealternativene nedenfor aktiverer GPU og virtuelle GPU drivere. Aktiver de du trenger, og kompiler kjernen på nytt om nødvendig.
Device Drivers ---> Graphics support ---> <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> ... [DRM] # For r300 or r600: < /*/M> ATI Radeon [DRM_RADEON] # For radeonsi: < /*/M> AMD GPU [DRM_AMDGPU] [*] Enable amdgpu support for SI parts [DRM_AMDGPU_SI] [*] Enable amdgpu support for CIK parts [DRM_AMDGPU_CIK] Display Engine Configuration ---> [*] AMD DC - Enable new display engine [DRM_AMD_DC] # For nouveau: < /*/M> Nouveau (NVIDIA) cards [DRM_NOUVEAU] [*] Use GSP firmware for Turing/Ampere (needs firmware installed) ... [DRM_NOUVEAU_GSP_DEFAULT] # For i915, crocus, or iris: < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics [DRM_I915] # For iris: < /*/M> Intel Xe2 Graphics [DRM_XE] [*] Enable display support [DRM_XE_DISPLAY] (*) Force probe xe for selected Intel hardware IDs ... [DRM_XE_FORCE_PROBE] # For LLVMPipe or Softpipe: < /*> Virtual GEM provider [DRM_VGEM] # For svga: < /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX]
Det finnes kommentarer til alternativene ovenfor, som samsvarer med Mesas Gallium3D dri drivernavn.
For GPU-er som støttes av Iris Gallium3D driveren, med
CONFIG_DRM_I915
aktivert og
CONFIG_DRM_XE_FORCE_PROBE
satt til
strengen *
, i915 driveren vil bli
brukt hvis den støtter GPU-en, og Xe driveren vil bli brukt hvis
den støtter GPU-en, men i915-driveren ikke gjør det. Hvis du er
sikker på at GPU-en din støttes av i915 driveren, kan du
deaktivere Xe driveren for å spare byggetid. Hvis GPU-en din
støttes av begge driverne og du vil bruke Xe driveren, kan du
deaktivere i915 driveren, eller få i915 driveren til å nekte
GPU-en din via CONFIG_DRM_I915_FORCE_PROBE
alternativet, for
eksempel å sette den til !7d55
ville
få i915 til å nekte Meteor Lake integrert GPU (hvorav PCI ID er
8086:7d55
), som overlater den til Xe
driveren.
Å velge CONFIG_DRM_RADEON
,
CONFIG_DRM_AMDGPU
, CONFIG_DRM_NOUVEAU
, CONFIG_DRM_I915
, eller CONFIG_DRM_XE
til «y
» anbefales ikke. Hvis det er
tilfelle, må all nødvendig fastvare bygges som en del av
kjernebildet eller initramfs for at driveren skal fungere riktig.
Underpostene under CONFIG_DRM_AMDGPU
brukes for å sikre at AMDGPU kjernedriveren støtter alle GPU-er
som bruker radeonsi
driveren. De er
ikke nødvendige hvis du ikke trenger CONFIG_DRM_AMDGPU
. De kan være unødvendige for
enkelte GPU-modeller.
For LLVMPipe
eller LLVMPipe
, CONFIG_DRM_VGEM
er nødvendig, ellers vil Xorg
klienter sannsynligvis mislykkes med en kryptisk melding
Error: couldn't get an RGB,
Double-buffered visual
. Selv om dette kan kompileres som
en modul, er det mer praktisk å bare bygge det inn i kjernen,
ellers vil ikke modulen lastes inn automatisk.
ATI Radeon GPU-er krever fastvare for å kunne bruke KMS (kernel modesetting – det foretrukne alternativet) samt for Xorg. Fastvaren er i linux-firmware.
For å spare plass anbefales det å bruke pciutils-3.14.0 og sin pakket binærfil lspci for å identifisere hva VGA kontrolleren er. Etter at du har funnet ut det, sjekk RadeonFeature siden på Xorg wikien Decoder ring for engineering vs marketing names for å identifisere familien (du må kanskje vite dette for Xorg driveren – Southern Islands og Sea Islands bruker Radeonsi driveren) og den spesifikke modellen.
Nå som du vet hvilken kontroller du bruker, se på Radeon Firmware side på Gentoo wikien som har en tabell som viser de nødvendige firmware-blobene for de forskjellige brikkesettene. Merk at Southern Islands og Sea Islands brikkene bruker forskjellig firmware for kjerne 3.17 og senere sammenlignet med tidligere kjerner. Identifiser og last ned de nødvendige blobene og deretter installer dem:
mkdir -pv /usr/lib/firmware/radeon && cp -v <YOUR_BLOBS> /usr/lib/firmware/radeon
AMDGPU enheter krever generelt fastvare for å kunne brukes. Installer pciutils-3.14.0 for å sjekke modellnavnet på kortet ditt, og se etter «VGA kompatibel kontroller:». Hvis du har en APU (Accelerated Processing Unit, dvs. CPU og video på samme brikke) vil det sannsynligvis fortelle deg navnet. Hvis du har et separat amdgpu grafikkkort, må du søke for å finne ut hvilket navn det bruker (f.eks. et kort beskrevet som Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] trenger Polaris11 fastvare. Det finnes en tabell over «Familie, brikkesettnavn, produktnavn og fastvare» på slutten av kjerneseksjonene i AMDGPU siden på Gentoo wikien.
Når du har identifisert fastvarenavnet, installerer du alle relevante filer for det. For eksempel har Baffin kortet nevnt ovenfor 21 forskjellige polaris11* filer, APU-er som Renoir og Picasso har minst 12 filer og kan få flere i fremtidige oppdateringer (f.eks. har Raven APU-en nå en trettende fil, raven_ta.bin).
mkdir -pv /usr/lib/firmware/amdgpu && cp -v <YOUR_BLOBS> /usr/lib/firmware/amdgpu
Hvis diskplass ikke er et problem, kan du installere alle de nåværende amdgpu fastvarefilene og ikke bekymre deg for nøyaktig hvilket brikkesett som er installert.
Intels integrerte GPU-er fra Skylake og utover kan bruke fastvare for GuC (grafikkmikrokontrolleren), og også for HuC (HEVC/H265 mikrokontroller som avlaster til GPU-en) og DMC (skjermmikrokontroller) for å gi ytterligere lavstrøms tilstander. GuC og HuC har hatt en varierende historikk i kjernen, og oppdatert fastvare kan være deaktivert som standard, avhengig av kjerneversjonen din. Ytterligere detaljer finner du på https://01.org/linuxgraphics/downloads/firmware/ og https://wiki.archlinux.org/index.php/intel_graphics.
Noen NVIDIA GPU-er fra Kepler og utover, inkludert RTX og GTX 9xx
serien og utover, krever firmware signert av NVIDIA for å
fungere. NVIDIA har nå gitt ut firmware opp til Blackwell (50xx)
til
linux-firmware. Les the CodeNames
page of the Nouveau wiki for å finne ut kodenavnet på NVIDIA
GPU-en din (for eksempel kodenavnet til GeForce RTX 5080 er
GB203). Mappen for fastvarefilene du trenger heter som et
resultat av konverteringen av kodenavnet til små bokstaver
(gb203
(for eksempelet). Mappen
(eller noe av innholdet) kan faktisk være en symbollenke til en
annen mappe (eller noen filer i en annen mappe).
WHENCE
filen i linux-firmware
mappen dokumenterer alle
fastvarefilene og potensielle symbolske lenker. Når du har funnet
det du trenger, slå det opp i WHENCE
og lag de nødvendige symbolske lenkene.
Hvis du ikke finner GPU-en din oppført i WHENCE
, betyr det at GPU-en din enten ikke
trenger fastvare, eller at fastvaren ikke har blitt utgitt ennå.
Hvis du ikke vil bry deg og heller vil installere all fastvaren
og symbolske lenker, følg instruksjonene nedenfor for å
installere den nyere fastvaren automatisk og riktig:
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git && cd linux-firmware && mkdir -pv /usr/lib/firmware/nvidia && mkdir -pv DESTDIR/usr/lib/firmware && sed -i 's@^destdir=$@destdir=DESTDIR/usr/lib/firmware@' copy-firmware.sh && sh copy-firmware.sh && cp -vr DESTDIR/usr/lib/firmware/nvidia/* /usr/lib/firmware/nvidia && rm -rf DESTDIR
For NVIDIA GPU-er fra Tesla til Kepler krever Nouveau driveren noe ekstra fastvare for å støtte akselerasjon av videodekoding. Disse fastvarefilene er ikke utgitt av NVIDIA, men de kan hentes ut fra NVIDIA kjørefilen:
wget https://anduin.linuxfromscratch.org/BLFS/nvidia-firmware/extract_firmware.py && wget https://us.download.nvidia.com/XFree86/Linux-x86/340.32/NVIDIA-Linux-x86-340.32.run && sh NVIDIA-Linux-x86-340.32.run --extract-only && python3 extract_firmware.py && mkdir -p /usr/lib/firmware/nouveau && cp -d nv* vuc-* /usr/lib/firmware/nouveau/