NVIDIA-580.159.04

Introduksjon til NVIDIA-r580

Dette er hovedutgivelsen r580 av NVIDIAs proprietære driver, som inneholder fastvare, kjernedrivere, brukerlanddrivere knyttet til OpenGL, Vulkan og maskinvareakselerasjon, og tilbyr nyttige verktøy for NVIDIA kort fra Maxwell til Blackwell.

NVIDIA-r580 Avhengigheter

Required
libgbm-1.0.7, libglvnd-1.7.0, og Xorg Biblioteker

Recommended

Installasjon av NVIDIA driveren

Installer NVIDIA driveren ved å kjøre følgende kommando som root bruker:

sh NVIDIA-Linux-x86_64-610.43.02.run -z \
  -j $(nproc)   \
  -k `uname -r` \
  --no-peermem  \
  --override-file-type-destination=OPENCL_WRAPPER_LIB:/tmp/nvidia \
  --override-file-type-destination=OPENCL_WRAPPER_SYMLINK:/tmp/nvidia

Parameterforklaringer

-z: Denne parameteren deaktiverer kontroll for å se om nouveau kjernedriveren er lastet inn, noe som kan være hvis nouveau ikke er svartelistet av modprobe ennå. Ellers vil driveren klage.

-j $(nproc): Dette fungerer slik MAKEFLAGS er satt opp. Samtidigheten er begrenset med mindre denne parameteren brukes.

-k `uname -r`: Denne parameteren angir kjerneversjonen/navnet som NVIDIA driveren skal bygge mot. `uname -r` er brukt, som etterligner oppførselen til driveren og de fleste tredjeparts kjernemodulbyggesystemer. Dette er nødvendig hvis kjerneversjonen/navnet du vil at NVIDIA skal bygge mot er forskjellig fra det uname -r rapporter. Hvis du for eksempel vil bygge mot 7.0.11 men uname -r rapporter 6.19.12, må du bruke -k 7.0.11. uname -r rapporter hvilken vertskjerne som brukes, noe som kan skape problemer i en chroot. `command` brukes til å returnere resultatet av en kommando, så hvis 7.0.11 er gitt, bør du fjerne backticks siden den strengen ikke er en kommando. Hvis du vil bygge mot noe som 7.1, der det er en ny mindre eller større versjon, men ikke en feilrettingsutgivelsease, .0 må ha suffiks slik at det ser ut som 7.1.0. For å se hvilke kjernenavn/versjoner som er tilgjengelige å bygge mot, se i /usr/lib/modules mappen.

--no-peermem: Denne parameteren deaktiverer bygging av peermem (eller NVIDIA Peer Memory) kjernemodul. Den brukes for datasentre. Bruk av -A vil på egenhånd vise deg hvilke nøyaktige enheter Peer Memory kjernemodulen dekker. Hvis du trenger det, fjern denne parameteren.

--override...=OPENCL_WRAPPER...:/tmp/nvidia: Disse parameterne deaktiverer installasjon av NVIDIA OpenCL ICD lasteren til fordel for OpenCL-SDK-2026.05.29, som er mer generisk og støtter NVIDIA OpenCL driverne. Hvis 32-biters kompatibilitetsbiblioteker installeres, vil driveren advare flere ganger om at libOpenCL biblioteket finnes. Fortsett å godta for å fortsette installasjonen.

--print-recommended-kernel-module-type: Når den brukes, vil driveren fortelle deg hvilken kjernemodultype som anbefales, og deretter avslutte. Det anbefales å bruke denne hvis du ikke er kjent med å installere NVIDIA driveren via runfilen. Deretter installerer du driveren normalt, og deretter velger du den anbefalte kjernemodultypen når du blir bedt om det.

-A: Dette alternativet brukes til å gi alle alternativene du kan bruke til å justere hvordan installasjonen av driveren skal håndteres.

Driveren kan stille deg flere spørsmål, gi diverse advarsler og generelt si mye. Bare gå gjennom instruksjonene.

Notat

Kildekoden du bygde kjernen fra må være på samme sted som du bygde kjernen fra. Hvis du for eksempel bygde kjernen i /sources/linux-6.16.1, kildekoden skal bli værende der og må ikke slettes før tredjeparts modulene er bygget. Noen Linux distribusjoner omgår dette ved å installere utviklingsfiler i /usr/src eller bruke DKMS, men det er utenfor omfanget av denne boken.

Notat

Du kan støte på diverse byggefeil. Dette skjer vanligvis fordi modulkoden er inkompatibel med den gjeldende kjerneversjonen. Hvis dette skjer, kan det i de fleste tilfeller fikses ved å nedgradere kjernen. Når en ny driverutgivelse kommer, vil driveren mest sannsynlig støtte den aktuelle kjerneversjonen. Øverst i denne delen er den anbefalte kjerneserien som skal brukes med denne driveren nevnt for å gi en idé om hva den ideelle kjerneversjonen å bygge mot er.

Viktig

Når du gjenoppbygger/oppgraderer kjernen, må du også installere NVIDIA kjernemodulene 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 en limmekanisme bygget, så eventuelle endringer i kjernen kan ødelegge den limmekanismen. 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.

Hvis du oppdaterte eller endret kjernen (via forskjellige alternativer) der NVIDIA driveren ble bygget mot den, må du installere driveren på nytt.

Konfigurere NVIDIA-r580

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 og vindusbehandlere. Listen nedenfor dokumenterer de kjente pakkene som har problemer med denne driveren.

  • Mutter: Kompiler denne pakken ved å bruke oppdateringer og sed kommandoer nevnt i BLFS først, og kjør deretter de påfølgende kommandoene.:

    find -name \*.c \
      -exec sed -i '/<EGL\/eglmesaext.h>/d' {} \; &&
    find -name \*.h \
      -exec sed -i '/<EGL\/eglmesaext.h>/d' {} \; &&
    
    mkdir build &&
    cd    build &&
    
    meson setup --prefix=/usr             \
                --buildtype=release       \
                -D tests=disabled         \
                -D profiler=false         \
                -D bash_completion=false  \
                -D wayland_eglstream=true \
                -D egl_device=true        \
                ..                       &&
    ninja

    Installer som root med ninja install.

  • Xorg-Server-21.1.23: Selv om denne pakken fungerer helt fint, vil TearFree oppdateringen og konfigurasjonsfilen være ubrukelig siden 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

For at driverne skal fungere ordentlig, må enhetsnoder opprettes på forhånd. Under visse forhold eller konfigurasjoner opprettes ikke disse automatisk når en skjermserver startes. Som root bruker, opprett en udev regel for alltid å opprette disse nodene ved oppstart:

mkdir -pv /usr/lib/udev/rules.d &&
cat > /usr/lib/udev/rules.d/60-nvidia.rules << "EOF"
# Always create NVIDIA device nodes at boot time.
ACTION=="add|bind",                \
  ATTR{vendor}=="0x10de",          \
  ATTR{class}=="0x03[0-9]*",       \
  DRIVER=="nvidia",                \
  TEST!="/dev/nvidiactl",          \
  RUN+="/usr/bin/nvidia-modprobe", \
  RUN+="/usr/bin/nvidia-modprobe -c0 -u"
EOF

Nouveau og NVIDIAFB støtte ble kompilert inn i kjernen for å sikre at NVIDIA kjernemodulene kunne bygges. Nouveau og NVIDIAFB er imidlertid i konflikt med NVIDIA kjernemodulene, så de bør svartelistes. I tillegg kan det ha blitt bygget andre moduler som kan komme i konflikt, og bør også deaktiveres. Som root bruker, opprett filen /usr/lib/modprobe.d/nouveau.conf for å svarteliste Nouveau og NVIDIAFB, samt andre motstridende moduler:

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 det mulig å bruke 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

Fortsette

Hvis du installerte libglvnd-1.7.0 og libgbm-1.0.7, burde du ikke trenge Mesa som en avhengighet for noen pakke i noen av LFS bøkene. Du må sørge for at du installerer Xorg-Server-21.1.23 og/eller Xwayland-24.1.12 fra denne boken, ettersom disse pakkene inkluderer viktige oppdateringer som omgår behovet for et Mesa spesifikt grensesnitt som brukes til å laste inn Mesa spesifikke drivere for programvaregjengivelse.

Med dette Mesa frie oppsettet, kan du hoppe til Kapittel 14, X11 og forvent problemfri bruk. Hvis du vil, kan du imidlertid også installere CUDA i denne underseksjonen for å forbedre ytelsen, noe som er opp til deg.