在核显+独显配置的计算机上,Linux一般会选择英特尔核显作为默认显卡,只有当用户手动选择时才会启用另外一张独立显卡。Fedora 39中可以通过右键选择 “Launch with Discrete Graphic Card” 来启用。
在某些情况下,比如计算机核显性能较弱,或者Linux错误的选择了独立显卡作为默认显卡,我们就需要手动调整Linux桌面选择的默认显卡。
我的MacBook Pro 2011在安装Fedora后就遇到了上述问题,Fedora默认一直使用AMD HD 6750独显作为默认显卡,导致笔记本发热严重续航也不理想。在网上搜索以及自己实验后终于找到了X11和Wayland下各自的解决办法。
如何判断正在使用的显卡
想要知道计算机有没有遇到上述的问题,一个简单的办法就是查看glx info
输出的信息。打开命令行输入:
glxinfo | grep "OpenGL renderer"
其中显示的就是正在被使用的显卡。
再次输入
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
英伟达显卡则需要输入
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
(根据 https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/primerenderoffload.html )
其中显示的就是正在休眠的显卡。
X11 上选择默认显卡
根据Reddit用户Osmanthus的帖子:“Hybrid Graphics on Ubuntu 19.10 Early 2011 17″ Macbook Pro” X11上如果正在使用AMD和英特尔显卡,那么只需要更改GRUB文件:
sudo nano /etc/default/grub
找到如下命令:
GRUB_CMDLINE_LINUX=""
在引号中加入 intel.modeset=0
更新GRUB
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Ubuntu下则输入
sudo update-grub
重启系统,即可完成设置。
Wayland上选择默认显卡
根据gnome mutter的其中一个PR: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1562
E.g. to select /dev/dri/card1 as the primary GPU, add a file e.g. /usr/lib/udev/rules.d/61-mutter-primary-gpu.rules (path my vary depending on distribution) containing the fellowing line:
ENV{DEVNAME}==”/dev/dri/card1″, TAG+=”mutter-device-preferred-primary”
只需新建一个文件/usr/lib/udev/rules.d/61-mutter-primary-gpu.rules
,在其中加入如下语句
ENV{DEVNAME}\=="/dev/dri/card1", TAG+="mutter-device-preferred-primary"
然后重启即可。置于该如何确定显卡的路径,则可以用这个命令(需要安装drm_info和jq)来源reddit
drm_info -j | jq 'with_entries(.value |= .driver.desc)'
通过这些步骤,可以轻松地调整 Linux 系统中默认的显卡选项,从而获得更好的性能和更长的续航时间。