[Topic DIscussion] Deepin(Linux)双显卡之bumblebee(大黄蜂)、Prime及手动切换方案
Tofloor
poster avatar
black-hole
deepin
2021-01-17 21:27
Author

💡 本文重点讲解最新的 Prime 使用方案,本文中所有有不懂的地方,可以详细看一下本文下面的参考文献

📱 所使用系统:Deepin V20.1

💻 笔记本显卡:集显 + NVIDIA RTX2060

方案一:大黄蜂

1. 直接使用深度显卡驱动管理器里面的大黄蜂方案,如果不成功可以尝试手动实现下面的两种大黄蜂方案,不过成功几率不高,不想尝试的可直接跳到Prime方案

2. 两个方案分别为:开源驱动Bumblebee、系统集成闭源驱动Bumblebee(其实只有一行代码不同)

#安装独立显卡驱动
ctrl+Alt+F2进入tty2模式,然后登录。
#关闭登录管理器服务,停止lightdm服
sudo systemctl stop lightdm
#不管有无驱动建议先卸载掉旧版驱动
sudo apt-get remove --purge nvidia*
#安装console-setup
sudo apt-get install console-setup
#安装nouveau驱动,primus是可选项用于提升性能,nvidia-settings用于图形化界面的设置。
sudo apt-get install bumblebee primus nvidia-settings
#如果使用闭源nvidia驱动则使用下面的代码,记得把前的#号去掉
#sudo apt-get install bumblebee-nvidia nvidia-driver nvidia-settings
#验证驱动是否安装成功
sudo apt-get install mesa-utils
#注:安装mesa-utils这个包,用来显示系统的glx相关信息。
optirun glxinfo|grep NVIDIA
#查看对应bumblebee版本
bumblebeed --version
#当您看到的bumblebeed版本是3.2.1的时候,恭喜您,你的电脑是自带电源管理功能开箱即用,不需要进行任何设置。
#在安装nvidia-settings后,我们可能通过以下命令设置独显或查看独显温度。
optirun nvidia-settings -c :8

因为我没有成功且本方案不是本文重点,所以其他详细内容如成功后如何调用独显等可以查看参考文献 1。

方案二:Prime

⚠ 使用此方案的前提(来自参考文献):①专有NVIDIA驱动版本:>=435.17;②Xorg-server版本:>=1.20.6-1(查看版的命令 sudo X -version,我的版本是1.20.4,虽然低于要求但可以使用此方案),想要升级版本的请参考文献 3,不过我不建议升级,因为几乎不能升级成功,就算成功了系统稳定性会是极大的问题。

1. 在安装系统的时候勾选安装NVIDIA闭源驱动(deepin20版本会有此选项,15版本是没有的)

2. 安装集显驱动:安装好系统后下载深度显卡驱动管理器,一般情况显示勾选的是第一项(使用Inter默认驱动),说明已经安装了Inter驱动,如果默认是第二项开源驱动,则则需要手动切换为第一项然后重启系统,如果无法切换至第一项则需手动安装集显,详细安装步骤请移步参考文献 2.

3. 下载官方NVIDIA闭源驱动,如果是笔记本在产品系列里面选有(Notebooks)的,下载后是后缀为run的文件,我的是:NVIDIA-Linux-x86_64-460.32.03.run

4. 安装独显驱动:

①禁用开源nouveau驱动

sudo vim /etc/modprobe.d/blacklist-bcm43.conf
#在文件末尾加上这两行
blacklist nouveau
options nouveau modeset=0
#再执行以下两条命令,从内核彻底禁用nouveau驱动并重启
sudo update-initramfs -u
sudo init 6
#重启后,执行以下命令,如果没有输出,说明nouveau已经被禁用
lsmod | grep -i nouveau

②安装驱动

#按下快捷键“Ctrl+Alt+F2”,进入tty2,然后登录系统,关闭登录管理器服务(简单理解就是关闭图形界面)
sudo systemctl stop lightdm
#卸载旧驱动(这样就将开源、闭源驱动都卸载了)
sudo apt-get remove --purge nvidia*
#赋予可执行权限
chmod u+x NVIDIA-Linux-x86_64-460.32.03.run
#安装驱动文件,安装过程装中两个选项的选yes,一个的选ok,三个的选over,注意在进度条走完后的两个选项,选no
sudo ./NVIDIA-Linux-x86_64-460.32.03.run
#配置启动脚本,新建一个display_setup.sh
sudo vim /etc/lightdm/display_setup.sh
#内容如下:
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
#然后赋予权限
sudo chmod +x /etc/lightdm/display_setup.sh
#然后在lightdm里配置启用这个脚本
sudo vim /etc/lightdm/lightdm.conf
#找到 display-setup-script这一行,去掉前面的注释,将display_setup.sh这个文件地址填进去
display-setup-script=/etc/lightdm/display_setup.sh
#重启系统
shutdown -r now
#重启之后使用以下命令检查是否安装成功,如果成功会有内容显示
nvidia-smi

显示如下内容,说明独显安装成功

在启动器里面可以看到自动安装好的NVIDIA X server settings程序,如果输入命令后显示上面图片的内容但此程序无法打开说明独显处于待机状态;如果此程序可以打开说明独显已经进入工作状态

独显彻底关闭时,则显示为如下内容

5. 安装nvidia-prime

下载nvidia-prime,双击安装,然后使用如下命令进行配置,配置后需要重启生效

#选择Intel显卡(此方案将彻底关闭N卡,为节能模式)
sudo prime-select intel
选择NVIDIA显卡(此方案默认使用集显,且独显处于待机状态自动键入,为平衡模式)
sudo prime-select nvidia
查看正在运行的方案
prime-select query

nvidia-prime程序不能使用的可以试一试不同的版本,在我这里0.8.15.2版本的就不可以用,0.8.15.1版本却是可以用的

方案三:手动切换

⚠ 慎用次方案,因为次方案的配置文件在不同的电脑会出现不同的缺陷

前面的步骤与方案二的相同,在第 5 步,只进行显卡的配置,不安装nvidia-prime

#首先执行以下命令,查看显卡的BusID
lspci | egrep -i 'VGA|3D'
#输出如下,其中00:0.20是Intel集显,对应的BusID为0:2:0;01:00.0是Nvidia独显,对应的BusID为1:0:0
00:02.0 VGA compatible controller: Intel Corporation Device 9bc4 (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f15 (rev a1)
#以下是配置文件,需要填写到/etc/X11/xorg.conf,注意修改自己的BusID

启用双显卡,集显为默认显卡配置如下:(此配置文件在我这里表现为集显与独显同时工作,会引发个别软件画面的撕裂及横纹)

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "intel"
    Screen 1 "nvidia"
EndSection

Section "Device"
    Identifier "intel"
    Driver "intel"
    BusID "0:2:0"
    Option "AccelMethod" "SNA"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "1:0:0"
    Option "ConstrainCursor" "off"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
    Option "IgnoreDisplayDevices" "CRT"
EndSection

启用双显卡另一种配置如下:(此配置文件在我这里会使独显待机集显工作,但却无法唤醒独显进行工作)

Section "Device"
  Identifier "iGPU"
  Driver "modesetting"
  BusID "PCI:0:2:0"
EndSection
 
Section "Screen"
  Identifier "iGPU"
  Device "iGPU"
EndSection
 
Section "Device"
  Identifier "dGPU"
  Driver "nvidia"
  BusID  "PCI:1:0:0"
EndSection

启用独显,屏蔽集显的配置如下:(此配置文件在我这里会屏蔽集显,但却无法唤醒独显进行工作,所以开机进入系统后会黑屏,此时需要按下快捷键“Ctrl+Alt+F2”,进入tty2,删除配置文件)

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "Card0"
    Driver "nvidia"
    BusID  "PCI:1:0:0"
EndSection

启用集显,屏蔽独显的配置如下:(此配置文件在我这里会使独显彻底关闭集显工作,但个别软件画面会出现横纹或撕裂原因不明)

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "Card0"
    Driver "intel"
    BusID "PCI:0:2:0"
EndSection

📃 参考文献:

1. https://www.jianshu.com/p/2ec26406c473

2. https://www.jianshu.com/p/924c86a0859c

3. https://blog.csdn.net/qq_43325034/article/details/106440428

4. https://blog.blankshell.com/2020/07/08/deepin%E9%85%8D%E7%BD%AEintelnvidia%E5%8F%8C%E6%98%BE%E5%8D%A1/

5. https://www.jianshu.com/p/ff4847c138df

6. https://zhuanlan.zhihu.com/p/165158820

 

Reply Favorite View the author
All Replies
风吹过的绿洲
deepin
2021-01-17 23:13
#1

之前用的手动方案,还是可以的,加上社区的显卡切换软件,挺好用的。我现在还是在用集显,独显有的软件有撕裂,集显没任何问题。

Reply View the author
WENWEN
deepin
2021-01-18 16:52
#2

什么时候显卡驱动管理器能够增强就好了。

Reply View the author
dufengming2008
deepin
2021-01-18 17:07
#3

 

Reply View the author
black-hole
deepin
2021-01-18 18:48
#4
风吹过的绿洲

之前用的手动方案,还是可以的,加上社区的显卡切换软件,挺好用的。我现在还是在用集显,独显有的软件有撕裂,集显没任何问题。

我也发现了会有这样的问题出现,经过排查是配置文件的问题,使用prime方案并不需要配置文件,文章已经经过修改;但手动切换方案的配置文件还是会有各种缺陷,既然你那里的集显配置文件正常,方便发出来看一下吗

Reply View the author
风吹过的绿洲
deepin
2021-01-20 06:29
#5
black-hole

我也发现了会有这样的问题出现,经过排查是配置文件的问题,使用prime方案并不需要配置文件,文章已经经过修改;但手动切换方案的配置文件还是会有各种缺陷,既然你那里的集显配置文件正常,方便发出来看一下吗

默认就是集显不需要配置的。显卡切换软件脚本给你弄好了,不需要关心配置啦

Reply View the author
purewhiter
deepin
2021-01-26 05:09
#6

设置完成重启后,笔记本屏幕不显示图像了,只有外接屏幕能显示图像,集成显卡也检测不到了

Reply View the author
black-hole
deepin
2021-02-17 19:25
#7
purewhiter

设置完成重启后,笔记本屏幕不显示图像了,只有外接屏幕能显示图像,集成显卡也检测不到了

你用的哪个方案,出现你这种问题最大的可能是集显被屏蔽了,只有独显在工作,首先在BIOS里面设置为混合显卡模式,开机后ctrl+Alt+F2进入tty2模式,然后登录,执行sudo prime-select intel,重启系统应该就好了

Reply View the author
tangch
deepin
2021-03-12 22:46
#8

感谢楼主分享,搞了好长时间终于好了。

另外分享下启用独显,屏蔽集显的配置(楼主的手动切换),目前还没发现什么问题:

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
EndSection

修改好后重启lightdm

sudo systemctl restart lightdm

所有的应用都走独显了,最终效果如下:

Reply View the author
墨染
deepin
2021-06-14 05:57
#9

Section "Module"

    Load "modesetting"

EndSection

Section "Device"

    Identifier "nvidia"

    Driver "nvidia"

    BusID "PCI:1:0:0"

    Option "AllowEmptyInitialConfiguration"

EndSection

 

这个可以用NVIDIA的驱动

Reply View the author
☃☂
deepin
2021-10-13 22:36
#10

谢谢,用你的办法装好了大黄蜂,在

Reply View the author
王猛龙
deepin
2022-03-31 06:04
#11

image.png

请问这个方式就是你说的 大黄蜂第二种方式吗?

Reply View the author