NVIDIA-580.119.02

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.

Ytterligere Nedlastinger

NVIDIA-r580 Avhengigheter

Required
GBM (libgbm-1.0.4 eller Mesa-25.3.1), libglvnd-1.7.0, og Xorg Biblioteker

Recommended

Forberedelser til installasjon av NVIDIA-r580

Først aktiverer du XFree86 DRI og Nouveau [6] støtte i kjernen og kompiler på nytt 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-r580 driverfilen og naviger til den utpakkede mappen:

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

Installasjon av NVIDIA-r580 Kjernemoduler

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 et Turing, Ampere, Ada Lovelace eller Hopper kort, anbefales det å bygge open kjernemoduler. Hvis du har et Maxwell, Pascal eller Volta kort, bygg proprietary kjernemoduler. Hvis du bruker både et eldre og et nyere kort, men ikke det nyeste kortet, bygg proprietary kjernemoduler.

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

cd kernel-open

Hvis du i stedet skal bygge proprietary kjernemoduler, naviger til kernel mappen:

cd kernel
[Notat]

Notat

Hvis den nåværende kjernen som kjører er en annen versjon enn den du sikter mot, sannsynligvis som et resultat av at du er i en chroot eller ikke har startet på nytt etter en kjerneoppgradering ennå, vil bygging av kjernemodulene føre til en byggefeil eller installere moduler for en kjerne som ikke er målet. Standardvariabelen som kjernebyggesystemet bruker for å sjekke kjerneversjonen vil bruke uname -r, som igjen rapporterer kjerneversjonen av den for øyeblikket kjørende vertskjernen og ikke målet. Dette kan omgås ved å spesifise KERNEL_UNAME=<x.x.x> som vil overstyre kjerneversjonen som skal bygges mot og installeres til. Målkjerneversjonen 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 et .0 på slutten, som 6.16.0. Den skal samsvare med versjonen som finnes i /usr/lib/modules.

Hvis tilfellet ovenfor gjelder deg, enten du er i en chroot eller ikke har startet på nytt etter en kjerneoppgradering, spesifiser kjernemålet ved å eksportere variabelen nå på forhånd for å unngå å måtte spesifisere den for hver kommando:

export KERNEL_UNAME=<x.x.x>

Det vil bli bygget 5 eller 6 kjernemoduler. Avhengig av brukstilfellet ditt, kan du hoppe over å bygge en eller to moduler. UVM-modulen (Unified Virtual Memory) er til bruk med CUDA. If you won't use it, nor wish to use its capabilities, 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 for make kommandoen. Variabelen skal skilles, slik som: 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 kommando:

make NV_EXCLUDE_KERNEL_MODULES=
[Notat]

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, men det er utenfor rammen av denne boken.

[Notat]

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]

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.

WNå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 modules_install &&
cd ..

Hvis du satte KERNEL_UNAME variabelen, fjern den nå:

unset KERNEL_UNAME

Installer fastvaren som root bruker:

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

Installere NVIDIA-r580 Driverprogramvare

Installer installasjonsskriptet og manifestfilen for skriptet som root bruker:

install -vdm755 /usr/share/nvidia &&
install -vDm755 ../install-NVIDIA-1 /usr/sbin/nvidia-install &&
install -vDm644 ../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 hvis du blir bedt om det, 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 -vDm755 nvidia-powerd -t /usr/bin/     &&
install -vDm755 systemd/nvidia-sleep.sh         \
             -t /usr/bin/                      &&
install -vDm755 systemd/system-sleep/nvidia     \
             -t /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

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 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.20: 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

Denne driveren installerer ikke DRI [7] drivere eller driverstubber. På samme måte installerer den ikke en pkgconf fil som forteller hvor du finner de tilknyttede filene. Filene er ikke nødvendige med denne driveren. Imidlertid forventer noen applikasjoner at pkg-config filen finnes, nemlig Xorg-Server-21.1.20. 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.119.02
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.3.1 for å få disse bibliotekene og en ekte pkg-config fil. Merk at disse ibliotekene ikke vil bli brukt når denne driveren er i bruk.

Som med situasjonen angående DRI, finnes det noen få deklarasjonsfiler som bare er installert av Mesa-25.3.1 men kan utelates uten problemer. En er for å deklarere DRI grensesnittet, en for å deklarere Mesas EGL EXT-system som brukes av noe programvare som GNOMEs mutter, og en annen for å deklarere EGL EXT-systemet for ANGLE, med modifikasjoner tilpasset det. Bruk Wget-1.25.0, last ned og installer dem som root bruker:

install -vdm755 /usr/include/GL/internal /usr/include/EGL &&
wget https://gitlab.freedesktop.org/mesa/mesa/-/raw/25.3/include/GL/internal/dri_interface.h \
  -O /usr/include/GL/internal/dri_interface.h &&
wget https://gitlab.freedesktop.org/mesa/mesa/-/raw/25.3/include/EGL/eglmesaext.h \
  -O /usr/include/EGL/eglmesaext.h &&
wget https://gitlab.freedesktop.org/mesa/mesa/-/raw/25.3/include/EGL/eglext_angle.h \
  -O /usr/include/EGL/eglext_angle.h

Fortsette

Hvis du legger alle filene på plass i konfigurasjonsdelen, burde du ikke trenge Mesa for noen pakker i boken eller i BLFS. OpenGL, DRI og EGL filene som er oppgitt her, burde være passende. GNOME og KDE er kjent for å fungere med denne konfigurasjonen.

Med dette rene NVIDIA oppsettet kan du hoppe til Kapittel 12, X11 og forvent problemfri bruk. Hvis du vil, kan du imidlertid også installere CUDA i denne underseksjonen, noe som er opp til deg..

Innhold

Installerte Programmer: nvidia-install, nvidia-modprobe, nvidia-settings, nvidia-smi, og nvidia-xconfig
Installerte 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, nvidia-drm_gbm, nvidia_drv, og for Wine-10.20 (_nvngx, nvngx, og nvngx_dlssg; alle tre er DLLer)
Installerte Mapper: /usr/lib/firmware/nvidia/580.119.02, /usr/lib/nvidia/wine, /usr/share/glvnd/egl_vendor.d, og /usr/share/nvidia


[6] NVIDIAs kjernemoduler 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.

[7] Direct Rendering Infrastructure.