GPU Kjernealternativer og Fastvare

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.

Kjernekonfigurasjon

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]
[Notat]

Notat

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.

Fastvare

ATI Fastvare

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

RadeonSI Fastvare

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.

i915 Fastvare

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.

NVIDIA Fastvare

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/