@@ -120,71 +120,22 @@ _kernel_requires_package() {
120120 return 0
121121}
122122
123- # Compile the kernel modules, optionally sign them, and generate a precompiled package for use by the nvidia-installer.
124- _create_driver_package () (
125- local pkg_name=" nvidia-modules-${KERNEL_VERSION% -* }${PACKAGE_TAG: +-${PACKAGE_TAG} } "
126- local nvidia_sign_args=" "
127- local nvidia_modeset_sign_args=" "
128- local nvidia_uvm_sign_args=" "
129-
130- trap " make -s -j ${MAX_THREADS} SYSSRC=/lib/modules/${KERNEL_VERSION} /build clean > /dev/null" EXIT
131-
132- echo " Compiling NVIDIA driver kernel modules..."
133- cd /usr/src/nvidia-${DRIVER_VERSION} /${KERNEL_TYPE}
134-
123+ # This is required as currently GPU driver installer doesn't expect headers in x86_64 folder, but only in either default
124+ # or kernel-version folder.
125+ _link_ofa_kernel () (
135126 if _gpu_direct_rdma_enabled; then
136127 ln -s /run/mellanox/drivers/usr/src/ofa_kernel /usr/src/
137128 # if arch directory exists(MOFED >=5.5) then create a symlink as expected by GPU driver installer
138- # This is required as currently GPU driver installer doesn't expect headers in x86_64 folder, but only in either default or kernel-version folder.
139129 # ls -ltr /usr/src/ofa_kernel/
140130 # lrwxrwxrwx 1 root root 36 Dec 8 20:10 default -> /etc/alternatives/ofa_kernel_headers
141131 # drwxr-xr-x 4 root root 4096 Dec 8 20:14 x86_64
142132 # lrwxrwxrwx 1 root root 44 Dec 9 19:05 5.4.0-90-generic -> /usr/src/ofa_kernel/x86_64/5.4.0-90-generic/
143- if [[ -d /run/mellanox/drivers/usr/src/ofa_kernel/$DRIVER_ARCH /` uname -r` ]]; then
144- if [[ ! -e /usr/src/ofa_kernel/` uname -r` ]]; then
145- ln -s /run/mellanox/drivers/usr/src/ofa_kernel/$DRIVER_ARCH /` uname -r` /usr/src/ofa_kernel/
133+ if [[ -d /run/mellanox/drivers/usr/src/ofa_kernel/$DRIVER_ARCH /$( uname -r) ]]; then
134+ if [[ ! -e /usr/src/ofa_kernel/$( uname -r) ]]; then
135+ ln -s /run/mellanox/drivers/usr/src/ofa_kernel/$DRIVER_ARCH /$( uname -r) /usr/src/ofa_kernel/
146136 fi
147137 fi
148138 fi
149-
150- export IGNORE_CC_MISMATCH=1
151- make -s -j ${MAX_THREADS} SYSSRC=/lib/modules/${KERNEL_VERSION} /build nv-linux.o nv-modeset-linux.o > /dev/null
152-
153- echo " Relinking NVIDIA driver kernel modules..."
154- rm -f nvidia.ko nvidia-modeset.ko
155- ld -d -r -o nvidia.ko ./nv-linux.o ./nvidia/nv-kernel.o_binary
156- ld -d -r -o nvidia-modeset.ko ./nv-modeset-linux.o ./nvidia-modeset/nv-modeset-kernel.o_binary
157-
158- if [ -n " ${PRIVATE_KEY} " ]; then
159- echo " Signing NVIDIA driver kernel modules..."
160- donkey get ${PRIVATE_KEY} sh -c " PATH=${PATH} :/usr/src/linux-headers-${KERNEL_VERSION} /scripts && \
161- sign-file sha512 \$ DONKEY_FILE pubkey.x509 nvidia.ko nvidia.ko.sign && \
162- sign-file sha512 \$ DONKEY_FILE pubkey.x509 nvidia-modeset.ko nvidia-modeset.ko.sign && \
163- sign-file sha512 \$ DONKEY_FILE pubkey.x509 nvidia-uvm.ko"
164- nvidia_sign_args=" --linked-module nvidia.ko --signed-module nvidia.ko.sign"
165- nvidia_modeset_sign_args=" --linked-module nvidia-modeset.ko --signed-module nvidia-modeset.ko.sign"
166- nvidia_uvm_sign_args=" --signed"
167- fi
168-
169- echo " Building NVIDIA driver package ${pkg_name} ..."
170- ../mkprecompiled --pack ${pkg_name} --description ${KERNEL_VERSION} \
171- --proc-mount-point /lib/modules/${KERNEL_VERSION} /proc \
172- --driver-version ${DRIVER_VERSION} \
173- --kernel-interface nv-linux.o \
174- --linked-module-name nvidia.ko \
175- --core-object-name nvidia/nv-kernel.o_binary \
176- ${nvidia_sign_args} \
177- --target-directory . \
178- --kernel-interface nv-modeset-linux.o \
179- --linked-module-name nvidia-modeset.ko \
180- --core-object-name nvidia-modeset/nv-modeset-kernel.o_binary \
181- ${nvidia_modeset_sign_args} \
182- --target-directory . \
183- --kernel-module nvidia-uvm.ko \
184- ${nvidia_uvm_sign_args} \
185- --target-directory .
186- mkdir -p precompiled
187- mv ${pkg_name} precompiled
188139)
189140
190141_assert_nvswitch_system () {
@@ -420,18 +371,27 @@ _unload_driver() {
420371_install_driver () {
421372 local install_args=()
422373
423- echo " Installing NVIDIA driver kernel modules..."
424- cd /usr/src/nvidia-${DRIVER_VERSION}
425- if [ -d /lib/modules/${KERNEL_VERSION} /kernel/drivers/video ]; then
426- rm -rf /lib/modules/${KERNEL_VERSION} /kernel/drivers/video
427- else
428- rm -rf /lib/modules/${KERNEL_VERSION} /video
429- fi
430-
431374 if [ " ${ACCEPT_LICENSE} " = " yes" ]; then
432375 install_args+=(" --accept-license" )
433376 fi
434- nvidia-installer --kernel-module-only --no-drm --ui=none --no-nouveau-check -m=${KERNEL_TYPE} ${install_args[@]+" ${install_args[@]} " }
377+
378+ # Install the userspace components and copy the kernel module sources.
379+ sh NVIDIA-Linux-$DRIVER_ARCH -$DRIVER_VERSION .run -x && \
380+ cd NVIDIA-Linux-$DRIVER_ARCH -$DRIVER_VERSION && \
381+ ./nvidia-installer --silent \
382+ --no-nouveau-check \
383+ --no-nvidia-modprobe \
384+ --no-rpms \
385+ --no-backup \
386+ --no-check-for-alternate-installs \
387+ --no-libglx-indirect \
388+ --no-install-libglvnd \
389+ --x-prefix=/tmp/null \
390+ --x-module-path=/tmp/null \
391+ --x-library-path=/tmp/null \
392+ --x-sysconfig-path=/tmp/null \
393+ -m=${KERNEL_TYPE} \
394+ ${install_args[@]+" ${install_args[@]} " }
435395}
436396
437397# Mount the driver rootfs into the run directory with the exception of sysfs.
@@ -524,26 +484,6 @@ init() {
524484 _find_vgpu_driver_version || exit 1
525485 fi
526486
527- # Install the userspace components and copy the kernel module sources.
528- sh NVIDIA-Linux-$DRIVER_ARCH -$DRIVER_VERSION .run -x && \
529- cd NVIDIA-Linux-$DRIVER_ARCH -$DRIVER_VERSION && \
530- ./nvidia-installer --silent \
531- --no-kernel-module \
532- --no-nouveau-check \
533- --no-nvidia-modprobe \
534- --no-rpms \
535- --no-backup \
536- --no-check-for-alternate-installs \
537- --no-libglx-indirect \
538- --no-install-libglvnd \
539- --x-prefix=/tmp/null \
540- --x-module-path=/tmp/null \
541- --x-library-path=/tmp/null \
542- --x-sysconfig-path=/tmp/null && \
543- mkdir -p /usr/src/nvidia-${DRIVER_VERSION} && \
544- mv LICENSE mkprecompiled ${KERNEL_TYPE} /usr/src/nvidia-${DRIVER_VERSION} && \
545- sed ' 9,${/^\(kernel\|LICENSE\)/!d}' .manifest > /usr/src/nvidia-${DRIVER_VERSION} /.manifest
546-
547487 echo -e " \n========== NVIDIA Software Installer ==========\n"
548488 echo -e " Starting installation of NVIDIA driver version ${DRIVER_VERSION} for Linux kernel version ${KERNEL_VERSION} \n"
549489
@@ -565,7 +505,7 @@ init() {
565505 _update_package_cache
566506 _resolve_kernel_version || exit 1
567507 _install_prerequisites
568- _create_driver_package
508+ _link_ofa_kernel
569509 # _remove_prerequisites
570510 # _cleanup_package_cache
571511 fi
@@ -631,7 +571,7 @@ update() {
631571 _resolve_kernel_version || exit 1
632572 _install_prerequisites
633573 if _kernel_requires_package; then
634- _create_driver_package
574+ _link_ofa_kernel
635575 fi
636576 _remove_prerequisites
637577 _cleanup_package_cache
0 commit comments