NVIDIA-575.64

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.4 eller Mesa-25.1.4), libglvnd-1.7.0, og Xorg Biblioteker

Anbefalt

Forberedelser til NVIDIA installasjonen

Første aktiver XFree86 DRI og Nouveau [7] 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-575.64.run -x &&
cd NVIDIA-Linux-x86_64-575.64

Installasjon av NVIDIA kjernemodulene

[Notat]

Notat

Å bygge kjernemodulene i en chroot vil sannsynligvis føre til en byggefeil. Det anbefales på det sterkeste å bygge dem når de startes opp i LFS målet for å unngå uname -r rapportering av kjerneversjonen til verten i stedet for målet, noe som fører til at byggefiler ikke kan finnes.

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 open kjernemoduler, sett NVIDIA_KERNEL_TYPE variabelen:

export NVIDIA_KERNEL_TYPE="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.

Bygg nå kjernemodulene ved å kjøre følgende kommandoer nedenfor (kommandoene nedenfor vil navigere til riktig mappe basert på hva) NVIDIA_KERNEL_TYPE er satt til):

pushd $NVIDIA_KERNEL_TYPE &&
make NV_EXCLUDE_KERNEL_MODULES=
[Notat]

Notat

Du kan støte på diverse byggefeil. Dette skjer vanligvis fordi kjerneversjonen du bruker er «for høy.» Hvis dette skjer, kan det være nødvendig å nedgradere kjernen til en lavere versjon. Når en ny driverutgivelse kommer, vil driveren mest sannsynlig støtte kjerneversjonen på det tidspunktet. Øverst i denne delen er den anbefalte kjerneversjonen som skal brukes med denne driveren nevnt for å sikre at det ikke oppstår en byggefeil. Den nåværende kjerneversjonen som brukes for kjerneparametere og lignende i denne boken er linux-6.15.

[Viktig]

Viktig

Når du oppdaterer kjernen, må du også installere NVIDIA kjernemoduler på nytt.

Dette er fordi det er lim når kjernemoduler bygges. Dette limet spiller ikke så stor rolle med førstepartsmoduler (moduler i kjernens kildetre) ettersom modulene oppdateres samtidig som kjernen oppdateres. På det tidspunktet er det nytt lim som holder dem sammen. Men når det gjelder tredjepartsmoduler, oppdateres de ikke når kjernen oppdateres, så dette limet tredjepartsmodulene hadde på kjernen bryter sammen. Dette fører til ødelagte kjernemoduler. Dette gjelder også hvis du forblir på samme kjerneversjon, men endrer noen alternativer, dette kan også bryte limet.

Sørg for at når du installerer kjernemodulene på nytt, må du sørge for at du bruker den nye kjernen og har kjernekildekoden du bygde fra. Ellers vil modulene ikke kunne bygges.

Når du oppgraderer kjernen, trenger du ikke å installere driverprogramvaren på nytt, bare kjernemodulene.

Nå som root bruker:

for mod in nvidia{,-drm,-modeset,-peermem,-uvm}; do
  rm -vf /usr/lib/modules/$(uname -r)/kernel/drivers/video/$mod.ko
done
make modules_install &&
popd

Installer fastvaren som root bruker:

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

Til slutt, deaktiver NVIDIA_KERNEL_TYPE variabelen:

unset NVIDIA_KERNEL_TYPE

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 sette i dvalemodus og gå i hvilemodus hvis den blir bedt om det, kjør følgende kommandoer som root bruker for å installere nissen 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 problemene ut til å være begrenset til Wayland, skrivebordsmiljøer og skjermbehandlere. 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 Libraries 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.

Som root bruker, opprett filen /usr/lib/modprobe.d/nouveau.conf for å svarteliste Nouveau og NVIDIAFB:

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

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

DRM kjernemodulen bruker ikke modusinnstilling som standard, noe som er nødvendig for Wayland kompositore. 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. 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

Dessuten installerer ikke denne driveren DRI [8] drivere eller driverstubber. På samme måte installerer den ikke en pkg-config 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: 575.64
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.4 å 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 Utils 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, nvidia-uninstall, 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.11 (_nvngx, nvngx, og nvngx_dlssg; alle tre er DLL-er)
Installerte Mapper: /usr/lib/firmware/nvidia/575.64, /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-uninstall

er et spesiallaget installasjonsskript som avinstallerer driveren

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

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



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

[8] Direct Rendering Infrastructure.