笔记本双显卡驱动及外接显示器的配置
Tofloor
poster avatar
jfy_99
deepin
2020-04-24 18:10
Author
大家好,这里是又一个介绍笔记本双显卡的帖子,讲的是常见的 Intel 核芯显卡 + NVIDIA 独立显卡的组合。另外,还会从外接显示器的角度比较一些驱动方案,供大家参考。

首先,我们需要了解笔记本双显卡和屏幕的连接方式。
1. 内置显示器常与核显相连,除了少数使用台式机主板的笔记本可以在 BIOS 中禁用核显,大部分笔记本内置显示器的信号都由核显输出。
2. 笔记本还配有信号输出接口,如 HDMI、DP 接口等。这里有两种连接方式:连接核显或连接独显。如果接口与独显相连,常常会出现外接显示器无信号的情况,这时需要手动配置驱动。

然后看一看深度显卡驱动管理器中的方案:

1. Intel 默认驱动
也可以叫做 Intel 开源核显驱动,能很好地集成在 linux 内核中,兼容性较好。使用核显的好处是省电,并且硬件加速视频解码的能力强,用于浏览网页、看视频已经足够。因此个人建议,新装的系统应该首先切换至 Intel 默认驱动,再根据需求决定是否安装独显驱动。
遗憾的是,linux 平台上的浏览器基本不支持硬解,比如 chromium 需要使用 vaapi 补丁版(见这个Ubuntu PPA),这里先不展开讲了。
当然,对于独显连接输出接口的笔记本电脑,仅使用 Intel 默认驱动是无法连接外接显示器的。

2. 开源驱动
由社区开发的 N 卡开源驱动,名称叫做 nouveau。双显卡笔记本安装新系统后,这是显卡驱动管理器中的默认方案。如其中所说,开源驱动性能较弱,并且对新显卡、新特性支持不完善。因为没有认真体验过,所以就不多加评论了……

3. 大黄蜂方案
一个比较老的方案,安装时会自动安装 NVIDIA 官方闭源驱动。在不用时会将独显断电,需要使用时在终端中输入 optirun 或 primusrun 加命令以启用独显。这是一个方便且省电的方案,但有一定性能损失。注意:大黄蜂方案与下面所述的手动配置方案是互斥的,如果要手动配置,请不要切换至大黄蜂方案。
那么使用 optirun 启用独显后,能否连接外接显示器呢?如果不做特殊的设置是不行的。可以参考大黄蜂方案的 wiki 进行配置,但是我没有成功……因此个人建议使用手动配置方案,可能比这个更简单。

接下来介绍的是 deepin 20 中的手动配置方案,需要用到终端。不过我相信按照步骤一步步来,还是不困难的。
1. 直接安装 NVIDIA 闭源驱动
论坛里已经有不少介绍安装闭源驱动的方法,这里提供我个人的建议:不建议到 NVIDIA 官网下载驱动,而尽量使用软件源内提供的版本,配置更方便。
在显卡驱动管理器切换到 Intel 默认驱动后,打开终端,输入以下命令
sudo apt install nvidia-driver nvidia-smi nvidia-settings
这条命令依次安装的是 NVIDIA 较新版本驱动、命令行信息显示工具和图形界面的配置工具。sudo 是使用管理员权限,需要输入登录密码,注意密码字符是不显示在屏幕上的,输入完成后回车即可。安装过程中可能会提示内核模块冲突,这是正常的,确认后继续安装,完成后重启即可。
对于较旧的显卡,需要使用较早的驱动。请前往 NVIDIA 官网,依次点击长寿命分支、传统 GPU 驱动,查看产品支持列表。
按照官网给出的产品支持列表,GeForce 600 系列以前及部分较新的显卡,应该安装 390 系列驱动。打开终端,输入以下命令,安装 390 版本驱动。
sudo apt install nvidia-legacy-390xx-driver nvidia-legacy-390xx-smi nvidia-settings-legacy-390xx
对于 GeForce 400 系列以前及部分较新的显卡,应该安装 340 系列驱动。深度软件仓库中的 340.107 驱动可能较旧,建议从 debian stable 软件源安装新版本。使用以下命令:
echo 'deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free' | sudo tee -a /etc/apt/sources.list
echo 'APT::Default-Release "apricot";' | sudo tee -a /etc/apt/apt.conf
sudo apt update
sudo apt install -t buster nvidia-legacy-340xx-driver nvidia-legacy-340xx-smi nvidia-settings-legacy-340xx
第1行:使用中科大提供的 debian stable 镜像源,在国内下载速度快很多,也可以换成其他镜像源。
第2行:将深度软件源设置为默认。
第3行:更新软件包列表。
第4行:安装 NVIDIA 340.108 驱动。
安装好了 NVIDIA 驱动,独显会保持通电状态,一些软件已经可以自动调用独显。当然通常独显是不工作的,“NVIDIA X 服务器设置”也无法打开。
可以预料,在 Intel 默认驱动上直接安装 NVIDIA 驱动是无法连接外接显示器的,因为独显默认不工作。接下来需要手动切换显卡以开启独显。

2. 双显卡的手动切换方案
来自管理员 aida 的帖子,我把步骤写成了脚本,便于经常切换。解压压缩包,运行 NVIDIA.sh 切换至独显,运行 Intel.sh 切换至核显。
双显卡切换脚本.tar.gz
注1:脚本里添加了防撕裂的内核参数,需要 370.23 以上版本的驱动支持,重启才能生效。
注2:脚本里的命令与 aida 帖子里的步骤稍有不同,它创建的是 /etc/X11/xorg.conf.d/20-nvidia.conf 而不是 /etc/X11/xorg.conf,以避免切换核显时删除 xorg.conf。
这个方案将完全使用独显渲染,性能高但能耗大。打开“NVIDIA X 服务器设置”可以看到左侧许多 X Server 的设置,说明显示服务器 X Server 是工作在独显上的,此时外接显示器应该有信号了。


3. NVIDIA-prime 方案
参考 risez 的帖子,是 NVIDIA 官方提供的双显卡切换方案,类似于大黄蜂方案,但性能应该会更好。测试发现可以与上述手动切换方案共存,即运行 Intel.sh 切换至 prime 方案,运行 NVIDIA.sh 切换至独显渲染状态。我想这个方案今后将会成为主流,但目前在 deepin 20 中使用需要升级系统底层(如 libc6),可能影响系统的稳定性。
注意下图中“NVIDIA X 服务器设置”中的界面,X server 的设置项不见了,虽然能识别外接显示器,但信号无法输出。

以上是我根据个人经验总结的双显卡方案,对于独显连接输出接口的笔记本,暂时只有手动切换的方案可以正常外接显示器。新人发帖,请大家批评指正,如果有更好的方案欢迎一起分享!
Reply Favorite View the author
All Replies
1 / 3
To page
sadenyv
deepin
2020-04-24 21:24
#1
请问在终端中打开后,这个密码输入不上,就像键盘失灵一样是什么原因啊
Reply View the author
Comments
chichuyaojiatang
2022-01-15 04:13
终端密码不显示位数 输入完后直接敲回车
l17es
2020-04-25 01:43
????????????
manton94
deepin
2020-04-24 21:55
#2
https://bbs.deepin.org/post/192750
请问在终端中打开后,这个密码输入不上,就像键盘失灵一样是什么原因啊

密码是不显示的,输入完成回车就行了
Reply View the author
刘大壵
deepin
2020-04-25 00:32
#3
挺实用的
Reply View the author
jfy_99
deepin
2020-04-25 06:02
#4

感谢支持!
Reply View the author
152******14
deepin
2020-04-25 18:12
#5
https://bbs.deepin.org/post/192750
请问在终端中打开后,这个密码输入不上,就像键盘失灵一样是什么原因啊

这个密码本身就不显示,你输入完毕之后 回车就行。
Reply View the author
子非鱼,焉知鱼之乐
deepin
2020-04-25 19:24
#6
之前没有用过Linux的系统吗? 终端里面输入密码是不显示任何字符的,可以DIY配置显示*号,方法自行百度
Reply View the author
qwers
deepin
2020-04-25 20:51
#7
本帖最后由 qwers 于 2020-4-25 14:19 编辑

按照楼主的方法出现了错误,帮忙看看,N卡是525M
Reply View the author
jfy_99
deepin
2020-04-25 21:30
#8
https://bbs.deepin.org/post/192750
“nvidia-legacy-390xx-driver”,问下XX应该怎么查询,直接输入XX,显示无法定位

非常抱歉……390版本的最新驱动还没有进入buster-backports软件源,是我疏忽了。而且nvidia-smi和nvidia-settings的软件包名也不对,需要修改一下。
试试以下命令:
  1. sudo apt install nvidia-legacy-390xx-driver nvidia-legacy-390xx-smi nvidia-settings-legacy-390xx
Copy the Code
Reply View the author
qwers
deepin
2020-04-25 22:27
#9
按照这个命令运行后,sudo apt install nvidia-legacy-390xx-driver nvidia-legacy-390xx-smi nvidia-settings-legacy-390xx,出现好多错误
Reply View the author
jfy_99
deepin
2020-04-25 23:16
#10
https://bbs.deepin.org/post/192750
按照楼主的方法出现了错误,帮忙看看,N卡是525M

从拍照的输出来看很像是装过大黄蜂方案,它会让NVIDIA驱动无法启动。需要进入Live系统,按照压缩包里的Intel.sh(或参照aida的帖子),反向操作一次并重启。如果能进入主系统,执行
  1. sudo apt purge bumblebee*
Copy the Code

卸载大黄蜂,然后看能不能切换。
Reply View the author
jfy_99
deepin
2020-04-25 23:25
#11
https://bbs.deepin.org/post/192750
按照这个命令运行后,sudo apt install nvidia-legacy-390xx-driver nvidia-legacy-390xx-smi nvidia-settin ...

这个错误很奇怪,好像是编译出错了。中间一行说要查看一个make.log,里面应该有详细的错误信息。
Reply View the author
qwers
deepin
2020-04-26 03:38
#12
https://bbs.deepin.org/post/192750
这个错误很奇怪,好像是编译出错了。中间一行说要查看一个make.log,里面应该有详细的错误信息。 ...

重新下载了官方驱动,一切安装完美,能打开NVIDIA-SMI,只是不占内存,显卡不工作.
然后使用你的NVIDIA.SH,开机后如图,进不了图形界面,不知啥原因?
Reply View the author
jfy_99
deepin
2020-04-26 05:31
#13
https://bbs.deepin.org/post/192750
重新下载了官方驱动,一切安装完美,能打开NVIDIA-SMI,只是不占内存,显卡不工作.
然后使用你的NVIDIA.SH,开 ...

好尴尬……这种情况我没遇到过,也不知道是什么原因。我猜是N卡没能正常开启,脚本又让各个服务运行在N卡上,然后就进不了图形界面。可能是脚本有漏洞,某一步没有正常执行。
如果能找到脚本所在的目录,请运行Intel.sh回退这些操作,然后按管理员aida的帖子手动配置。如果配置成功,欢迎分享经验。抱歉给你带来麻烦了!
Reply View the author
jfy_99
deepin
2020-04-26 05:44
#14
看了一下NVIDIA 390.132驱动的发行说明,里面修复了在5.4.0内核上的编译错误。Deepin 20 Beta的内核是5.3,不知道会不会也有这个错误。如果是这样,那么安装软件源内的390.116驱动可能就会报10楼那样的错误,只能去官网下载最新驱动安装了。
Reply View the author
qwers
deepin
2020-04-26 06:02
#15
https://bbs.deepin.org/post/192750
好尴尬……这种情况我没遇到过,也不知道是什么原因。我猜是N卡没能正常开启,脚本又让各个服务运行在N卡 ...

不知道是哪的配置有问题,手工设置过一样没成功.
只能将N卡官方驱动卸载,才能启动进入图形界面.
目前只能闲置N卡了.
期待以后版本能解决吧!
Reply View the author
jfy_99
deepin
2020-04-26 06:18
#16
https://bbs.deepin.org/post/192750
不知道是哪的配置有问题,手工设置过一样没成功.
只能将N卡官方驱动卸载,才能启动进入图形界面.
目前只能闲 ...

感谢你的回复,解决显卡驱动这个老大难问题只能在曲折中前进……
Reply View the author
忘记、过去
Moderator
2020-05-05 05:12
#17
楼主的脚本好厉害,这次长见识了......不过我之前有改好的xorg.conf,就把intel脚本简化成把xorg.conf改名为xorg.conf.bak这样了,还原起来也很容易。而且不需要删除display_setup.sh,直接在lightdm.conf里面注释掉这个脚本的调用语句就好了。

唯一有问题的就是楼主说的第三个,我的笔记本是HD630+GTX1050,实测在安装nvidia-prime之后,是没办法直接用NVIDIA.sh切换回N卡独立渲染的,窗口特效无法开启,图标部分反色,调用独显的应用程序闪退。只有卸载掉nvidia-prime重新登录后才恢复正常......可以考虑在NVIDIA.sh脚本加上sudo apt --purge nvidia-prime卸载命令。就是Intel.sh怎么把nv-prime装回去就要自己改路径了......不知道是不是因为我nvidia-prime没有配置好的原因......
Reply View the author
jfy_99
deepin
2020-05-05 16:37
#18
https://bbs.deepin.org/post/192750
楼主的脚本好厉害,这次长见识了......不过我之前有改好的xorg.conf,就把intel脚本简化成把xorg.conf改名 ...

非常感谢!
我一开始的想法和你差不多,第一次配置后只需要修改xorg.conf和lightdm.conf就好了。后来想到要发给大家一键使用,就得完成第一次配置,于是现学现卖写了这个脚本。没有经过严格的测试,如果有漏洞欢迎指出。
关于手动切换和prime方案的共存,抱歉没有仔细研究过。看描述是独显没有运行,可以先检查一下脚本中涉及的配置文件是否正确。另外大黄蜂方案完全关闭独显,会导致手动切换和prime方案失败,所以要彻底删除大黄蜂方案的配置文件。并且除脚本和prime安装包的内容外,无需在/etc/X11、/usr/share/X11、/etc/lightdm中添加其他内容。
顺便说说另一个帖子里的问题:根据我的测试结果,使用prime-run时浏览器确实无法运行在独显上,包括Chrome和Firefox,都会回退到CPU渲染,只有手动切换到独显时才能使用GPU渲染。(其实核显跑浏览器还不错……)其他问题应该是独显没有正常驱动。
期待你的问题能够解决!
Reply View the author
忘记、过去
Moderator
2020-05-06 10:42
#19
本帖最后由 zty199 于 2020-5-6 02:50 编辑
https://bbs.deepin.org/post/192750
非常感谢!
我一开始的想法和你差不多,第一次配置后只需要修改xorg.conf和lightdm.conf就好了。后来想到 ...

感谢提醒......经过了穷举法测试后总算找到哪里出问题了......
xorg.conf里面我定义了两个Screen,核显和独显各一个,在Layout里面根据identifier名字指定了screen。结果实际上切换回独显渲染时,指定的screen部分参数似乎没有正确识别,核显我设置的30位色深,而n卡只支持24位,所以造成了这个问题......把色深统一为24为就没问题了。所以果然还是n卡的锅......
Reply View the author
jfy_99
deepin
2020-05-06 15:27
#20
https://bbs.deepin.org/post/192750
感谢提醒......经过了穷举法测试后总算找到哪里出问题了......
xorg.conf里面我定义了两个Screen, ...

能找出原因真是太好了。其实我没有折腾得这么深入,比如自行定义xorg的配置……
Reply View the author
1 / 3
To page