debian安装NVIDIA显卡驱动并启动DOCKER支持
<span class="token shebang important">#!/bin/bash</span> <span class="token builtin class-name">set</span> <span class="token parameter variable">-e</span> <span class="token assign-left variable">tmp_dir</span><span class="token operator">=</span><span class="token string">"/tmp"</span> <span class="token assign-left variable">nouveau_loaded</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>lsmod <span class="token operator">|</span> <span class="token function">grep</span> nouveau <span class="token operator">|</span> <span class="token function">wc</span> <span class="token parameter variable">-l</span><span class="token variable">)</span></span> <span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$nouveau_loaded</span>"</span> <span class="token parameter variable">-eq</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">echo</span> <span class="token string">"Nouveau driver is already disabled."</span> <span class="token keyword">else</span> <span class="token builtin class-name">echo</span> <span class="token string">"blacklist nouveau"</span> <span class="token operator">|</span> <span class="token function">tee</span> <span class="token parameter variable">-a</span> /etc/modprobe.d/blacklist.conf <span class="token builtin class-name">echo</span> <span class="token string">"options nouveau modeset=0"</span> <span class="token operator">|</span> <span class="token function">tee</span> <span class="token parameter variable">-a</span> /etc/modprobe.d/blacklist.conf <span class="token assign-left variable">reboot_server</span><span class="token operator">=</span>true <span class="token keyword">fi</span> <span class="token function">apt-get</span> update <span class="token operator">&&</span> <span class="token function">apt-get</span> <span class="token function">install</span> <span class="token parameter variable">-y</span> <span class="token function">curl</span> linux-headers-<span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> <span class="token parameter variable">-r</span><span class="token variable">)</span></span> <span class="token builtin class-name">cd</span> <span class="token variable">${tmp_dir}</span> <span class="token function">curl</span> <span class="token parameter variable">-O</span> https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.1-1_all.deb dpkg <span class="token parameter variable">-i</span> cuda-keyring_1.1-1_all.deb <span class="token function">apt-get</span> update <span class="token operator">&&</span> <span class="token function">apt-get</span> <span class="token parameter variable">-y</span> <span class="token function">install</span> cuda-drivers cuda-toolkit-12-3 <span class="token function">rm</span> <span class="token parameter variable">-rf</span> <span class="token variable">${tmp_dir}</span>/cuda-keyring_1.1-1_all.deb <span class="token function">curl</span> <span class="token parameter variable">-fsSL</span> https://nvidia.github.io/libnvidia-container/gpgkey <span class="token operator">|</span> gpg <span class="token parameter variable">--dearmor</span> <span class="token parameter variable">-o</span> /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg <span class="token punctuation">\</span> <span class="token operator">&&</span> <span class="token function">curl</span> <span class="token parameter variable">-s</span> <span class="token parameter variable">-L</span> https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list <span class="token operator">|</span> <span class="token punctuation">\</span> <span class="token function">sed</span> <span class="token string">'s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'</span> <span class="token operator">|</span> <span class="token punctuation">\</span> <span class="token function">tee</span> /etc/apt/sources.list.d/nvidia-container-toolkit.list <span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token parameter variable">-e</span> <span class="token string">'/experimental/ s/^#//g'</span> /etc/apt/sources.list.d/nvidia-container-toolkit.list <span class="token function">apt-get</span> update <span class="token operator">&&</span> <span class="token function">apt-get</span> <span class="token function">install</span> <span class="token parameter variable">-y</span> nvidia-container-toolkit nvidia-ctk runtime configure <span class="token parameter variable">--runtime</span><span class="token operator">=</span>docker <span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$reboot_server</span>"</span> <span class="token operator">=</span> <span class="token boolean">true</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">echo</span> <span class="token string">""</span> <span class="token builtin class-name">echo</span> <span class="token string">"**********************************************************"</span> <span class="token builtin class-name">echo</span> <span class="token string">"* *"</span> <span class="token builtin class-name">echo</span> <span class="token string">"* IMPORTANT: Please reboot your server to apply changes! *"</span> <span class="token builtin class-name">echo</span> <span class="token string">"* *"</span> <span class="token builtin class-name">echo</span> <span class="token string">"**********************************************************"</span> <span class="token builtin class-name">echo</span> <span class="token string">""</span> <span class="token keyword">fi</span><span class="token shebang important">#!/bin/bash</span> <span class="token builtin class-name">set</span> <span class="token parameter variable">-e</span> <span class="token assign-left variable">tmp_dir</span><span class="token operator">=</span><span class="token string">"/tmp"</span> <span class="token assign-left variable">nouveau_loaded</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>lsmod <span class="token operator">|</span> <span class="token function">grep</span> nouveau <span class="token operator">|</span> <span class="token function">wc</span> <span class="token parameter variable">-l</span><span class="token variable">)</span></span> <span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$nouveau_loaded</span>"</span> <span class="token parameter variable">-eq</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">echo</span> <span class="token string">"Nouveau driver is already disabled."</span> <span class="token keyword">else</span> <span class="token builtin class-name">echo</span> <span class="token string">"blacklist nouveau"</span> <span class="token operator">|</span> <span class="token function">tee</span> <span class="token parameter variable">-a</span> /etc/modprobe.d/blacklist.conf <span class="token builtin class-name">echo</span> <span class="token string">"options nouveau modeset=0"</span> <span class="token operator">|</span> <span class="token function">tee</span> <span class="token parameter variable">-a</span> /etc/modprobe.d/blacklist.conf <span class="token assign-left variable">reboot_server</span><span class="token operator">=</span>true <span class="token keyword">fi</span> <span class="token function">apt-get</span> update <span class="token operator">&&</span> <span class="token function">apt-get</span> <span class="token function">install</span> <span class="token parameter variable">-y</span> <span class="token function">curl</span> linux-headers-<span class="token variable"><span class="token variable">$(</span><span class="token function">uname</span> <span class="token parameter variable">-r</span><span class="token variable">)</span></span> <span class="token builtin class-name">cd</span> <span class="token variable">${tmp_dir}</span> <span class="token function">curl</span> <span class="token parameter variable">-O</span> https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.1-1_all.deb dpkg <span class="token parameter variable">-i</span> cuda-keyring_1.1-1_all.deb <span class="token function">apt-get</span> update <span class="token operator">&&</span> <span class="token function">apt-get</span> <span class="token parameter variable">-y</span> <span class="token function">install</span> cuda-drivers cuda-toolkit-12-3 <span class="token function">rm</span> <span class="token parameter variable">-rf</span> <span class="token variable">${tmp_dir}</span>/cuda-keyring_1.1-1_all.deb <span class="token function">curl</span> <span class="token parameter variable">-fsSL</span> https://nvidia.github.io/libnvidia-container/gpgkey <span class="token operator">|</span> gpg <span class="token parameter variable">--dearmor</span> <span class="token parameter variable">-o</span> /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg <span class="token punctuation">\</span> <span class="token operator">&&</span> <span class="token function">curl</span> <span class="token parameter variable">-s</span> <span class="token parameter variable">-L</span> https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list <span class="token operator">|</span> <span class="token punctuation">\</span> <span class="token function">sed</span> <span class="token string">'s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'</span> <span class="token operator">|</span> <span class="token punctuation">\</span> <span class="token function">tee</span> /etc/apt/sources.list.d/nvidia-container-toolkit.list <span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token parameter variable">-e</span> <span class="token string">'/experimental/ s/^#//g'</span> /etc/apt/sources.list.d/nvidia-container-toolkit.list <span class="token function">apt-get</span> update <span class="token operator">&&</span> <span class="token function">apt-get</span> <span class="token function">install</span> <span class="token parameter variable">-y</span> nvidia-container-toolkit nvidia-ctk runtime configure <span class="token parameter variable">--runtime</span><span class="token operator">=</span>docker <span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$reboot_server</span>"</span> <span class="token operator">=</span> <span class="token boolean">true</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">echo</span> <span class="token string">""</span> <span class="token builtin class-name">echo</span> <span class="token string">"**********************************************************"</span> <span class="token builtin class-name">echo</span> <span class="token string">"* *"</span> <span class="token builtin class-name">echo</span> <span class="token string">"* IMPORTANT: Please reboot your server to apply changes! *"</span> <span class="token builtin class-name">echo</span> <span class="token string">"* *"</span> <span class="token builtin class-name">echo</span> <span class="token string">"**********************************************************"</span> <span class="token builtin class-name">echo</span> <span class="token string">""</span> <span class="token keyword">fi</span>#!/bin/bash set -e tmp_dir="/tmp" nouveau_loaded=$(lsmod | grep nouveau | wc -l) if [ "$nouveau_loaded" -eq 0 ]; then echo "Nouveau driver is already disabled." else echo "blacklist nouveau" | tee -a /etc/modprobe.d/blacklist.conf echo "options nouveau modeset=0" | tee -a /etc/modprobe.d/blacklist.conf reboot_server=true fi apt-get update && apt-get install -y curl linux-headers-$(uname -r) cd ${tmp_dir} curl -O https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.1-1_all.deb dpkg -i cuda-keyring_1.1-1_all.deb apt-get update && apt-get -y install cuda-drivers cuda-toolkit-12-3 rm -rf ${tmp_dir}/cuda-keyring_1.1-1_all.deb curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list apt-get update && apt-get install -y nvidia-container-toolkit nvidia-ctk runtime configure --runtime=docker if [ "$reboot_server" = true ]; then echo "" echo "**********************************************************" echo "* *" echo "* IMPORTANT: Please reboot your server to apply changes! *" echo "* *" echo "**********************************************************" echo "" fi
验证是否安装成功
宿主机验证:
nvidis-sminvidis-sminvidis-smi
docker容器验证
<span class="token function">sudo</span> <span class="token function">docker</span> run <span class="token parameter variable">--rm</span> <span class="token parameter variable">--runtime</span><span class="token operator">=</span>nvidia <span class="token parameter variable">--gpus</span> all ubuntu nvidia-smi<span class="token function">sudo</span> <span class="token function">docker</span> run <span class="token parameter variable">--rm</span> <span class="token parameter variable">--runtime</span><span class="token operator">=</span>nvidia <span class="token parameter variable">--gpus</span> all ubuntu nvidia-smisudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
原文链接:https://blog.csdn.net/weixin_53740389/article/details/136420191?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522779804426f5e18bb8a4d6b0401249e45%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=779804426f5e18bb8a4d6b0401249e45&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-9-136420191-null-null.nonecase&utm_term=%E9%A3%9E%E7%89%9BOS
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END