NVIDIA-580.76.05

Introduksjon til NVIDIA

NVIDIA proprietære driver inneholder fastvare, kjernedrivere, userland drivere knyttet til OpenGL, Vulkan og maskinvareakselerasjon, og tilbyr nyttige verktøy for NVIDIA kort. Hvis du ikke har et NVIDIA GPU, kan du gå til neste pakke.

Ytterligere nedlastinger

NVIDIA Avhengigheter

Påkrevd

GBM (GBM fra Mesa-25.1.8 eller Mesa-25.1.8), libglvnd-1.7.0, og Xorg Biblioteker

Anbefalt

Forberedelser til NVIDIA installasjonen

Første aktiver XFree86 DRI og Nouveau [8] støtte i kjernen og rekompilere om nødvendig.

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    <M>   Nouveau (NVIDIA) cards                                   [DRM_NOUVEAU]
    Frame buffer Devices --->
      <M>   nVidia Framebuffer Support                               [FB_NVIDIA]
      < /M> Simple framebuffer support                               [FB_SIMPLE]
[Viktig]

Viktig

Bygg disse driverne som kjernemoduler slik at de kan bli svartelistet på riktig måte.

Pakk ut NVIDIA driver runfile og naviger til den utpakkede mappen:

sh NVIDIA-Linux-x86_64-580.76.05.run -x &&
cd NVIDIA-Linux-x86_64-580.76.05

Installasjon av NVIDIA kjernemodulene

Nå må du bygge kjernemodulene for driveren. Det finnes to typer: open og proprietary. Hvis du har NVIDIA Grace Hopper eller NVIDIA Blackwell kort, må du kompilere open kjernemoduler. Hvis du har Turing, Ampere, Ada Lovelace, eller Hopper kort, anbefales det å nå bygge open kjernemoduler. Hvis du har Maxwell, Pascal, eller Volta kort, bygg proprietary kjernemoduler. Hvis du bruker både et eldre og et nyere kort, men ikke de nyeste kortene, bygg proprietary kjernemoduler.

Hvis du skal bygge åpne kjernemoduler, naviger til kernel-open mappen:

cd kernel-open

Hvis du i stedet skal bygge proprietary kjernemoduler, sett NVIDIA_KERNEL_TYPE variabelen:

export NVIDIA_KERNEL_TYPE="kernel"

Det vil bli bygget 5 eller 6 kjernemoduler. Avhengig av brukstilfellet ditt, kan du hoppe over å bygge en eller to moduler. UVM modulen (UnifiedVirtual Memory) er til bruk med CUDA. Hvis du ikke vil bruke den, eller ønsker å bruke dens funksjoner, kan du hoppe over å bygge UVM kjernemodulen. Det finnes også PeerMem modulen som er for datasentre. For spilling kan den trygt deaktiveres.

For UVM heter modulen nvidia-uvm. For PeerMem vil den bli kalt nvidia-peermem. For å hoppe over disse, legg til modulnavnene til NV_EXCLUDE_KERNEL_MODULES i make kommandoen. Variabelen bør være separert, slik som dette: NV_EXCLUDE_KERNEL_MODULES="nvidia-uvm nvidia-peermem". make kommandoen vil ha variabelen satt til ingenting. Legg til noe i den etter eget ønske.

[Notat]

Notat

Å bygge kjernemodulene i en chroot vil sannsynligvis føre til en byggefeil. Det anbefales å bygge dem når de startes opp i LFS målet. Standardvariabelen som kjernebyggesystemet bruker for å sjekke kjerneversjonen, er uname -r, som rapporterer kjerneversjonen til verten i stedet for målet. Dette fører til at byggefiler ikke kan bli funnet. Dette kan omgås ved å spesifisere KERNEL_UNAME=<x.x.x> i hver make kommando som vil overstyre kjerneversjonen som skal bygges mot og installeres til. Kjerneversjonen må allerede være bygget for at dette skal fungere. Hvis kjerneversjonen ikke har et tredje siffer, som 6.16 i stedet for 6.16.1, legg til en .0 på enden, som 6.16.0. Den skal samsvare med versjonen som finnes i /usr/lib/modules. make kommandoen spesifiserer KERNEL_UNAME=`uname -r` slik det vanligvis ville gjort med byggesystemet. Rediger det om nødvendig. ` tegn angir en kommando som returnerer en utdata når den er omgitt av tegn. Når du spesifiserer en kjerneversjon til den, fjern tegnene rundt ` tegn slik at versjonen ikke blir analysert som en kommando, som ikke returnerer noe.

Bygg nå kjernemodulene ved å kjøre følgende kommando:

make KERNEL_UNAME=`uname -r` NV_EXCLUDE_KERNEL_MODULES=
[Notat]

Notat

Du kan støte på diverse byggefeil. Dette skjer vanligvis fordi modulkoden er inkompatibel med den gjeldende kjerneversjonen. Hvis dette skjer, kan dette i de fleste tilfeller fikses ved å nedgradere kjernen. Når en ny driverutgivelse kommer, vil driveren mest sannsynlig støtte kjerneversjonen på det tidspunktet. Øverst i denne delen er den anbefalte kjerneserien som skal brukes med denne driveren nevnt for å gi en idé om hva den ideelle kjerneversjonen er å bygge mot. Kjerneversjonen som brukes for kjerneparametere og lignende i denne boken er linux-6.16.0. Per nå er det ingen uoverensstemmelser mellom alternativene.

[Viktig]

Viktig

Når du gjenoppbygger/oppgraderer kjernen, må du også installere . NVIDIA kjernemoduler på nytt.

Kjernemoduler installeres i en versjonert mappe som, når de bygges mot en annen kjerneversjon, ikke lenger vil samsvare med den oppstartede kjerneversjonen og kan ikke brukes. Videre er det et innebygd lim, så eventuelle endringer i kjernen kan ødelegge denne limen. For kjernemoduler i Linux kildetreet, kjent som førstepartsmoduler, blir de oppdatert og gjenoppbygd sammen med kjernen, slik at det ikke oppstår problemer for førstepartsmoduler. Tredjepartsmoduler blir imidlertid ikke det, og må oppdateres/gjenoppbygges.

Når du gjenoppbygger/oppgraderer kjernen mot samme NVIDIA driverversjon, trenger du bare å installere kjernemodulene på nytt. Du må også installere driverprogramvaren på nytt hvis du oppgraderer fra en tidligere driverversjon.

Nå som root bruker:

make KERNEL_UNAME=`uname -r` modules_install &&
cd ..

Installer fastvaren som root bruker:

rm -rvf /usr/lib/firmware/nvidia/[0-9]* &&
mkdir -pv /usr/lib/firmware/nvidia/580.76.05 &&
cp -v firmware/*.bin /usr/lib/firmware/nvidia/580.76.05

Installere NVIDIA driverprogramvaren

Installer installasjonsskriptet og manifestfilen for skriptet som root bruker:

mkdir -pv /usr/share/nvidia              &&
install -vm755 ../install-NVIDIA-1        \
               /usr/sbin/nvidia-install  &&
install -vm644 ../manifest-NVIDIA-1       \
               /usr/share/nvidia/manifest

Se nå hvilke alternativer som finnes og hva du vil installere ved å kjøre /sbin/nvidia-install --help.

Hvis du vil gjøre standardinstallasjonen, kan du bare kjøre følgende kommando som root bruker:

/sbin/nvidia-install
[Viktig]

Viktig

Hvis du starter opp i systemet du kjører kommandoene for, kan det å gjøre det for kommandoen ovenfor i et grafisk miljø krasje det miljøet og føre deg tilbake til en TTY. Ikke gjør det, bare kjør den fra en TTY eller i en chroot der skjermen ikke er avhengig av bibliotekene som leveres av denne driveren. Når det gjelder TTY, drives den faktisk av kjernen eller dens moduler, ikke bibliotekene. Det er derfor det er trygt å kjøre kommandoen ovenfor i en TTY.—den overskriver ikke kjernemodulene.

Installasjon av NVIDIA-Powerd

Hvis du vil ha NVIDIA-Powerd, som kan settes i dvalemodus og gå i hvilemodus, kjør følgende kommandoer som root bruker for å installere daemonen og Systemd enhetsfilene:

mkdir -pv /usr/lib/systemd/system             \
          /usr/lib/systemd/system-sleep       \
          /usr/share/dbus-1/system.d         &&
install -vm755 nvidia-powerd /usr/bin        &&
install -vm755 systemd/nvidia-sleep.sh        \
               /usr/bin                      &&
install -vm755 systemd/system-sleep/nvidia    \
               /usr/lib/systemd/system-sleep &&
cp -v systemd/system/*.service                \
      /usr/lib/systemd/system                &&
cp -v nvidia-dbus.conf                        \
      /usr/share/dbus-1/system.d             &&

cat > systemd-homed-override.conf << "EOF" &&
[Service]
Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false"
EOF
cat > systemd-suspend-override.conf << "EOF" &&
[Service]
Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"
EOF

for service in {homed,suspend,suspend-then-hibernate,hibernate,hybrid-sleep}; do
  mkdir -pv /usr/lib/systemd/system/systemd-"$service".service.d
done &&
cp -v systemd-homed-override.conf                                                       \
      /usr/lib/systemd/system/systemd-homed.service.d/10-nvidia-no-freeze-session.conf &&
for service in {suspend,suspend-then-hibernate,hibernate,hybrid-sleep}; do
  cp -v systemd-suspend-override.conf \
    /usr/lib/systemd/system/systemd-"$service".service.d/10-nvidia-no-freeze-session.conf
done

Systemd enhetene må kjøres ved oppstart. Aktiver dem som root bruker:

for service in nvidia-{resume,hibernate,suspend}; do
  systemctl enable $service
done

Konfigure NVIDIA

Konfigurasjonsfiler

/usr/lib/modprobe.d/nouveau.conf

/usr/lib/modprobe.d/nvidia_drm.conf

/usr/lib/modprobe.d/nvidia.conf

Liste over pakker med problemer

Bruk av denne driveren kan føre til kompromisser. Så langt ser disse begrenset til Wayland og vindusbehandlere. Listen nedenfor dokumenterer de kjente pakkene som har problemer med denne driveren.

  • Mutter: Kompiler denne pakken med -D wayland_eglstream=true og -D egl_device=true for å aktivere oppstart med Wayland. Sørg for at NVIDIA EGL Biblioteker er installert.

  • Xorg-Server-21.1.18: Selv om denne pakken fungerer helt fint, vil TearFree oppdateringen og konfigurasjonsfilen være ubrukelig ettersom Xorg driveren (nvidia_drv) vil bli brukt i stedet for modusinnstillingsdriveren. TearFree oppdateringen og konfigurasjonsfilen er modusinnstillingsspesifikk. Derfor må du finne en annen måte å bli kvitt skjermriving hvis det er ditt ønske. Slike rettelser kan redusere ytelsen drastisk, slik at 144 FPS kan falle til 60 FPS.

Konfigurasjonsinformasjon

Støtte for Nouveau og NVIDIAFB ble kompilert inn i kjernen for å sikre at NVIDIA kjernemodulene ble bygd på en vellykket måte. Nouveau og NVIDIAFB er imidlertid i konflikt med NVIDIA kjernemodulene, så de bør svartelistes. Videre kan det hende at andre moduler har blitt bygget som kan komme i konflikt, og som også bør deaktiveres.

Som root bruker, opprett filen /usr/lib/modprobe.d/nouveau.conf for å svarteliste Nouveau og NVIDIAFB, samt andre moduler som er i konflikt:

mkdir -pv /usr/lib/modprobe.d &&
cat > /usr/lib/modprobe.d/nouveau.conf << "EOF"
# Begin /usr/lib/modprobe.d/nouveau.conf

blacklist nouveau
blacklist nvidiafb
blacklist nova_core
blacklist nova_drm

# End /usr/lib/modprobe.d/nouveau.conf
EOF

DRM kjernemodulen bruker ikke modusinnstilling som standard, noe som er nødvendig for Wayland kompositorer. Gjør at den bruker modusinnstilling som root bruker:

cat > /usr/lib/modprobe.d/nvidia_drm.conf << "EOF"
# Begin /usr/lib/modprobe.d/nvidia_drm.conf

options nvidia_drm modeset=1

# End /usr/lib/modprobe.d/nvidia_drm.conf
EOF

Når GPU-en går i hvilemodus/dvalemodus, mister den som standard alle minnetildelinger. Du kan forhindre dette ved å angi to alternativer for NVIDIA modulen. Hvis du ikke bruker hvilemodus/dvalemodus, kan du hoppe over å lage følgende konfigurasjonsfil. Ellers, som root bruker:

cat > /usr/lib/modprobe.d/nvidia.conf << "EOF"
# Begin /usr/lib/modprobe.d/nvidia.conf

options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/var/tmp

# End /usr/lib/modprobe.d/nvidia.conf
EOF

Denne driveren installerer ikke DRI [9] drivere eller driverstubber. På samme måte installerer den ikke en pkgconf fil som sier hvor du finner de tilknyttede filene. Filene er ikke nødvendige med denne driveren. Imidlertid forventer noen applikasjoner at pkg-config filen eksisterer, nemlig Xorg-Server-21.1.18. Opprett en nå som root bruker:

cat > /usr/lib/pkgconfig/dri.pc << "EOF"
prefix=/usr
includedir=${prefix}/include

dridriverdir=/usr/lib/dri

Name: dri
Description: Direct Rendering Infrastructure
Version: 580.76.05
Requires.private: libdrm >=  2.4.109
Cflags: -I${includedir}
EOF

Programmer som krever denne filen vil vanligvis ikke lenke mot noe bibliotek i /usr/lib/dri. Hvis du er bekymret for at et program vil prøve å lenke mot ikke-eksisterende biblioteker, kan du kompilere Mesa-25.1.8 å få disse bibliotekene og en ekte pkg-config fil. Merk at disse bibliotekene ikke vil bli brukt når denne driveren er i bruk.

[Notat]

Notat

Du bør hoppe over til XCB Verktøy etter at du er ferdig med denne siden med mindre du ønsker å installere ekstra programvare.

Innhold

Installerte Programmer: nvidia-install, nvidia-modprobe, nvidia-settings, nvidia-smi, og nvidia-xconfig
Installert Fastvare: gsp_ga10x.bin og gsp_tu10x.bin
Installerte Biblioteker: libcudadebugger, libcuda, libEGL_nvidia, libGLESv2_nvidia, libGLX_nvidia, libglxserver_nvidia, libnvcuvid, libnvoptix, libnvidia-allocator, libnvidia-api, libnvidia-cfg, libnvidia-eglcore, libnvidia-encode, libnvidia-fbc, libnvidia-glcore, libnvidia-glsi, libnvidia-glvkspirv, libnvidia-gpucomp, libnvidia-gtk3, libnvidia-ml, libnvidia-ngx, libnvidia-nvvm{70,}, libnvidia-opencl, libnvidia-opticalflow, libnvidia-pkcs11-openssl3, libnvidia-pkcs11, libnvidia-ptxjitcompiler, libnvidia-rtcore, libnvidia-tls, libnvidia-wayland-client, libOpenCL.so, libvdpau_nvidia, nvidia-drm_gbm, nvidia_drv, og for Wine-10.13 (_nvngx, nvngx, og nvngx_dlssg; alle tre er DLL-er)
Installerte Mapper: /usr/lib/firmware/nvidia/580.76.05, /usr/lib/nvidia/wine, /usr/share/glvnd/egl_vendor.d, og /usr/share/nvidia

Korte beskrivelser

nvidia-install

er et installasjonsskript som installerer alle programvarene fra denne driveren som du trenger

nvidia-modprobe

er et suid program som fyller ut /dev med mapper og filer for denne driveren og lastes inn når en skjermserver startes

nvidia-settings

et GUI program som er avhengig av GTK-3 som tillater justering av innstillinger som oppløsning og oppdateringsfrekvens

nvidia-smi

gir NVIDIA GPU overvåkingsinformasjon

nvidia-xconfig

manipulerer X11 konfigurasjonsfiler for å tillate NVIDIA driveren å brukes ved oppstart av X11

libcudadebugger

tillater feilsøking av CUDA applikasjoner

libcuda

gir støtte for applikasjoner som bruker CUDA

libEGL_nvidia

gir NVIDIA implementeringen av EGL

libGLESv2_nvidia

gir NVIDIA implementeringen av OpenGL ES v2

libGLX_nvidia

gir NVIDIA implementeringen av GLX

libglxserver_nvidia

er NVIDIA X11 GLX utvidelsesmodul

libnvcuvid

gir et grensesnitt til maskinvareakselerert dekoding

libnvoptix

gir OptiX Ray Tracing API

libnvidia-allocator

håndterer NVIDIA GPU minnehåndtering

libnvidia-api

tilbyr NVAPI grensesnittet

libnvidia-cfg

spør etter konfigurasjonsinnstillingene til en NVIDIA GPU

libnvidia-eglcore

gir primær EGL funksjonalitet til andre komponenter i driveren

libnvidia-encode

gir et grensesnitt til videokodermaskinvare

libnvidia-fbc

gir et grensesnitt for å fange opp og eventuelt kode rammebufferen til en X11 serverskjerm

libnvidia-glcore

gir den primære OpenGL funksjonaliteten for andre komponenter i denne driveren

libnvidia-glsi

gir OpenGL Shader grensesnittet for andre komponenter i denne driveren

libnvidia-glvkspirv

tillater bruk av SPIR-V shaders i OpenGL

libnvidia-gpucomp

gir primær funksjonalitet for å tillate at beregninger utføres på GPU-en for bruk med andre komponenter i denne driveren

libnvidia-gtk3

for at nvidia-settings; bruker GTK-3

libnvidia-ml

tilbyr et API for overvåking og administrasjon

libnvidia-ngx

tilbyr funksjoner for DLSS støtte

libnvidia-nvvm

git JIT LTO for CUDA

libnvidia-opencl

gir NVIDIA sin implementering av OpenCL API standarden

libnvidia-opticalflow

Gir støtte for Optical Flow som forbedrer bilder, på samme måte som DLSS, ved hjelp av CUDA

libnvidia-pkcs11

tilbyr kryptografifunksjoner når driveren er i konfidensiell beregningsmodus

libnvidia-ptxjitcompiler

er en JIT kompilator som kompilerer PTX til GPU maskinkode; brukt av CUDA

libnvidia-rtcore

implementerer kjernefunksjonaliteten RT (Ray Tracing) og brukes av andre komponenter i denne driveren

libnvidia-tls

gir TLS support for NVIDIA OpenGL implementeringer

libnvidia-wayland-client

er nødvendig for nvidia-settings på Wayland

libvdpau_nvidia

gir NVIDIA implementering for VDPAU API

_nvngx

gir DLSS støtte for bruk med Proton

nvngx

gir DLSS støtte for bruk med Wine

nvngx_dlssg

er DLSS 3 Frame Generation biblioteket

nvidia-drm_gbm

er NVIDIA GBM driveren

nvidia_drv

er NVIDIA X11 driveren



[8] Nyere versjoner av NVIDIA driverne vil ikke kunne kompileres med TTY støtte med mindre en grafikkdriver er inkludert i kjernen. Nouveau brukes her, men alternative grafikkdrivere kan også fungere.

[9] Direct Rendering Infrastructure.