From 066fb3ffd4f4b01c4bf789885cf30612d529451a Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Tue, 25 Feb 2025 15:03:32 +0100 Subject: [PATCH] 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 --- .../nvidia-drivers/files/bin/install-nvidia | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers/files/bin/install-nvidia b/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers/files/bin/install-nvidia index 803934b190..4166ff93d0 100644 --- a/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers/files/bin/install-nvidia +++ b/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers/files/bin/install-nvidia @@ -4,11 +4,35 @@ NVIDIA_DRIVER_BASENAME="$1" KERNEL_NAME="$(ls /lib/modules)" +option_supported() { + local opt="$1" + ./nvidia-installer -A -h | grep -qe "--$opt" +} + 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 \ --no-check-for-alternate-installs \ --no-kernel-module-source \ --kernel-name="${KERNEL_NAME}" \ + "${EXTRA_OPTS[@]}" \ + --no-x-check \ --no-opengl-files \ --no-distro-scripts \ --no-systemd \ @@ -16,6 +40,9 @@ cd "/nvidia/${NVIDIA_DRIVER_BASENAME}" --kernel-install-path="${PWD}/install-mod" \ --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 "${PWD}"/install-mod cp "${PWD}"/kernel/*.ko "${PWD}"/install-mod