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-575.64.run -x &&
cd NVIDIA-Linux-x86_64-575.64
Installasjon av NVIDIA kjernemodulene
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
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
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
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 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
Du bør hoppe over til XCB Utils etter at du er ferdig med denne
siden med mindre du ønsker å installere ekstra programvare.