Ubuntu 16.04 LTS:如何让Nvidia驱动仅供nvidia-docker使用并解决低图形模式?
解决Ubuntu 16.04低图形模式问题,仅让Nvidia驱动供nvidia-docker调用
我来帮你搞定这个问题!你现在的情况是装了Nvidia驱动和CUDA后,一重启就进低图形模式,但又得留着驱动给nvidia-docker用,对吧?按下面的步骤操作就行:
1. 先进入命令行模式
重启后要是弹出低图形模式的提示,别慌,按 Ctrl+Alt+F1 切换到纯命令行界面,输入你的用户名和密码登录就行。
2. 阻止系统自动加载Nvidia驱动
我们要做的就是不让系统启动时加载Nvidia的内核模块,但驱动文件得留着给docker用:
先编辑模块黑名单文件:
sudo nano /etc/modprobe.d/blacklist-nvidia.conf在打开的文件里添上这几行,把Nvidia相关模块都拉黑:
blacklist nvidia blacklist nvidia-drm blacklist nvidia-modeset blacklist nvidia-uvm按
Ctrl+O保存,回车确认,再按Ctrl+X退出编辑器。然后更新系统的启动镜像,让修改生效:
sudo update-initramfs -u
3. 让系统用默认开源驱动启动桌面
接下来得让系统用自带的开源驱动(比如nouveau)来跑桌面,这样就不会再触发低图形模式了:
先重新配置显示管理器,输入下面的命令(如果你用的是gdm就把lightdm换成gdm):
sudo dpkg-reconfigure lightdm跟着提示选默认的显示管理器就行。
要是之前你把nouveau驱动拉黑过,得把它放出来:
编辑nouveau的黑名单文件:sudo nano /etc/modprobe.d/blacklist-nouveau.conf里面如果有
blacklist nouveau这种行,就在前面加个#注释掉,然后同样更新启动镜像:sudo update-initramfs -u
4. 验证nvidia-docker还能正常干活
重启系统后,应该就能正常进桌面了。现在测一下nvidia-docker还能不能用Nvidia驱动:
- 跑个测试容器,命令里的CUDA版本换成你装的那个(比如你装的是10.0就改成
cuda:10.0-base):
要是能正常弹出显卡的信息,那就说明配置成功了!sudo docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
额外小技巧
如果你不需要桌面环境,直接让系统默认进命令行模式还能省资源:
sudo systemctl set-default multi-user.target
以后想换回桌面的话,就执行:
sudo systemctl set-default graphical.target
内容的提问来源于stack exchange,提问作者Magick
相关产品推荐
相关产品推荐

