一个可以尝试的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
1 / 4
To page
jingle
deepin
2020-04-16 22:26
#1
感谢分享
Reply View the author
ritter
deepin
2020-04-16 22:37
#2
你的GTX 1050就是pascal的,装了驱动也不会自动关闭N卡。GTX16**系列才是turing,RTX系列也是turing。
Reply View the author
risez
deepin
2020-04-16 22:41
#3
ritter replied at 2020-4-16 14:37
你的GTX 1050就是pascal的,装了驱动也不会自动关闭N卡。GTX16**系列才是turing,RTX系列也是turing。 ...

好吧,我不知道我的也是pascal。不过这个方案是目前为止最好的方案了
Reply View the author
zhoulang_rr
deepin
2020-04-16 22:44
#4
NBBBBBBBBBBBBB!  马上折腾。 英伟达 1650
Reply View the author
Comments
msan
2020-05-15 07:58
同1650你折腾的咋样了
zhoulang_rr
deepin
2020-04-16 22:45
#5
我来当小白鼠,等会分享给所有人
Reply View the author
funtoo
deepin
2020-04-16 22:48
#6
/etc/X11/xorg.conf文件不需要再去手动创建,原生PRIME的原理是创建了一个虚拟显示器,需要独显渲染时候就调用虚拟显示器进行运算,并把结果反向输出到核显显示。
而且打包也并不规范,原始包缺少.deb后缀,而且data.tar.xz解压出来里面还有一个nvidia-prime.deb。
Reply View the author
risez
deepin
2020-04-16 22:54
#7
funtoo replied at 2020-4-16 14:48
/etc/X11/xorg.conf文件不需要再去手动创建,原生PRIME的原理是创建了一个虚拟显示器,需要独显渲染时候就 ...

论坛不允许发deb包,而且我是第一次打包,请大佬指正。
Reply View the author
ritter
deepin
2020-04-16 22:55
#8
实话说,linux重度使用者超过90%都不会拿来玩游戏,所以linux系统的笔记本最好买AMD的独立显卡,官方驱动不仅开源效果好,还支持Wayland,虽然打游戏的确不如nvidia,但用着舒服还省电。
Reply View the author
Comments
jmjoy
2020-04-17 01:13
LInux下N卡用cuda美滋滋
risez
deepin
2020-04-16 22:57
#9
funtoo replied at 2020-4-16 14:48
/etc/X11/xorg.conf文件不需要再去手动创建,原生PRIME的原理是创建了一个虚拟显示器,需要独显渲染时候就 ...

按照wiki的说法,如果prime方案因某种原因没启用,就用xorg.conf显式启用。感谢大佬指教
Reply View the author
risez
deepin
2020-04-16 22:58
#10
funtoo replied at 2020-4-16 14:48
/etc/X11/xorg.conf文件不需要再去手动创建,原生PRIME的原理是创建了一个虚拟显示器,需要独显渲染时候就 ...

我打包的时候没注意到多打包了一个.deb,感谢大佬指出,马上更正
Reply View the author
loaden
deepin
2020-04-16 23:02
#11
原创技术文章,先收藏
Reply View the author
enforcee
deepin
2020-04-16 23:03
#12
第二段命令应该是/etc/apt/sources.list.d/debian.list
还有你打的包忘记.deb后缀啦QWQ
Reply View the author
zhoulang_rr
deepin
2020-04-16 23:04
#13
已经成功,谢谢。 这个不是专门用来玩游戏,做深度学习很有帮助啊。不然windows和deepin 需要不断切换。 配置:暗影精灵5代,RTX-1650 4G
怎么无法添加图片。。。  

NVIDIA-SMI 成功运行而且信息显示成功


Reply View the author
risez
deepin
2020-04-16 23:24
#14
https://bbs.deepin.org/post/191741
第二段命令应该是/etc/apt/sources.list.d/debian.list
还有你打的包忘记.deb后缀啦QWQ ...

感谢大佬指出
Reply View the author
risez
deepin
2020-04-16 23:24
#15
https://bbs.deepin.org/post/191741
实话说,linux重度使用者超过90%都不会拿来玩游戏,所以linux系统的笔记本最好买AMD的独立显卡,官方驱动不 ...

Linux玩MC爽
Reply View the author
risez
deepin
2020-04-16 23:27
#16
https://bbs.deepin.org/post/191741
/etc/X11/xorg.conf文件不需要再去手动创建,原生PRIME的原理是创建了一个虚拟显示器,需要独显渲染时候就 ...

已重新打包,不会在多个deb了。习惯了makepkg不懂得Debian打包规则,感谢大佬指出错误
Reply View the author
星外之神
deepin
2020-04-16 23:33
#17
本帖最后由 wszqkzqk 于 2020-4-16 15:35 编辑

还好我只有NV单显卡
没有集显
Reply View the author
leonardo520
deepin
2020-04-16 23:38
#18
我tm就会这一句英语 fk NVIDIA 你还不让我用。。。。
Reply View the author
risez
deepin
2020-04-16 23:54
#19
leonardo520 replied at 2020-4-16 15:38
我tm就会这一句英语 fk NVIDIA 你还不让我用。。。。

…………
Reply View the author
wzxyisme
deepin
2020-04-16 23:55
#20
leonardo520 发表于 2020-4-16 15:38
我tm就会这一句英语 fk NVIDIA 你还不让我用。。。。

我再教你一句AMD yes!
Reply View the author
1 / 4
To page