在Debian系统中,你可以使用以下步骤来切换显卡:
- 删除
/etc/X11/xorg.conf
文件⁴:这个文件是X Window系统的主要配置文件,它可能包含了指定使用NVIDIA显卡的设置。你可以通过sudo rm /etc/X11/xorg.conf
命令来删除这个文件⁴。 - 注释掉
/usr/share/sddm/scripts/Xsetup
文件中的一行代码⁴:这个文件可能包含了在启动时加载NVIDIA显卡驱动的设置。你可以通过sudo nano /usr/share/sddm/scripts/Xsetup
命令来编辑这个文件,然后在相关的代码行前面加上#
来注释掉这行代码⁴。 - 重启你的电脑:这样,你的系统在下次启动时就会默认使用Intel集成显卡。
如果你的系统中没有 /etc/X11/xorg.conf
和 /usr/share/sddm/scripts/Xsetup
这两个文件,那么你的系统可能正在使用默认的配置,或者这些配置被保存在其他地方。
在这种情况下,你可以尝试使用 prime-select
工具来切换你的显卡。prime-select
是一个命令行工具,它可以让你在NVIDIA显卡和Intel集成显卡之间切换。
可以通过以下步骤来安装和使用 prime-select
:
- 打开终端。
- 输入
sudo apt install nvidia-prime
命令来安装prime-select
。 - 输入
sudo prime-select intel
命令来切换到Intel集成显卡。 - 重启电脑。
当你需要使用NVIDIA显卡时,你可以通过 sudo prime-select nvidia
命令来切换到NVIDIA显卡。
在一部分Debian系统中,nvidia-prime
包可能并不可用。在这种情况下,可以尝试使用 Bumblebee 或者 nvidia-xrun 工具来切换你的显卡¹²。
对于 Bumblebee,可以通过以下步骤来安装和配置:
- 安装 Bumblebee 和相关的包:
sudo apt-get install bumblebee-nvidia primus linux-headers-generic
¹。 - 将使用的用户添加到
bumblebee
用户组:sudo adduser $USER bumblebee
¹。 - 重启你的电脑。
当你需要使用NVIDIA显卡时,你可以通过 optirun your-application
命令来启动你的应用程序¹。
Bumblebee的修改
Bumblebee的工作方式是修改系统的配置来切换显卡。如果在安装或配置Bumblebee后出现问题,可能需要按照以下步骤来恢复你的系统:
- 卸载Bumblebee:你可以通过
sudo apt-get remove --purge bumblebee
命令来卸载Bumblebee。 - 重装NVIDIA驱动:你可以通过
sudo apt-get install --reinstall nvidia-driver
命令来重装NVIDIA驱动。 - 重启你的电脑。
这样,你的系统应该就可以恢复正常了。如果问题仍然存在,建议寻求专业人士的帮助。
切换显卡 | 临时使用独显
在安装了Bumblebee后,你可以使用以下命令来查看当前正在使用的显卡:
- 使用
glxinfo | grep "OpenGL renderer"
命令:这个命令会显示当前正在使用的OpenGL渲染器,也就是当前正在使用的显卡¹。 - 使用
optirun glxgears -info | grep GL_RENDERER
命令:这个命令会显示在使用optirun
命令时使用的显卡¹。如果这个命令的输出显示的是你的NVIDIA显卡,那么说明你的NVIDIA显卡可以正常工作¹。
由于Bumblebee服务没有在系统启动时自动启动,或者Bumblebee的配置文件中的套接字路径设置不正确。可能会解决问题的方法:
- 检查Bumblebee服务的状态:你可以通过
systemctl status bumblebeed
命令来检查Bumblebee服务的状态¹。如果服务没有运行,你可以通过sudo systemctl start bumblebeed
命令来启动服务¹。 - 检查Bumblebee的配置文件:你可以通过
cat /etc/bumblebee/bumblebee.conf
命令来查看Bumblebee的配置文件¹。你需要确保bumblebeed
部分的Driver
设置为nvidia
,并且driver-nvidia
部分的KernelDriver
设置为你的NVIDIA驱动的名称(例如nvidia-current
)¹。 - 重启你的电脑:这样,Bumblebee服务应该会在系统启动时自动启动。
optirun结束程序后系统卡死:主要表现在新显卡
查看Bumblebee守护进程已经在运行,但是当尝试使用 optirun
命令时,它无法访问NVIDIA显卡。这可能是由于Bumblebee无法找到正确的配置文件目录:/etc/bumblebee/xorg.conf.d
¹。
可以通过以下步骤来解决这个问题:
- 检查
/etc/bumblebee/xorg.conf.d
目录是否存在:可以通过ls /etc/bumblebee/xorg.conf.d
命令来检查这个目录是否存在。如果这个目录不存在,你需要创建它:sudo mkdir /etc/bumblebee/xorg.conf.d
¹。 - 检查
/etc/bumblebee/xorg.conf.nvidia
文件是否存在:这个文件是Bumblebee用来配置NVIDIA显卡的。你可以通过cat /etc/bumblebee/xorg.conf.nvidia
命令来查看这个文件的内容¹。如果这个文件不存在或者内容不正确,你可能需要重新安装Bumblebee¹。 - 重新安装Bumblebee:你可以通过以下命令来卸载并重新安装Bumblebee³:
sudo apt-get remove --purge bumblebee
sudo apt-get install bumblebee
- 实验性:保持一个程序在 optirun 中
optirun watch -n 0.1 -d nvidia-smi
intel显卡查询状态
sudo apt install intel-gpu-tools -y
intel_gpu_top
临时查看nvidia状态(见上方实验性)
optirun nvidia-smi
临时调用:其实就是在运行的程序前面加optirun
使用primusrun
替代optirun
其实非常简单。你只需要在你通常使用optirun
运行的命令前面替换为primusrun
即可。
例如,如果你通常运行:
optirun <your-application>
你可以改为运行:
primusrun <your-application>
这里的<your-application>
是你想要使用独立显卡运行的程序的名称。例如,如果你想要运行glxgears
,你可以运行primusrun glxgears
。
注意,primusrun
和optirun
的工作方式略有不同。optirun
使用VirtualGL来复制像素,可能会有一些性能损失,但是兼容性更好。primusrun
直接把像素从独立显卡传输到集成显卡,性能更好,但是可能会有一些兼容性问题。因此,如果primusrun
不能运行你的程序,你可能还需要回到optirun
。
环境变量参数调用
在Linux系统中,如果你想临时使用NVIDIA显卡运行特定的程序,你可以使用环境变量来指定显卡。这通常是通过在命令前加上一些特定的环境变量来实现的。
例如,如果你想使用NVIDIA显卡运行Edge浏览器,你可以尝试以下命令:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia edge
这个命令会设置两个环境变量:__NV_PRIME_RENDER_OFFLOAD
和 __GLX_VENDOR_LIBRARY_NAME
。这两个环境变量会告诉系统使用NVIDIA显卡来运行接下来的命令(在这个例子中是 edge
)。
这个方法可能需要系统支持PRIME Offloading,并且已经正确地安装和配置了NVIDIA驱动。
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。