【Ubuntu】Ubuntu16.04下WPS演示閃退
1 問題描述
Ubuntu16.04在更新了NVIDIA驅動之後,出現WPS演示閃退的問題。
在命令列執行WPS演示:
$ cd /opt/kingsoft/wps-office/office6
$ ./wpp
得到的錯誤資訊如下:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Critical: Errors linking simple shader: ""
Critical: Errors linking blit shader: ""
段錯誤 (核心已轉儲)
可能是沒有使用NVIDIA驅動的libGL庫導致的。
2 刪除/usr/lib/i386-linux-gnu/mesa/libGL.so.1
如果使用nvidia驅動程式,有時會看到libGL.so.1指向由mesa和NVIDIA提供的模糊libGL(即有多個libGL)。執行如下命令測試:
$ sudo ldconfig -p | grep -i gl.so
輸出如下:
...
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
...
可以看到有mesa提供的libGL.so.1,也有NVIDIA提供的。
現在只需要移除mesa提供的libGL.so.1,就可以恢復正常:
$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1
上面的方法是別人提供的,我照做了,但是問題仍然沒有解決,因為我的連結不是多了libGL.so.1,而是多了libGL.so,如下所示:
...
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-384/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-384/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64) => /usr/lib/nvidia-384/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-384/libGL.so
...
可是我沒有刪除/usr/lib/x86_64-linux-gnu/libGL.so,因為我不敢 ?,所以我採用了以下方法,重定向/usr/lib/x86_64-linux-gnu/libGL.so。
3 重連結/usr/lib/x86_64-linux-gnu/libGL.so
先找到libGL.so的位置(其實不必要):
$ locate libGL.so
然後備份libGL.so,再重新建立連結,指向NVIDIA的libGL.so:
$ sudo mv /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGL.so.bak
$ sudo ln -s /usr/lib/nvidia-352/libGL.so.352.63 /usr/lib/x86_64-linux-gnu/libGL.so
這樣就可以了,我的問題就得到了解決。不需要重新建立libglx.so的連結,也不需要注意迴圈登入問題。
不過之前我參考該部落格一步一步執行,說是要那樣做才不會出現迴圈登入問題,我照做了最後卻出現了迴圈登入的問題,害得我重新安裝了NVIDA驅動、CUDA和cuDNN,差點就想重灌系統了,後來檢視了錯誤報告,如下:
$ vim ~/.xsession-errors
然後根據裡面的錯誤資訊正確解決了迴圈登入問題。
4 重複登入
重新安裝NVIDIA驅動後出現了重複登入的問題,最後根據資料和自己的理解,找到了解決方法,如下所示:
sudo rm /usr/lib/x86_64-linux-gnu/libGL.so.1
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGL.so.1
其實就是參考的部落格中把libGL.so.1和libGL.so的順序搞錯了。
5 總結
正確的操作步驟應該是:
- 先檢視自己的系統中是libGL.so多了,還是libGL.so.1多了
- 根據實際情況修改或刪除多出來的libGL.so或libGL.so.1
- 修改還是刪除,自己決定,但是千萬記得備份
6 參考
相關文章
- ubuntu16.04 下安裝mysqlUbuntuMySql
- ubuntu16.04下如何截圖Ubuntu
- Ubuntu16.04下安裝gtsam-3.2.1Ubuntu
- UBuntu16.04下安裝Docker(親測)UbuntuDocker
- ubuntu16.04下安裝NS3.27UbuntuS3
- ubuntu16.04系統下安裝dockerUbuntuDocker
- Keil閃退
- ubuntu16.04下的MySQL離線安裝UbuntuMySql
- Linux下的使用(以ubuntu16.04為例)LinuxUbuntu
- win10 matlab閃退,黑框閃一下解決辦法_win10 matlab閃退,黑框閃一下怎麼修復Win10Matlab
- Ubuntu 安裝WPSUbuntu
- ubuntu16.04安裝rosUbuntuROS
- 安裝kalibr Ubuntu16.04Ubuntu
- ubuntu16.04 lamp https配置UbuntuLAMPHTTP
- ubuntu16.04 找回密碼Ubuntu密碼
- [已解決]Mac下Anaconda-Navigator閃退問題Mac
- ubuntu wps odbc 連線sqliteUbuntuSQLite
- Node線上部署(Ubuntu16.04)Ubuntu
- ubuntu16.04 搭建java 環境UbuntuJava
- ubuntu16.04 CUDA, CUDNN 安裝UbuntuDNN
- Ubuntu16.04安裝、使用typoraUbuntu
- Ubuntu16.04 flask + nginx + uWSGI 部署UbuntuFlaskNginx
- ubuntu16.04搭建java環境UbuntuJava
- ubuntu16.04 root 初始密碼Ubuntu密碼
- ubuntu16.04 搭建java 環境UbuntuJava
- win10redis閃退Win10Redis
- Ubuntu16.04下安裝破解secureCRT和secureFX的操作記錄UbuntuSecurecrt
- Ubuntu16.04下使用rdesktop命令遠端連線windows機器UbuntuWindows
- Ubuntu18.04安裝wps officeUbuntu
- Ubuntu16.04橋接下配置固定IPUbuntu橋接
- Ubuntu16.04下安裝CUDA9.0和CUDNN7.0填坑UbuntuDNN
- windows10 edge閃退怎麼辦_windows10 edge瀏覽器閃退修復Windows瀏覽器
- windows10圖示閃退怎麼辦_win10圖示閃退解決方法WindowsWin10
- win10 media player閃退怎麼辦_win10 media player閃退解決方法Win10
- win10 mysql閃退怎麼解決_解決win10 mysql閃退問題Win10MySql
- win10玩cf閃退如何解決_window10玩cf閃退怎麼辦Win10
- wegame閃退怎麼解決 wegame閃退打不開多種解決方法介紹GAM
- PS 2021外掛nik collection 閃退怎麼辦,Nik Collection崩潰閃退解決方法