笔记本双显卡驱动及外接显示器的配置
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
3 / 3
To page
137******73
deepin
2020-08-02 03:50
#41
能不能请作者整理一下重新再发一遍,对于我们这种新手实在有点云里雾里,我按照正文的顺序安装,进不了系统,只好删了重新装系统。。。。,谢谢了。
Reply View the author
jfy_99
deepin
2020-08-02 16:06
#42
https://bbs.deepin.org/post/192750
能不能请作者整理一下重新再发一遍,对于我们这种新手实在有点云里雾里,我按照正文的顺序安装,进不了系统 ...

因为想讲得详细,这个帖子可能对新手不太友好……
步骤简化版:
1.商店下载显卡驱动管理器,切换成Intel默认驱动;
2.终端执行
  1. sudo apt install nvidia-driver nvidia-smi nvidia-settings
Copy the Code
然后重启;
3.下载双显卡切换脚本并运行。
如果出现问题,可以回头看看帖子,欢迎继续提问!
Reply View the author
deepin
2020-08-02 21:14
#43
支持,顶一下
Reply View the author
gongye0432
deepin
2020-08-02 22:07
#44
提示:No running processes found,是怎么回事呀?运行nvidia-settings 后,提示错误:unable to load info from any available system
怎么解决啊?求大神帮忙
Reply View the author
jfy_99
deepin
2020-08-03 00:06
#45
https://bbs.deepin.org/post/192750
提示:No running processes found,是怎么回事呀?运行nvidia-settings 后,提示错误:unable to load info ...

这种情况说明用的是核显,而独显没有工作。如果需要全局使用独显,可以下载帖子里的“双显卡切换脚本”并运行。
Reply View the author
gongye0432
deepin
2020-08-03 07:09
#46
https://bbs.deepin.org/post/192750
这种情况说明用的是核显,而独显没有工作。如果需要全局使用独显,可以下载帖子里的“双显卡切换脚本”并 ...

运行切换脚本后切换至独显成功,但是那个后面的错误
(nvidia-settings:12502): GLib-GObject-CRITICAL **: 16:28:01.329: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
(nvidia-settings:20662): GLib-GObject-CRITICAL **: 16:42:03.307: g_value_set_boxed: assertion 'G_VALUE_HOLDS_BOXED (value)' failedv
还是存在,不知道怎么回事,这个提示太恶心了,心力憔悴。。。
Reply View the author
jfy_99
deepin
2020-08-03 17:20
#47
https://bbs.deepin.org/post/192750
运行切换脚本后切换至独显成功,但是那个后面的错误
(nvidia-settings:12502): GLib-GObject-CRITICAL ** ...

这些错误貌似不影响正常使用,我这里也会出现同样的提示。从启动器中启动“NVIDIA X 服务器设置”,就不会看到了……
Reply View the author
munineswords
deepin
2020-11-06 03:53
#48

打不开设置,也无法卸载,怎么弄

Reply View the author
waynechard
deepin
2020-11-29 05:10
#49

您好,您这个脚本可以重新上传一份吗?下载解压显示文件受损。谢谢啦

Reply View the author
jfy_99
deepin
2020-12-01 20:33
#50
waynechard

您好,您这个脚本可以重新上传一份吗?下载解压显示文件受损。谢谢啦

新论坛暂时不能上传附件,把后缀改成 tar.gz 可以解压。只能先凑合一下……另外帖子作了一些更新。

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

重新下载了官方驱动,一切安装完美,能打开NVIDIA-SMI,只是不占内存,显卡不工作.
然后使用你的NVIDIA.SH,开机后如图,进不了图形界面,不知啥原因?

你所有问题我都有重现,唉 只能放弃n卡了。。。


Reply View the author
jntm666
deepin
2021-09-17 03:29
#52
jfy_99
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
3 / 3
To page