Back

Linux 通过环境变量使用 Nvidia 显卡(Prime 方案)

为老显卡折腾 Prime OnDemand

经过实际测试,AMD 的核显配上 Nvidia 的独显也是可以使用这个方案的,笔者的电脑是天选 1 代 2060 版(TUF Gaming 506 IV)当时这个笔记本刚出来的时候,笔者尝试了大黄蜂方案,但是没有成功,不过这个方案是可行的。

笔者使用的系统是 Debian Testing,所以接下来的包管理命令都是 Debian 系的。

让 AMD 核显可用

确保你的 Linux 内核版本高于 5,若内核版本较低请先进行更新:

uname -r

注意:仅 Debian 10 及以上的版本使用 Linux 5.x 内核。

其次安装 firmware-amd-graphics

sudo apt install firmware-amd-graphics

完成上述两步可以基本保证你可以正常进入桌面。

你现在可以手动禁用 nouveau 驱动。不过,接下来的步骤也会自动禁用 nouveau 驱动。

安装 Nvidia 显卡驱动

直接使用 apt 源中的驱动即可,不需要去官网下载。

sudo apt install nvidia-driver nvidia-vulkan-common nvidia-vulkan-icd nvidia-vaapi-driver nvidia-vdpau-driver

如果你仅使用 OpenGL,只安装 nvidia-driver 即可。

安装完毕之后需要重启你的电脑。

可能遇到的问题

DKMS 模块编译时可能会遇到以下问题。

编译器版本不对

删除 /usr/bin/gcc/usr/bin/g++ 再重新创建需要的编译器软链接,例如:

sudo ln -s /usr/bin/gcc-11 /usr/bin/gcc
sudo ln -s /usr/bin/g++-11 /usr/bin/g++

不过,此处或许有更好的更换编译器版本的做法,欢迎评论指出。

源码有错误

在进行下述步骤前,建议先卸载 nvidia-driver 以避免其它软件包安装失败。

  • 如果你使用的是官方内核:

    sudo apt install linux-image-amd64 linux-headers-amd64

    安装完毕之后需要重启你的电脑,再安装 Nvidia 显卡驱动,应该可以解决绝大部分问题。

  • 如果你使用的是第三方内核:

    回退显卡驱动版本,然后等待两个星期再进行更新。笔者使用 Liquorix 内核时遇到的即是这种情况。

配置环境变量

现在你已经可以通过在命令前加上 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only 来使用 Nvidia 显卡运行命令,例如:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only glxgears -info

如果你使用的是 Bash,那么你可以在 ~/.bashrc 文件的最后加上一行:

alias optirun='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only'

重新登录后就可以直接使用 optirun 代替冗长的环境变量。

optirun glxgears -info

若你将这段环境变量添加到 /etc/profile 中,虽然所有应用程序均可使用 Nvidia 显卡进行渲染,但是这么做会造成桌面渲染的错误。

comments powered by Disqus