在深度上看视频或浏览网页的时候显示总是有点问题,特别让我这个强迫症患者受不鸟的就是会出现撕裂的现象。(现在无法重现,有机会再上录屏)。我觉得可能是核显的问题(系统默认使用核显,但我的pc是有独显的)于是。。。。。。。
开始作死
在驱动管理器安装独显的驱动,嗯~成功安装。然后忘了当时是咋想的,在图形界面重启了一下lightdm(显示管理器),后果就是瞬间黑屏,我强行重启,然而进不了登录界面(deepin-greeter)了。一系列的自我折腾后,成功登录桌面,继续折腾独显!这里我就直接引用深度论坛里的帖子了。
## Deepin 15.4 笔记本安装显卡驱动(I卡+N卡)
linux下有两种N+I双卡的方案,一个是ubuntu下的nvidia-prime,另一个就是debian下的bumblebee。目前deepin基于debian,而debian只打包了第三种bumblebee,所以只能用后者。
ubuntu的nvidia-prime如果要切换显卡,必须要重启X session,因为在X启动的时候nvidia的驱动模块就已经加载了,也就是说独显是一直在工作的。而debian采用bumblebee,开机加载的是intel的驱动,程序默认也都是用intel的集显,如果需要用独显要用optirun运行程序,这样能做到最大程度的提高电池续航能力。目前debian的nvidia-driver,nvidia-legacy-driver都是默认bumblebee解决双显卡,X启动时,驱动是intel,glx是mesa的glx,但是有些硬件可能会出现驱动是intel,glx却是nvidia的情况,这就会导致opengl的程序跑不起来,需要手动执行sudo update-alternatives --config glx来选择。
两种实现其实各有利弊,debian当前也没有打包prime的打算打包方式不同,debian这边没有打包适配prime的驱动,加prime支持要改东西太多,所以就只用大黄蜂了。
* 删除以往所有安装的驱动/大黄蜂
```
sudo apt remove --purge nvidia*
sudo apt remove --purge bumblebee*
```
* 打开驱动管理器,点击驱动进行安装
* 再确保安装一些相关软件
```
sudo apt-get install bumblebee-nvidia bumblebee primus
sudo apt-get install nvidia-driver nvidia-settings
```
* 检查驱动是否安装成功,安装mesa-utils这个包,用来显示系统的glx相关信息。用optirun调用独显输出系统的glxinfo来查看驱动是否安装成功。
```
sudo apt-get install mesa-utils
optirun glxinfo|grep NVIDIA
```
* 使用独显启动程序
```
optirun command #使用独显运行command程序
primusrun command #另外一种使用独显运行程序方法
optirun -b primus command #使用独显运行command程序,提升性能
```
* 可以安装 nvidia-smi,sudo nvidia-smi执行之,可以看到驱动已经安装,设备正常运转
* 测试 Bumblebee 是否支持你的 Optimus 系统:如果在终端中看到一个关于你的 Nvidia 的提示和齿轮,恭喜你,Bumblebee 和 Optimus 已经开始工作了。
```
optirun glxgears -info
```
* 执行 sudo lspci -v 可以查看到详细信息
* 在使用optirun命令开启独显前,可以使用lspci命令查看设备,可以看到独显最后的信息为(rev ff).ff代表设备关闭
使用optirun命令后,再次lspci,可以看到独显最后的信息为(rev a2),这代表独显已经正常使用了
* bumblebee配置下所有需要独显的操作都需要调用optirun或者primusrun.如果打开nvidia-settings时提示“You do not appear to be using the NVIDIA X driver”,在terminal中运行如下命令
```
optirun -b none nvidia-settings -c :8
```
这里解释一下上述命令.man optirun可以看到如下关于-b的信息
```
-b, --bridge METHOD
acceleration/displaying bridge to use. Valid values are auto, virtualgl and primus. The --vgl-* options only make sense
when using the virtualgl bridge, while the --primus-* options apply only when using the primus bridge. Additionally,
value none is recognized, and its effect is to add paths to driver libraries to LD_LIBRARY_PATH (useful for nvidia-set‐
tings and CUDA applications)
```
man nvidia-settings可以看到如下信息
```
-c CTRL-DISPLAY, --ctrl-display=CTRL-DISPLAY
Control the specified X display. If this option is not given, then nvidia-settings will control the display specified by '--dis‐
play' ; if that is not given, then the $DISPLAY environment variable is used.
```
由此可见-c后面跟的:8是屏幕显示的代码。查看bumblebee文件
```
sudo gedit /etc/bumblebee/bumblebee.conf
```
可以发现如下一段,由此可以解释上述命令了。
```
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
```
* 在steam中使用独显来运行游戏,在游戏上右键,set launch options中加入
```
optirun -b primus %command%
```
* 开机黑屏拯救方法
```
sudo apt remove --purge nvidia* //适用于安装了不正确的闭源驱动
sudo rm /etc/X11/xorg.conf //适用于生成了不正确的xorg.conf文件
sudo apt install xorg //适用于删除nvidia时误删了xorg
我按着上面的教程做……重启可以显示登录界面但无法输入密码又是什么情况T-T试着sudo apt install xorg,诶!成功登录!果然是删除nvidia时误删了xorg。
然后optirun glxinfo|grepNVIDIA,嗯驱动安装成功,optirun glxgears -info,显示小齿轮动画,可以愉快地使用optirun命令调用独显运行程序了,感觉显示效果好了不少 ;)
*TIPS*
有时因为界面跳的太快进不了tty的时候,可以开机选择“Advanced options for *****”这一行按回车,然后选中最后是“(recovery mode)”这一行按“E”进入编辑页面,把ro改成rw,按F10,然后进入root shell。
不知是不是我个人的问题,如果待机后再登录就无法使用optirun来切换独显了,重启之后又可以,奇怪
相关链接
安装驱动教程 ,关于bumblebee ,deepin的构架设计
最重要的东西当然要放在最后
感谢在深度论坛以及深度百科上默默奉献的everybody:)
网友评论