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-Powerd støttes kun på Systemd.
Anbefalt(e) kjerneversjon(er) å bruke: linux 6.15.x - 6.17.x
Nedlasting: https://us.download.nvidia.com/XFree86/Linux-x86_64/580.119.02/NVIDIA-Linux-x86_64-580.119.02.run
Nødvendig installasjonsskript: https://lfs.freding.no/glfs/download/NVIDIA/install-NVIDIA-1
Nødvendig manifestfil for installasjonsskriptet: https://lfs.freding.no/glfs/download/NVIDIA/manifest-NVIDIA-1
CUDA (for å bygge inn direkte CUDA støtte i diverse pakker som FFmpeg eller OBS-Studio; installer etter å ha fulgt denne siden)
GTK-3 (for nvidia-settings; installer etter å ha fulgt denne siden)
NVIDIA-VA-API-Driver-0.0.14 (for VA-API støtte; installer etter å ha fulgt denne siden)
NVIDIA EGL Biblioteker (for EGL driver støtte)
Vulkan-SDK-1.4.335.0 (for å bruke Vulkan drivere)
Wayland-1.24.0 (påkrevd for Wayland støtte)
Xorg-Server-21.1.20 (påkrevd for å kjøre nvidia-xconfig, som i Hva nå?; installere etter å ha fulgt denne siden)
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]
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
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
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= 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 <x.x.x>.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=
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.
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.
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
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
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.
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.
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
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
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..