显卡驱动作死录

在深度上看视频或浏览网页的时候显示总是有点问题,特别让我这个强迫症患者受不鸟的就是会出现撕裂的现象。(现在无法重现,有机会再上录屏)。我觉得可能是核显的问题(系统默认使用核显,但我的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来切换独显了,重启之后又可以,奇怪

相关链接

安装驱动教程关于bumblebeedeepin的构架设计

最重要的东西当然要放在最后

感谢在深度论坛以及深度百科上默默奉献的everybody:)


推荐阅读更多精彩内容