当前位置:   article > 正文

debian12 系统 开机自动加载 nvidia-uvm_nvidia-uvm-enable

nvidia-uvm-enable

debian 系统不知为何,开机没有自动加载 nvidia-uvm 设备,需要在主机系统手动启动任意一个cuda程序才能加载,非常坑爹。

写了一个脚本,配置了一个自动创建 nvidia-uvm 的 systemd 的服务。

#!/bin/bash

# 确保为 root 用户
if [ "$UID" -ne "0" ]; then
	echo "Must be root to run this script."
	exit 1
fi


# 创建自动加载脚本
echo "Create preload-nv-mod.sh > /preload_nv_mod.sh"
cat << \EOF > /preload_nv_mod.sh 
#!/bin/bash

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]; then
  # Count the number of NVIDIA controllers found.
  NVDEVS=`lspci | grep -i NVIDIA`
  N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
  NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

  N=`expr $N3D + $NVGA - 1`
  for i in `seq 0 $N`; do
    mknod -m 666 /dev/nvidia$i c 195 $i
  done

  mknod -m 666 /dev/nvidiactl c 195 255

else
  exit 1
fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]; then
  # Find out the major device number used by the nvidia-uvm driver
  D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

  mknod -m 666 /dev/nvidia-uvm c $D 0
else
  exit 1
fi

EOF

# 设定 755 权限
chown root:root /preload_nv_mod.sh
chmod 755 /preload_nv_mod.sh


# 创建 systemd 的服务配置文件
echo "Create preload-nv-mod.service > /lib/systemd/system/preload-nv-mod.service"

cat << \EOF > /lib/systemd/system/preload-nv-mod.service
[Unit]
Description=preload-nv-mod
Documentation=None
ConditionFileIsExecutable=/preload_nv_mod.sh
After=network.target

[Service]
Type=forking
ExecStart=/preload_nv_mod.sh
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target

EOF

# 设定服务配置的权限
chown root:root /lib/systemd/system/preload-nv-mod.service
chmod 644 /lib/systemd/system/preload-nv-mod.service

# 启用服务
echo "setting autostart"
systemctl enable preload-nv-mod
# 启动服务
echo "start service"
systemctl start preload-nv-mod
# 检查服务状态
echo "check service status"
systemctl status preload-nv-mod

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87

参考资料
nvidia cuda官方创建 nvidia-uvm 节点的脚本
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile-verifications

stackoverflow 上的问题 正确创建 nvidia-uvm 设备
https://askubuntu.com/questions/590319/how-do-i-enable-automatically-nvidia-uvm

Debian11 创建 systemd 开机服务
https://www.burning.net.cn/article/article-60

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/882172
推荐阅读
相关标签
  

闽ICP备14008679号