diff --git a/nvidia-driver-installer/ubuntu/entrypoint.sh b/nvidia-driver-installer/ubuntu/entrypoint.sh index 7b9d1c9e8..70c949228 100755 --- a/nvidia-driver-installer/ubuntu/entrypoint.sh +++ b/nvidia-driver-installer/ubuntu/entrypoint.sh @@ -24,6 +24,8 @@ NVIDIA_DRIVER_DOWNLOAD_URL="${NVIDIA_DRIVER_DOWNLOAD_URL:-$NVIDIA_DRIVER_DOWNLOA NVIDIA_INSTALL_DIR_HOST="${NVIDIA_INSTALL_DIR_HOST:-/var/lib/nvidia}" NVIDIA_INSTALL_DIR_CONTAINER="${NVIDIA_INSTALL_DIR_CONTAINER:-/usr/local/nvidia}" NVIDIA_INSTALLER_RUNFILE="$(basename "${NVIDIA_DRIVER_DOWNLOAD_URL}")" +KERNEL_SOURCE_DOWNLOAD_COMMAND_DEFAULT='apt-get update && apt-get install -y linux-headers-${KERNEL_VERSION}' +KERNEL_SOURCE_DOWNLOAD_COMMAND="${KERNEL_SOURCE_DOWNLOAD_COMMAND:-$KERNEL_SOURCE_DOWNLOAD_COMMAND_DEFAULT}" ROOT_MOUNT_DIR="${ROOT_MOUNT_DIR:-/root}" CACHE_FILE="${NVIDIA_INSTALL_DIR_CONTAINER}/.cache" KERNEL_VERSION="$(uname -r)" @@ -68,7 +70,9 @@ update_container_ld_cache() { download_kernel_src() { echo "Downloading kernel sources..." - apt-get update && apt-get install -y linux-headers-${KERNEL_VERSION} + if [[ ${KERNEL_SOURCE_DOWNLOAD_COMMAND} ]]; then + eval ${KERNEL_SOURCE_DOWNLOAD_COMMAND} + fi echo "Downloading kernel sources... DONE." } @@ -105,7 +109,7 @@ configure_nvidia_installation_dirs() { update_container_ld_cache # Install an exit handler to cleanup the overlayfs mount points. - trap "{ umount /lib/modules/${KERNEL_VERSION}/video; umount /usr/lib/x86_64-linux-gnu ; umount /usr/bin; }" EXIT + trap "{ umount /lib/modules/${KERNEL_VERSION}/video; umount /usr/lib/x86_64-linux-gnu ; umount -l /usr/bin; }" EXIT popd echo "Configuring installation directories... DONE." } @@ -128,6 +132,7 @@ run_nvidia_installer() { --log-file-name="${NVIDIA_INSTALL_DIR_CONTAINER}/nvidia-installer.log" \ --no-drm \ --silent \ + $(eval "echo ${NVIDIA_INSTALLER_EXTRA_ARGS}") \ --accept-license popd echo "Running Nvidia installer... DONE."