NVIDIA 驱动取消 runtime 内核检查

NVIDIA GPU 驱动默认不允许安装到 runtime 内核。可以通过设置 IGNORE_PREEMPT_RT_PRESENCE 环境变量的方式跳过内核检查:

  1. 编辑 dkms.conf

    sudoedit /usr/src/nvidia-srv-<version>/dkms.conf
    
     DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
     PROCS_NUM=`nproc`
     [ $PROCS_NUM -gt 16 ] && PROCS_NUM=16
    -MAKE[0]="unset ARCH; [ ! -h /usr/bin/cc ] && export CC=/usr/bin/gcc; env NV_VERBOSE=1 \
    +MAKE[0]="unset ARCH; [ ! -h /usr/bin/cc ] && export CC=/usr/bin/gcc; env NV_VERBOSE=1 IGNORE_PREEMPT_RT_PRESENCE=1 \
         'make' -j$PROCS_NUM NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=${kernelver}  IGNORE_XEN_PRESENCE=1 IGNORE_CC_MISMATCH=1 SYSSRC=$kernel_source_dir LD=/usr/bin/ld.bfd CONFIG_X86_KERNEL_IBT= modules"
     BUILT_MODULE_NAME[1]="nvidia-modeset"
     DEST_MODULE_LOCATION[1]="/kernel/drivers/char/drm"
    
  2. 重建并安装 NVIDIA 驱动内核模块:

    sudo dkms remove -m nvidia-srv -v <version> --all
    sudo dkms add -m nvidia-srv -v <version>
    sudo dkms build -m nvidia-srv -v <version> -k "$(uname -r)"
    sudo dkms install -m nvidia-srv -v <version> -k "$(uname -r)"
    
  3. 加载 NVIDIA 驱动内核模块:

    sudo depmod -a  # 生成内核模块依赖索引
    sudo modprobe nvidia nvidia-modeset nvidia-uvm nvidia-drm  # 加载 NVIDIA 驱动内核模块
    
  4. 测试:

    nvidia-smi
    
posted @ 2026-03-24 17:00  Undefined443  阅读(3)  评论(0)    收藏  举报