install-nvidia: Force building proprietary kernel module

Installers for 570 sometimes default to Open drivers, which we can't support
properly at this time. Force proprietary drivers. There are also additional
options that suppress certain worrisome error strings - enable those if
supported too.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This commit is contained in:
Jeremi Piotrowski 2025-02-25 15:03:32 +01:00
parent b048140f97
commit bfde33bcc3

View File

@ -4,11 +4,35 @@
NVIDIA_DRIVER_BASENAME="$1" NVIDIA_DRIVER_BASENAME="$1"
KERNEL_NAME="$(ls /lib/modules)" KERNEL_NAME="$(ls /lib/modules)"
option_supported() {
local opt="$1"
./nvidia-installer -A -h | grep -qe "--$opt"
}
cd "/nvidia/${NVIDIA_DRIVER_BASENAME}" cd "/nvidia/${NVIDIA_DRIVER_BASENAME}"
EXTRA_OPTS=()
if option_supported no-rebuild-initramfs ; then
EXTRA_OPTS+=( --no-rebuild-initramfs )
fi
if option_supported skip-module-load ; then
EXTRA_OPTS+=( --skip-module-load )
fi
# TODO: open requires firmware loading.
# Can we load the module from the nspawn container?
if option_supported kernel-module-type ; then
EXTRA_OPTS+=( --kernel-module-type=proprietary )
elif option_supported kernel-module-build-directory ; then
EXTRA_OPTS+=( --kernel-module-build-directory=kernel )
fi
./nvidia-installer -s -n \ ./nvidia-installer -s -n \
--no-check-for-alternate-installs \ --no-check-for-alternate-installs \
--no-kernel-module-source \ --no-kernel-module-source \
--kernel-name="${KERNEL_NAME}" \ --kernel-name="${KERNEL_NAME}" \
"${EXTRA_OPTS[@]}" \
--no-x-check \
--no-opengl-files \ --no-opengl-files \
--no-distro-scripts \ --no-distro-scripts \
--no-systemd \ --no-systemd \
@ -16,6 +40,9 @@ cd "/nvidia/${NVIDIA_DRIVER_BASENAME}"
--kernel-install-path="${PWD}/install-mod" \ --kernel-install-path="${PWD}/install-mod" \
--log-file-name="${PWD}/nvidia-installer.log" || true --log-file-name="${PWD}/nvidia-installer.log" || true
echo "Last 50 lines of nvidia-installer.log:"
tail -n50 nvidia-installer.log || true
mkdir -p /lib/modules/${KERNEL_NAME}/video mkdir -p /lib/modules/${KERNEL_NAME}/video
mkdir -p "${PWD}"/install-mod mkdir -p "${PWD}"/install-mod
cp "${PWD}"/kernel/*.ko "${PWD}"/install-mod cp "${PWD}"/kernel/*.ko "${PWD}"/install-mod