一个可以尝试的Nvidia Prime方案
Tofloor
poster avatar
risez
deepin
2020-04-16 22:18
Author
本帖最后由 risez 于 2020-10-2 20:01 编辑

提示:最下面有更新

Hello,各位大佬,今天刚注册账号,新人发贴,请多多关照。
正如标题所示,这个贴的主题是关于双显卡切换方案的,你可能认为我是来问Deepin的prime方案什么时候回归。但我是来告诉你们,其实Deepin已经有prime方案了,不,是所有的主流GNU/Linux发行版!而且还是官方方案,只是这个方案很少人知道,导致2020年还有些人在用老掉牙的bumblebee。Intel+Nvidia双显卡切换方案的噩梦已经结束了一半了。既然这么多人还在被老教程误导,总得有个人出来指正,可惜在我发贴之前,没见到类似贴子,可能是他们也不知道这个方案,那就我来说吧。
别再骂So, nvidia F**k you了,你应该说,Nvidia牛逼!经过本人简单移植测试,在Deepin v20 Beta上Prime方案运行成功!废话不多说,如果你迫切想结束噩梦,那就开始吧!但是我的方法有风险,不考虑清楚就胡乱照做后果自负!
测试平台:Deepin v20 Beta
要求:
turing架构的GPU(真自动切换,即不用时会自动关闭N卡),非turing架构(假自动切换,你会发现独显一直跑着xorg,以此来实现“自动切换”,目前本人已知pascal,maxwell架构可以使用该方案,欢迎大家测试)
NVIDIA版本:>=435.17(beta源已符合要求)
Xorg-server版本:>=1.20.6-1(beta源低于这个版本:1.20.4)
如果你之前安装过其它方案比如bumblebee,请在做下列步骤前全部卸载掉。

安装好系统后,首先更新你的系统,然后安装nvidia驱动:
  1. sudo apt install nvidia-driver nvidia-smi nvidia-settings
Copy the Code
安装过程中如果提示你禁用nouveau,那么安装完成后重启。这个过程如此简单大佬们都懂。
由于Xorg-server版本不符合要求,接下来需要添加源,终端执行:
  1. sudo nano /etc/apt/sources.list.d/debian.list
Copy the Code
然后添加进如下内容:
  1. deb http://mirrors.ustc.edu.cn/debian/ unstable main contrib non-free
Copy the Code
保存并退出,为了防止依赖关系混乱,还需要再执行:
  1. sudo nano /etc/apt/apt.conf
Copy the Code
往里面加入如下内容:
  1. APT::Default-Release "apricot";         #这么一来,除非你自己指定使用unstable源安装软件,否则apt是不会用的
Copy the Code
保存并退出。

接下来刷新你的源列表:
  1. sudo apt update
Copy the Code
升级Xorg-server:
  1. sudo apt -t unstable install xserver-xorg xserver-xorg-core #这条命令似乎不管用了(2020.7.13更新)
Copy the Code
升级完成后,还没完。安装这个包,使用dpkg -i:
  1. sudo dpkg -i nvidia-prime.deb
Copy the Code
下载并解压这个包,解压得到.deb包再安装(不是改后缀名!我把.deb包用tar命令给压缩了):


然后注销,重新登录,打开nvidia-settings,如果你是像下图那样显示,证明Prime已经在运作,大功告成。你可能会遇到一个提示,说要用nvidia-xconfig创建文件,不用管它。
如果因为某种原因,没有像上图那样显示,那么你需要在/etc/X11/xorg.conf中显式指定(参见Arch wiki):
  1. sudo nano /etc/X11/xorg.conf
Copy the Code
添加如下内容:
  1. Section "Device"
  2.   Identifier "iGPU"
  3.   Driver "modesetting"
  4. EndSection

  5. Section "Screen"
  6.   Identifier "iGPU"
  7.   Device "iGPU"
  8. EndSection

  9. Section "Device"
  10.   Identifier "dGPU"
  11.   Driver "nvidia"
  12. EndSection
Copy the Code
注销重登,Prime应该会运作了。如果还不行,请在配置文件中添加BUSID参数,具体方法参考Arch wiki。


有些应用会自动调用你的独显运行,比如虚幻4,如果没有,这么做:
  1. prime-run command        #使用prime-run运行软件
Copy the Code
以Blender为例:
  1. prime-run blender
Copy the Code
截图:
若要获得最佳游戏体验,这么做:
  1. export GAMEMODERUNEXEC=prime-run && gamemoderun command           #别忘了安装gamemode且版本必须>=1.3,小于这个版本参考gamemode官方                                                                                                                    #wiki
Copy the Code
比如我的世界(Minecraft):
  1. #一个创建脚本的示例
  2. #!/bin/bash
  3. PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin
  4. cd $HOME/Minecraft && export GAMEMODERUNEXEC=prime-run && gamemoderun java -jar $HOME/Minecraft/HMCL-3.2.149.jar
Copy the Code
如果你是用steam玩游戏的话,像古墓丽影9,它有可能识别不到你的显卡,你只需往启动参数设置粘贴如下内容,即可畅玩游戏:
  1. export GAMEMODERUNEXEC=prime-run && gamemoderun %command%
Copy the Code
实际上要想发挥极致性能还得安装一些软件包,这里就不说了,超出了主题范围。虽然Windows才是打游戏的最佳选择,但是我已经习惯在Linux上玩游戏了,我的是Linux单系统。而且能在Linux上打游戏可以获得统一的Linux桌面体验,不用切换来切换去了。

建议继续阅读这两个贴子:https://bbs.deepin.org/post/203224#
https://bbs.deepin.org/post/203227#

后记:
1.换源是一种非常危险的、破坏系统稳定的行为,所以我希望官方 https://bbs.deepin.org/user/48640 尽快将Deepin源的Xorg-server(习惯了Arch,我故意打错包名的,Debian包叫xserver-xorg)更新。
2.我是一名Arch Linux普通用户,之前我用过4年debian系发行版,不过现在Arch也用了快一年了,很多以前我在Debian上折腾过的操作都忘了,所以我只会一点简单的打包技术。
3.我最早知道Prime方案是在这里:
  1. https://wiki.archlinux.org/index.php/PRIME#PRIME_render_offload
Copy the Code
所以说,用Linux,英语不好,天天骂Nvidia,老黄两行泪。
我发现的关于Prime新方案讨论的贴子:
  1. https://bbs.deepin.org/post/191101#prime
Copy the Code
4.这个nvidia-prime包是我从Arch移植过来的,以前我就喜欢美化装逼,没心学技术,唉,只怪自己当初为何不好好静下心来学习,现在学艺不精,没法为社区做个大点的贡献,而且学习成绩一塌糊涂。
5.本人高三党,没有太多时间再搞这些技术了,昨天我看到v20 beta终于发布,激动得要死,搞得我作业都没做。现在没多少时间了,如果你在使用过程中遇到问题,比如屏幕撕裂,不要问我,自己动手,丰衣足食。感谢您的体谅与理解。
6.这个nvidia-prime移植包就由我来维护吧(搬运工),要是Arch那边更新了,我没注意到,大佬们就通知我一下,马上更新。算是为社区做了微小的贡献。这个包目前不会提交到Debian上游(我不知道怎么提交)。
7.其实这个包里面就只有几个配置文件,不过没人移植,可能是我没发现,那就让我来做吧。

--------------------------------------------------------------7.13更新-----------------------------------------------------------------
1.nvidia-prime包更新了,包里面只剩下一个文件,即/usr/bin/prime-run,甚至不需要之前版本的xorg配置文件了,请更新驱动到最新版本(450.57),防止出现问题。
2.虽然高考结束了,但关于显卡方面的问题,我还是有很多不懂的,希望大佬帮我解决一些楼下遇到的问题,我实在太菜了。
3.上面的方法具有时效性,现在部分解决依赖的步骤不管用了,但我相信深度仓库的包版本应该更新到满足依赖要求的版本了,我自己没有使用deepin,也不知道情况如何。4.新版的包直接把.tar.gz的后缀名删掉就可以安装了,之前打包旧版时不明白上传规则,就给压缩掉了。

更新的nvidia-prime包(为了防止有些人的电脑在更新后导致无法顺利进入桌面,上面的旧版保留了):
nvidia-prime.deb.tar.gz


Reply Favorite View the author
All Replies
4 / 4
To page
忘记、过去
Moderator
2020-08-07 09:45
#61
08.06更新后反馈一下......

比较不幸的是,xserver-xorg-core 版本依旧还是 1.20.4,估计和 Debian 上游版本有关系,只能接着等着了......

不过,楼主的 prime-run 我就先拿走了,这可是好东西,虽然 xserver 版本不支持 nvidia-prime,但可以先备用着。原来包里另一个配置文件可以整合到 xorg.conf,直接写在 Section "ServerLayout" 里面,可以减少麻烦。

希望官方能快点更新,不然白嫖来的显卡切换插件就没有啥实际作用了......
Reply View the author
风吹过的绿洲
deepin
2020-09-27 01:02
#62
***********************  升级之后带来许多问题  ***********************
出现库文件不兼容的情况很多

360万能播放器
交易侠
QtScrcpy

  1. /opt/apps/cn.360.360player/files/launch.sh: symbol lookup error: /opt/apps/cn.360.360player/files/librt.so.1: undefined symbol: __clock_nanosleep, version GLIBC_PRIVATE
Copy the Code
  1. /opt/apps/com.qtscrcpy/files/./QtScrcpy: symbol lookup error: /opt/apps/com.qtscrcpy/files/./lib/libbsd.so.0: undefined symbol: clock_gettime, version GLIBC_2.2.5
Copy the Code
Reply View the author
risez
deepin
2020-10-03 02:24
#63
https://bbs.deepin.org/post/191741
***********************  升级之后带来许多问题  ***********************
出现库文件不兼容的情况很多

这个与PRIME方案无关,由于精力有限没法帮你解决问题,你可以去反馈Bug给官方
Reply View the author
rison
deepin
2020-12-08 19:41
#64
wzxyisme
leonardo520 发表于 2020-4-16 15:38
我tm就会这一句英语 fk NVIDIA 你还不让我用。。。。

我再教你一句AMD yes!


就问你气不气哈哈哈哈

Reply View the author
浪云
deepin
2021-02-04 05:47
#65

E420有人做过吗/

Reply View the author
浪云
deepin
2021-02-04 05:50
#66

太难了

 

小白看不懂,有人可以手把手吗?

Reply View the author
白日梦想家
deepin
2023-07-03 21:08
#67
ritter
实话说,linux重度使用者超过90%都不会拿来玩游戏,所以linux系统的笔记本最好买AMD的独立显卡,官方驱动不仅开源效果好,还支持Wayland,虽然打游戏的确不如nvidia,但用着舒服还省电。

主要是cuda 深度学习 没法用amd显卡

Reply View the author
白日梦想家
deepin
2023-07-03 21:08
#68

安装一个小时没按上 g

Reply View the author
白日梦想家
deepin
2023-07-03 21:10
#69
rison


就问你气不气哈哈哈哈

同1650 能问一下怎么安装的吗

我照着上面安了半天没有安上

Reply View the author
4 / 4
To page