ROS Rviz以及gazebo libGL error

1.引言

在调试TurtleBot3的时候启动Rviz报错
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
如图:
libGL

之前肯定是能使用的,于是回想最近干了啥—配置了Tensorflow,再根据查阅资料定位到NVIDIA显卡驱动问题,有可能是cuda8.0安装姿势不正确。然后又看了看具体的报错,与Rviz联系更密切,于是解决思路大概两个:

  • 从NVIDIA驱动入手查找原因,可能是安装或更新nvidia驱动后导致libGL动态链接库链接中断或者指向错误的链接,这个参考并没有解决问题,且需要更改一个命令:
sudo find /usr -iname "*libGL.so*" -exec ls -- {} \;
  • 从更密切相关的Rviz入手找原因。

2.解决方案

新开terminal测试rviz、gazebo。
rviz
gazebo
果然双双瘫痪.

2.1.删除并重新安装cuda8.0 :

cd /usr/local/cuda-8.0
sudo rm -rf cuda-8.0

下载cuda8.0,切记下载.run文件不要下载.deb文件:
cuda
安装cuda,切记以no-opengl-libs方式安装,就是这里导致链接库错误。

sudo sh cuda_8.0.61_375.26_linux.run  --no-opengl-libs 

note:license文件很长,长按CTRL+F翻页(CTRL +B是往前翻一页)即可。
然后根据提示选择:
cuda安装

配置环境变量:

sudo gedit  ~/.bashrc 

在文件中加入:

export PATH=/usr/local/cuda-8.0/bin/:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/ 

生效环境变量:

source ~/.bashrc

测试:

#编译并测试设备 deviceQuery:  
 cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery  
 sudo make  
 ./deviceQuery  
      
 #编译并测试带宽 bandwidthTest:  
 cd ../bandwidthTest  
 sudo make  
 ./bandwidthTest  

Result = PASS 成功.到此这边的问题解决了一半了但是Tensorflow明显瘫了,故,继续按照博客进行后面的操作重新安装完Tensorflow_GPU版本。

2.2.重装Rviz

已经安装ros 了的基础上:

rosdep install rviz
#执行初始化
sudo rosdep init
#更新
rosdep update

设置环境变量:

#设置变量
export LIBGL_ALWAYS_SOFTWARE=1
#启动测试
rosrun rviz rviz

Rviz

解决方法看上去很简单,也确实很简单,但是花了我好长时间,气人。回到正轨调试上。

20191118更新:

3.安装cuda10.1

=====================================================================
在最新的CUDA安装中(目前安装的10.1版本)已经不在是上面这个安装界面了,按照这个方式也为有一点点小错误,在日志文件可以看到报错大致为:You appear to be running an X server; please exit X before解决办法,参考显卡驱动安装方式进入文本模式就可以关闭X server,然后再按部就班安装.

=====================================================================
禁用 nouveau驱动:

lsmod | grep nouveau # 查看有没有输出,如果有信息输出,则需要禁掉
sudo gedit /etc/modprobe.d/blacklist.conf  #将默认的驱动拉进黑名单

在blacklist.conf的最后添加下面几行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

更新: sudo update-initramfs -u #这一步可能翻墙要快点,但也无妨。
重启: lsmod | grep nouveau # 查看有没有输出,如果没有任何信息输出,则说明ok

进入tty模式进行安装:
Ctrl+Alt+F1进入文本模式,Ctrl+Alt+F7返回图形界面模式(期间文本模式下的进度不会改变,还可一继续进入文本模式)

#输入账户名及密码
sudo  su #输入密码,以root权限运行
cd ~/  #    ~/ <=> /home/yourname/
sudo service lightdm stop # 关闭图形界面
#如果安装失败,重新打开图形界面sudo service lightdm restart 把刚刚加入黑免单的驱动删除重启就回到了原来的状态
sudo init 3 #这句官网有介绍,Switch to runlevel 3.
sudo sh cuda_10.1.105_418.39_linux.run  --no-opengl-files 
#–no-nouveau-check 安装驱动时不检查nouveau 
#后面两个参数可不加。

ubuntu16.04安装cuda10.1

注意:显卡驱动之前已经装过,这里不需要安装显卡驱动:ubuntu16.04安装cuda10.1
之前装过,选择覆盖之前的文件:
ubuntu16.04安装cuda10.1
安装成功:
ubuntu16.04安装cuda10.1
配置环境变量:

sudo gedit  ~/.bashrc 

在文件中加入:

export PATH=/usr/local/cuda-10.1/bin/:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64/ 

生效环境变量:

source ~/.bashrc

测试:

#编译并测试设备 deviceQuery:  
 cd /usr/local/cuda-10.1/samples/1_Utilities/deviceQuery  
 sudo make  
 ./deviceQuery  
      
 #编译并测试带宽 bandwidthTest:  
 cd ../bandwidthTest  
 sudo make  
 ./bandwidthTest  

Result = PASS 成功.

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值