前言 我原本安装nvidia显卡驱动的方式为:从官网下载*.run文件,参考教程link。虽然安装成功,运行深度学习相关代码没有出状况,但仍然存在一些问题。重新通过ppa方式安装后,Rviz/pcl_viewer在显示大量点云数据时卡顿的问题得到解决,compiz的cpu占用率也从40%降至个位数。下文将从三部分讨论和解决我遇到的问题。
*.run文件安装方式——我遇到的问题
-
命令行输入:nvidia-smi 显示no progress / GPU使用率基本为0
-
系统设置system settings——details——Graphics:llvmpipe (LLVM 6.0, 256 bits)
- 注1:“图形选项不是GTX1650, 而是llvmpipe之类的; (此种情况下, compiz进程会占用相当大的CPU, 会吃掉你几个核, 从20%~300%, 虽然察觉不出来, 其实是有问题的,开的窗口越多越明显) (多半是.run文件安装引起的问题, 不知道是不是因为加了-no-opengl-files的原因)”(原文链接:link )
- 注2:“普通笔记本一般默认采用集显作为视频输出,笔记本Ubuntu安装NVIDIA官方驱动后,易导致输入密码时循环进入登录页面,无法进入桌面。如果出现这个问题,可以直接用刚才的安装包卸载驱动,再重新加入–no-opengl-files选项安装。
而对于台式机,如果使用NVIDIA独立显卡作为视频输出,可以直接默认安装,不需要加任何选项。相反,如果加上这个无OpenGL选项–no-opengl-files以后,会导致开机进入系统仍然使用nouveau驱动,在系统信息里面是显示Gallium 0.4 on llvmpipe(LLVM 3.8, 128bits)。”(原文链接:link)
-
ubuntu软件更新software&updates——Additional Drivers无选项,或无法更换附加驱动选项( 仅可以选择continue using a manually installed drivers)
-
命令行输入nvidia-settings,无Prime profiles选项(用来切换集显/独显)
解决问题后的效果(与上边一一对应):
- nvidia-smi
- Graphics
- Additional Drivers
- nvidia-settings
还是没有。
ppa方式安装——解决遇到的问题
-
卸载已安装驱动 (如果没有禁用nouveau模块记得补上,详见1。)
sudo apt-get purge nvidia*
-
添加源并更新
sudo add-apt-repository ppa:graphics-drivers && sudo apt-get update
-
确定nvidia版本号,查看命令如下,选择recommended版,假设为nvidia-430
sudo ubuntu-drivers devices
-
安装
sudo apt-get install nvidia-430 // 或者在 software&updates 中进行选择
ppa方式安装遇到的问题:
- deb包下载慢
提醒:开始下载快,越来越慢;可以断点继续,重复输入安装命令有可能下载得快一点。 - 安装完毕,命令行输入:nvidia-smi检查是否安装成功
出错:ubuntu Failed to initialize NVML: Driver/library version mismatch
解决:重新启动即可。
参考:https://blog.****.net/ChuiGeDaQiQiu/article/details/89702701 【原理分析】
ps:如果你之前安装了nvidia-docker,卸载nvidia会影响到nvidia-docker,所以重装完显卡驱动后,需要安装nvidia-docker[参考网址],命令行输入(因为之前安装过,有些步骤略去):sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
记录可能用到的命令
查看电脑显卡:lspci -k | grep -A 2 -i "VGA"
切换到独显:sudo prime-select nvidia(如果命令不存在尝试安装 apt-get install nvidia-prime)
进入nvidia设置界面:nvidia-settings (如果命令不存在尝试安装 apt-get install nvidia-settings)
查看ubuntu推荐驱动:sudo ubuntu-drivers devices
查看nouveau是否被禁用:lsmod | grep nouveau(无输出则禁用成功)
进入命令行界面:ctrl+alt+f1
关闭图形界面:sudo service lightdm stop
打开图形界面:sudo service lightdm start
-
第一步:编辑黑名单
sudo gedit /etc/modprobe.d/blacklist.conf
第二步:末尾添加以下内容
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb;
第三步:更新内核sudo update-initramfs -u
第四步:若出现警告W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
可以进入网址下载相应的文件, 复制到对应的目录即可:cd [下载目录]
sudo cp kbl_guc_ver9_14.bin /lib/firmware/i915/
sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915/
第五步:重启系统。 ↩︎