Forberedelser til NVIDIA installasjonen
Første aktiver XFree86 DRI og Nouveau 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
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
Å 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
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
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
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.
Konfigure NVIDIA
Konfigurasjonsfiler
/usr/lib/modprobe.d/nouveau.conf
/usr/lib/modprobe.d/nvidia_drm.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
Denne driveren installerer ikke DRI 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
Du bør hoppe over til XCB Verktøy etter at du er ferdig med
denne siden med mindre du ønsker å installere ekstra
programvare.