Skip to content

Commit 51e1800

Browse files
committed
Use modprobe drop-in files for configuring module parameters
Signed-off-by: Christopher Desiniotis <[email protected]>
1 parent b577c14 commit 51e1800

File tree

5 files changed

+117
-10
lines changed

5 files changed

+117
-10
lines changed

rhel8/nvidia-driver

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ DNF_RELEASEVER=${DNF_RELEASEVER:-""}
1818
RHEL_VERSION=${RHEL_VERSION:-""}
1919
RHEL_MAJOR_VERSION=8
2020
KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:-auto}
21+
MODPROBE_CONFIG_DIR="/etc/modprobe.d"
2122

2223
DRIVER_ARCH=${TARGETARCH/amd64/x86_64} && DRIVER_ARCH=${DRIVER_ARCH/arm64/aarch64}
2324
echo "DRIVER_ARCH is $DRIVER_ARCH"
@@ -340,11 +341,30 @@ _get_module_params() {
340341
fi
341342
}
342343

343-
# Load the kernel modules and start persistenced.
344-
_load_driver() {
344+
_create_module_params_conf() {
345345
echo "Parsing kernel module parameters..."
346346
_get_module_params
347347

348+
if [ ${#NVIDIA_MODULE_PARAMS[@]} -gt 0 ]; then
349+
echo "Configuring nvidia module parameters in ${MODPROBE_CONFIG_DIR}/nvidia.conf"
350+
echo "options nvidia ${NVIDIA_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia.conf
351+
fi
352+
if [ ${#NVIDIA_UVM_MODULE_PARAMS[@]} -gt 0 ]; then
353+
echo "Configuring nvidia-uvm module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf"
354+
echo "options nvidia-uvm ${NVIDIA_UVM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf
355+
fi
356+
if [ ${#NVIDIA_MODESET_MODULE_PARAMS[@]} -gt 0 ]; then
357+
echo "Configuring nvidia-modeset module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf"
358+
echo "options nvidia-modeset ${NVIDIA_MODESET_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf
359+
fi
360+
if [ ${#NVIDIA_PEERMEM_MODULE_PARAMS[@]} -gt 0 ]; then
361+
echo "Configuring nvidia-peermem module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf"
362+
echo "options nvidia-peermem ${NVIDIA_PEERMEM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf
363+
fi
364+
}
365+
366+
# Load the kernel modules and start persistenced.
367+
_load_driver() {
348368
local nv_fw_search_path="$RUN_DIR/driver/lib/firmware"
349369
local set_fw_path="true"
350370
local fw_path_config_file="/sys/module/firmware_class/parameters/path"
@@ -672,6 +692,8 @@ _prepare() {
672692
_find_vgpu_driver_version || exit 1
673693
fi
674694

695+
_create_module_params_conf
696+
675697
# Install the userspace components
676698
sh NVIDIA-Linux-$DRIVER_ARCH-$DRIVER_VERSION.run -x && \
677699
cd NVIDIA-Linux-$DRIVER_ARCH-$DRIVER_VERSION && \

rhel9/nvidia-driver

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ RHEL_VERSION=${RHEL_VERSION:-""}
1919
RHEL_MAJOR_VERSION=9
2020
RHEL_MINOR_VERSION=${RHEL_MINOR_VERSION:-""}
2121
KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:-auto}
22+
MODPROBE_CONFIG_DIR="/etc/modprobe.d"
2223

2324
DRIVER_ARCH=${TARGETARCH/amd64/x86_64} && DRIVER_ARCH=${DRIVER_ARCH/arm64/aarch64}
2425
echo "DRIVER_ARCH is $DRIVER_ARCH"
@@ -354,11 +355,30 @@ _get_module_params() {
354355
fi
355356
}
356357

357-
# Load the kernel modules and start persistenced.
358-
_load_driver() {
358+
_create_module_params_conf() {
359359
echo "Parsing kernel module parameters..."
360360
_get_module_params
361361

362+
if [ ${#NVIDIA_MODULE_PARAMS[@]} -gt 0 ]; then
363+
echo "Configuring nvidia module parameters in ${MODPROBE_CONFIG_DIR}/nvidia.conf"
364+
echo "options nvidia ${NVIDIA_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia.conf
365+
fi
366+
if [ ${#NVIDIA_UVM_MODULE_PARAMS[@]} -gt 0 ]; then
367+
echo "Configuring nvidia-uvm module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf"
368+
echo "options nvidia-uvm ${NVIDIA_UVM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf
369+
fi
370+
if [ ${#NVIDIA_MODESET_MODULE_PARAMS[@]} -gt 0 ]; then
371+
echo "Configuring nvidia-modeset module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf"
372+
echo "options nvidia-modeset ${NVIDIA_MODESET_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf
373+
fi
374+
if [ ${#NVIDIA_PEERMEM_MODULE_PARAMS[@]} -gt 0 ]; then
375+
echo "Configuring nvidia-peermem module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf"
376+
echo "options nvidia-peermem ${NVIDIA_PEERMEM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf
377+
fi
378+
}
379+
380+
# Load the kernel modules and start persistenced.
381+
_load_driver() {
362382
local nv_fw_search_path="$RUN_DIR/driver/lib/firmware"
363383
local set_fw_path="true"
364384
local fw_path_config_file="/sys/module/firmware_class/parameters/path"
@@ -691,6 +711,8 @@ _prepare() {
691711
_find_vgpu_driver_version || exit 1
692712
fi
693713

714+
_create_module_params_conf
715+
694716
# Install the userspace components and copy the kernel module sources.
695717
sh NVIDIA-Linux-$DRIVER_ARCH-$DRIVER_VERSION.run -x && \
696718
cd NVIDIA-Linux-$DRIVER_ARCH-$DRIVER_VERSION && \

ubuntu20.04/nvidia-driver

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ NVIDIA_MODESET_MODULE_PARAMS=()
1616
NVIDIA_PEERMEM_MODULE_PARAMS=()
1717
TARGETARCH=${TARGETARCH:?"Missing TARGETARCH env"}
1818
KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:-auto}
19+
MODPROBE_CONFIG_DIR="/etc/modprobe.d"
1920

2021
export DEBIAN_FRONTEND=noninteractive
2122

@@ -260,11 +261,30 @@ _get_module_params() {
260261
fi
261262
}
262263

263-
# Load the kernel modules and start persistenced.
264-
_load_driver() {
264+
_create_module_params_conf() {
265265
echo "Parsing kernel module parameters..."
266266
_get_module_params
267267

268+
if [ ${#NVIDIA_MODULE_PARAMS[@]} -gt 0 ]; then
269+
echo "Configuring nvidia module parameters in ${MODPROBE_CONFIG_DIR}/nvidia.conf"
270+
echo "options nvidia ${NVIDIA_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia.conf
271+
fi
272+
if [ ${#NVIDIA_UVM_MODULE_PARAMS[@]} -gt 0 ]; then
273+
echo "Configuring nvidia-uvm module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf"
274+
echo "options nvidia-uvm ${NVIDIA_UVM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf
275+
fi
276+
if [ ${#NVIDIA_MODESET_MODULE_PARAMS[@]} -gt 0 ]; then
277+
echo "Configuring nvidia-modeset module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf"
278+
echo "options nvidia-modeset ${NVIDIA_MODESET_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf
279+
fi
280+
if [ ${#NVIDIA_PEERMEM_MODULE_PARAMS[@]} -gt 0 ]; then
281+
echo "Configuring nvidia-peermem module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf"
282+
echo "options nvidia-peermem ${NVIDIA_PEERMEM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf
283+
fi
284+
}
285+
286+
# Load the kernel modules and start persistenced.
287+
_load_driver() {
268288
local nv_fw_search_path="$RUN_DIR/driver/lib/firmware"
269289
local set_fw_path="true"
270290
local fw_path_config_file="/sys/module/firmware_class/parameters/path"
@@ -600,6 +620,7 @@ init() {
600620
#_cleanup_package_cache
601621
fi
602622

623+
_create_module_params_conf
603624
_install_driver
604625
_load_driver || exit 1
605626
_mount_rootfs

ubuntu22.04/nvidia-driver

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ NVIDIA_PEERMEM_MODULE_PARAMS=()
1717
TARGETARCH=${TARGETARCH:?"Missing TARGETARCH env"}
1818
KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:-auto}
1919
UBUNTU_PRO_TOKEN=${UBUNTU_PRO_TOKEN:-""}
20+
MODPROBE_CONFIG_DIR="/etc/modprobe.d"
2021

2122
export DEBIAN_FRONTEND=noninteractive
2223

@@ -303,11 +304,30 @@ _get_module_params() {
303304
fi
304305
}
305306

306-
# Load the kernel modules and start persistenced.
307-
_load_driver() {
307+
_create_module_params_conf() {
308308
echo "Parsing kernel module parameters..."
309309
_get_module_params
310310

311+
if [ ${#NVIDIA_MODULE_PARAMS[@]} -gt 0 ]; then
312+
echo "Configuring nvidia module parameters in ${MODPROBE_CONFIG_DIR}/nvidia.conf"
313+
echo "options nvidia ${NVIDIA_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia.conf
314+
fi
315+
if [ ${#NVIDIA_UVM_MODULE_PARAMS[@]} -gt 0 ]; then
316+
echo "Configuring nvidia-uvm module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf"
317+
echo "options nvidia-uvm ${NVIDIA_UVM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf
318+
fi
319+
if [ ${#NVIDIA_MODESET_MODULE_PARAMS[@]} -gt 0 ]; then
320+
echo "Configuring nvidia-modeset module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf"
321+
echo "options nvidia-modeset ${NVIDIA_MODESET_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf
322+
fi
323+
if [ ${#NVIDIA_PEERMEM_MODULE_PARAMS[@]} -gt 0 ]; then
324+
echo "Configuring nvidia-peermem module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf"
325+
echo "options nvidia-peermem ${NVIDIA_PEERMEM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf
326+
fi
327+
}
328+
329+
# Load the kernel modules and start persistenced.
330+
_load_driver() {
311331
local nv_fw_search_path="$RUN_DIR/driver/lib/firmware"
312332
local set_fw_path="true"
313333
local fw_path_config_file="/sys/module/firmware_class/parameters/path"
@@ -678,6 +698,7 @@ init() {
678698
#_cleanup_package_cache
679699
fi
680700

701+
_create_module_params_conf
681702
_install_driver
682703
_load_driver || exit 1
683704
_mount_rootfs

ubuntu24.04/nvidia-driver

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ NVIDIA_PEERMEM_MODULE_PARAMS=()
1717
TARGETARCH=${TARGETARCH:?"Missing TARGETARCH env"}
1818
KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:-auto}
1919
UBUNTU_PRO_TOKEN=${UBUNTU_PRO_TOKEN:-""}
20+
MODPROBE_CONFIG_DIR="/etc/modprobe.d"
2021

2122
export DEBIAN_FRONTEND=noninteractive
2223

@@ -244,11 +245,30 @@ _get_module_params() {
244245
fi
245246
}
246247

247-
# Load the kernel modules and start persistenced.
248-
_load_driver() {
248+
_create_module_params_conf() {
249249
echo "Parsing kernel module parameters..."
250250
_get_module_params
251251

252+
if [ ${#NVIDIA_MODULE_PARAMS[@]} -gt 0 ]; then
253+
echo "Configuring nvidia module parameters in ${MODPROBE_CONFIG_DIR}/nvidia.conf"
254+
echo "options nvidia ${NVIDIA_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia.conf
255+
fi
256+
if [ ${#NVIDIA_UVM_MODULE_PARAMS[@]} -gt 0 ]; then
257+
echo "Configuring nvidia-uvm module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf"
258+
echo "options nvidia-uvm ${NVIDIA_UVM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-uvm.conf
259+
fi
260+
if [ ${#NVIDIA_MODESET_MODULE_PARAMS[@]} -gt 0 ]; then
261+
echo "Configuring nvidia-modeset module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf"
262+
echo "options nvidia-modeset ${NVIDIA_MODESET_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-modeset.conf
263+
fi
264+
if [ ${#NVIDIA_PEERMEM_MODULE_PARAMS[@]} -gt 0 ]; then
265+
echo "Configuring nvidia-peermem module parameters in ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf"
266+
echo "options nvidia-peermem ${NVIDIA_PEERMEM_MODULE_PARAMS[@]}" > ${MODPROBE_CONFIG_DIR}/nvidia-peermem.conf
267+
fi
268+
}
269+
270+
# Load the kernel modules and start persistenced.
271+
_load_driver() {
252272
local nv_fw_search_path="$RUN_DIR/driver/lib/firmware"
253273
local set_fw_path="true"
254274
local fw_path_config_file="/sys/module/firmware_class/parameters/path"
@@ -580,6 +600,7 @@ init() {
580600
#_remove_prerequisites
581601
#_cleanup_package_cache
582602

603+
_create_module_params_conf
583604
_install_driver
584605
_load_driver || exit 1
585606
_mount_rootfs

0 commit comments

Comments
 (0)