@@ -15,9 +15,7 @@ NVIDIA_UVM_MODULE_PARAMS=()
1515NVIDIA_MODESET_MODULE_PARAMS=()
1616NVIDIA_PEERMEM_MODULE_PARAMS=()
1717TARGETARCH=${TARGETARCH:? " Missing TARGETARCH env" }
18-
19- OPEN_KERNEL_MODULES_ENABLED=${OPEN_KERNEL_MODULES_ENABLED:- false}
20- [[ " ${OPEN_KERNEL_MODULES_ENABLED} " == " true" ]] && KERNEL_TYPE=kernel-open || KERNEL_TYPE=kernel
18+ KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:- auto}
2119
2220export DEBIAN_FRONTEND=noninteractive
2321
@@ -481,6 +479,26 @@ _shutdown() {
481479 return 1
482480}
483481
482+ _resolve_kernel_type () {
483+ if [ " ${KERNEL_MODULE_TYPE} " == " proprietary" ]; then
484+ KERNEL_TYPE=kernel
485+ return 0
486+ elif [ " ${KERNEL_MODULE_TYPE} " == " open" ]; then
487+ KERNEL_TYPE=kernel-open
488+ return 0
489+ elif [ " ${KERNEL_MODULE_TYPE} " == " auto" ]; then
490+ KERNEL_TYPE=$( gpu-driver-util get-kernel-module-type -b " ${DRIVER_BRANCH} " )
491+ if [ $? -ne 0 ]; then
492+ echo " cannot autodetect the kernel module type, please check /var/log/gpu-driver-util.log for more details..."
493+ return 1
494+ fi
495+ return 0
496+ else
497+ echo " invalid value for the KERNEL_MODULE_TYPE variable: ${KERNEL_MODULE_TYPE} "
498+ return 1
499+ fi
500+ }
501+
484502_find_vgpu_driver_version () {
485503 local count=" "
486504 local version=" "
@@ -524,6 +542,8 @@ init() {
524542 _find_vgpu_driver_version || exit 1
525543 fi
526544
545+ _resolve_kernel_type || exit 1
546+
527547 # Install the userspace components and copy the kernel module sources.
528548 sh NVIDIA-Linux-$DRIVER_ARCH -$DRIVER_VERSION .run -x && \
529549 cd NVIDIA-Linux-$DRIVER_ARCH -$DRIVER_VERSION && \
@@ -596,6 +616,8 @@ update() {
596616 fi
597617 exec 3>& -
598618
619+ _resolve_kernel_type || exit 1
620+
599621 # vgpu driver version is choosen dynamically during runtime, so pre-compile modules for
600622 # only non-vgpu driver types
601623 if [ " ${DRIVER_TYPE} " != " vgpu" ]; then
0 commit comments