在把Gazebo从9.0更新到了9.19之后,启动的时候报错X Error of failed request: BadValue ...
。百度看了一下说是显卡驱动的问题。在更新显卡驱动时遇到了一系列问题,记录在此。
一、更新显卡驱动
在系统信息看到目前使用的显卡是NVIDIA GTX970。在Ubuntu Software
里看到目前的显卡驱动是460,先更新到470。更新完之后重启电脑,发现分辨率掉了好多。但是在设置里面却找不到更高分辨率的选项。把显卡驱动换回460也解决不了问题。
在系统信息里再次查看显卡信息,发现显卡信息变成了:Graphics llvmpipe(LLVM 10.0.0, 256bits)
。问题应该就出在这里,需要想办法换回NVIDIA的显卡。
这个时候在命令行运行nvidia-smi
,已经报错说连接不上NVIDIA显卡了,但是通过一些查看显卡的命令,能搜索到GTX970的卡。
二、解决llvmpipe的问题
参考这篇文章进行了一系列的操作:
1、下载显卡驱动
虽然已经在Ubuntu Software
里下载了驱动,以防万一还是去Nvidia官网上下载了驱动的.run
文件。
2、禁用nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
在最下面添加:
blacklist nouveau
options nouveau modeset=0
执行:
sudo update-initramfs -u
3、在命令行界面安装英伟达驱动
重启电脑,检查nouveau是否已经被禁用:
lsmod | grep nouveau
没有返回项则说明禁用成功。
通过Ctrl + Alt + Fx(x = 1 ~ 6)进入ttyx界面。
sudo apt-get remove --purge nvidia* # 卸载英伟达驱动,这种方式能卸载掉Ubuntu Software方式和apt-get方式下载的驱动
cd Downloads
sudo chmod a+x NVIDIA-Linux-x86_64-470.63.01.run
sudo ./NVIDIA-Linux-x86_64-470.63.01.run -no-x-check -no-nouveau-check -no-opengl-files
关于最后一步安装中的选项:
-no-x-check:安装驱动时关闭X服务 (已经关闭图形界面则不需要该指令)
-no-nouveau-check:安装驱动时禁用nouveau (已经禁用nouveau不需要该指令)
-no-opengl-files:只安装驱动文件,不安装OpenGL文件,只有禁用opengl这样安装才不会出现循环登陆的问题。
实际安装时尝试了不带选项和只启用了-no-opengl-files的选项。
根据提示进行安装,官方都推荐在Ubuntu Software
里安装驱动。
在安装过程中遇到了The CC version check failed
的问题。
The CC version check failed:
The Kernel was built with gcc version 7.5.0 (Ubuntu 7.50.-3ubuntu1~18.04), but the current complier version is cc (Ubuntu 4.8.5-4ubuntu8) 4.8.5.
查看电脑的gcc路径:
which gcc
gcc安装在/usr/bin/
下。
cd /usr/bin/
ls -l | grep gcc
发现电脑里有gcc-4.8和gcc-7,而gcc是个软链接,指向了gcc-4.8。修改gcc的软链接即可。
sudo rm gcc
sudo ln -s gcc-7 gcc
再检查一下gcc软链接指向是否正确。
继续驱动的安装,不安装DKMS,安装X configuration。
一切顺利。安装完之后已经可以通过nvidia-smi
查看显卡情况了。
补充:在命令行安装NVIDIA驱动的方式还有一种。
查看可安装的驱动:
ubuntu-drivers devices
安装驱动:
sudo apt install nvidia-driver-470
4、重启电脑
reboot
理论上这样就好了,但是!又有大问题:一直黑屏,左上角只有一句话:/dev/sda6: clean, 492542/29212672 files, 28066792/116831232 blocks
。
再百度百度,说是NVIDIA显卡驱动没装好……
其他的tty能进。尝试从命令行启动图形界面也不行。
三、挣扎一下
在师兄的建议下,把NVIDIA驱动卸了看看能不能进图形界面。
用.run
下载的驱动要用以下方式卸载:
sudo ./NVIDIA-Linux-x86_64-470.63.01.run --uninstall
重启之后就能进图形界面了,虽然还是llvmpipe。就离谱。
心累,选择重装系统。
更新:从笔记本电脑上打包了Ubuntu18.04的镜像,安装到台式机上。笔记本上的系统没有安装NVIDIA的显卡驱动。装到台式机上后,一开始Graphics
显示的是NV124
。在Ubuntu Software
里安装了470驱动之后重启电脑,之后Graphics
显示的就是NVIDIA GeForce GTX 970/PCIe/SSE2
了。