在18.04上切换Intel/AMD GPU

我刚刚在我的笔记本电脑上安装了Oibaf的图形驱动程序,还安装了Lutris(带有Wine和其他一切),因为我想玩像暗黑破坏神3这样的游戏。
一切都运行正常,我还安装了vulkan和Wine + Gallium Ninelshw -c video的输出是:
  *-display                 
   description: VGA compatible controller
   product: HD Graphics 5500
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 09
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:45 memory:d3000000-d3ffffff memory:c0000000-cfffffff ioport:7000(size=64) memory:c0000-dffff
 *-display
   description: Display controller
   product: Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430]
   vendor: Advanced Micro Devices, Inc. [AMD/ATI]
   physical id: 0
   bus info: pci@0000:0d:00.0
   version: 83
   width: 64 bits
   clock: 33MHz
   capabilities: pm pciexpress msi bus_master cap_list rom
   configuration: driver=radeon latency=0
   resources: irq:46 memory:b0000000-bfffffff memory:d5000000-d503ffff ioport:4000(size=256) memory:d5040000-d505ffff

我的显卡是AMD R5 M430,笔记本电脑是HP 250 G5。
此外,这是`lspci -k | grep -EA3 'VGA|Display|3D'`的输出结果。
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
        Subsystem: Hewlett-Packard Company HD Graphics 5500
        Kernel driver in use: i915
        Kernel modules: i915
--
0d:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520] (rev 83)
        Subsystem: Hewlett-Packard Company Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520]
        Kernel driver in use: radeon
        Kernel modules: radeon, amdgpu

你尝试过从BIOS中禁用集成显卡吗? - Alex
@Alex 对不起,我刚刚检查了一下,我的HP 250 G5无法完成这个任务。 - sticsk
@sticsk 你能成功地让它工作吗?也就是说,从英特尔切换到AMD了吗? - gansub
2个回答

我在网上搜索了好几天关于这个问题。遇到了类似的设置和问题。偶然发现了这里,提到在使用专用GPU之前,在任何命令之前加上DRI_PRIME=1。所以我试了一下。
export $DRI_PRIME=1

这个方法有效。所以我在/etc/environment中添加了一行代码, DRI_PRIME=1 ,重新启动后,系统详细信息显示我的AMD显卡为默认选项。
注意:我认为这会禁用集成显卡,并将您的系统仅限于使用独立显卡。

真他妈的,我竟然忘了这个问题,不知道这会不会对别人有帮助,如果有的话,请告诉我,我会标记为已解决。我已经用Ubuntu换了好几个月啊哈哈哈哈。 - sticsk
哈哈哈哈,我差点放弃更改Ubuntu版本呢。 - roarnald
开始的时候还不错,但现在我进步了,换了另一个发行版。 - sticsk
DRI_PRIME=1 steam 看起来足够了。 - PvdL
我在/etc/environment.d/99-use-amdgpu-by-default中添加了内容为DRI_PRIME=1的文件,并且一切都切换到了AMD GPU。不幸的是,这台戴尔笔记本除了集成的Intel UHD Graphics 620图形之外,还搭载了AMD Radeon Pro WX3100 GPU,结果发现在这个系统上,Intel集成图形的性能更高 - Mikko Rantalainen

你可以在Ask Ubuntu这里找到许多关于你问题的答案:

你应该查看所有这些链接。

此外,你还会在其他来源中找到许多有用的链接:

所有链接都太长了,在这个回答中无法总结。


不要使用“lspci -nn | grep VGA”这样的命令,它只会显示你的Intel GPU而不是AMD GPU。你应该尝试使用类似下面这样的扩展搜索:
$ lspci -k | grep -EA3 'VGA|Display|3D'
00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
    DeviceName:  Onboard IGD
    Subsystem: Dell Skylake Integrated Graphics
    Kernel driver in use: i915
--
01:00.0 3D controller: NVIDIA Corporation GM204M [GeForce GTX 970M] (rev a1)
    Subsystem: Dell GM204M [GeForce GTX 970M]
    Kernel driver in use: nvidia
    Kernel modules: nvidiafb, nouveau, nvidia_384_drm, nvidia_384

22018年8月的那个是我的...我已经检查过第一个和第三个,它们都不起作用。Switcheroo也不起作用,它无法切换到离散显卡,例如在设置中显示我正在使用的仍然是英特尔的显卡。而且我的AMD R5 M430显卡没有可用的AMDGPU驱动程序,所以我安装了Oibaf的驱动程序。不过我会检查一下Prime驱动程序。 - sticsk
@sticsk 抱歉,我没有注意到你是链接中的作者之一。显然你已经做了很多功课,并尝试了所有常见的解决方案。如果这个答案对你或其他人没有帮助,请告诉我,我会删除它。谢谢。 - WinEunuuchs2Unix
我更新了lspci命令;编辑:我还会检查来自Arch的PRIME,并告诉你是否有什么问题。 - sticsk
lspci的修改使其更具信息性。我刚刚发现了这个链接,你可能会感兴趣:https://linuxconfig.org/how-to-install-the-latest-amd-radeon-drivers-on-ubuntu-18-04-bionic-beaver-linux - WinEunuuchs2Unix
是的,那个指南就是我按照来安装Oibaf的驱动程序的。 - sticsk
我在想这是不是你从那里得到的信息。我刚刚发现了一个基于你新的lspci编辑的错误报告,其中提到必须将radeon驱动程序列入黑名单才能使用amdgpu驱动程序:https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1696231 - WinEunuuchs2Unix
那么你是说我要从“内核模块”中将amdgpu加入黑名单来使它起作用?这个要怎么做呢? - sticsk
错误报告说radeon必须被列入黑名单才能使amdgpu正常工作。我不能确定需要做什么,只是指出了其他人的说法。错误报告还说明了如何将模块列入黑名单。这个过程相对简单,但需要重新启动系统。 - WinEunuuchs2Unix
我明白了,我会尝试从ArchWiki上安装PRIME,我应该安装Wiki推荐的驱动还是Oibaf的驱动? - sticsk
2我会把Olbaf作为最后的选择,因为那是我们所称之为“前沿技术”。我尽量坚持使用主流技术。另一个建议是,在处理多个驱动程序时,必须确保之前的驱动程序完全卸载后再安装新的驱动程序。这在Linux中的nVidia图形世界中是一个常见问题。 - WinEunuuchs2Unix
抱歉,我尝试了PRIME的方法,但是我真的不明白如何从Arch安装amdgpu软件包:/ - sticsk
根据《暗黑破坏神3》的一个帖子,问题可能出在Wine本身:https://us.battle.net/forums/en/d3/topic/20761986786 - WinEunuuchs2Unix
你知道吗,我也在我的电脑上安装了Ubuntu(Ryzen 5 1500X和GTX960),而且暗黑破坏神运行得非常顺畅!编辑:我也问了同样的问题,是Wine还是我的硬件的问题?我在我的电脑上测试了一下,结果运行效果和在Windows上一样好。 - sticsk
@sticsk 如果你已经尝试了所有的AMD显卡驱动,但目前还没有解决方案,我在《暗黑破坏神3》的评论中提到了安装不同版本的Wine可能是一个解决办法。这可能是为什么它在新电脑上能够正常工作而在笔记本电脑上无法工作的原因吗? - WinEunuuchs2Unix
我不知道,我的意思是我也试过SWAT4,这是一个比较旧的游戏,它也很难运行,而且甚至不能以全分辨率(1920x1080)运行。 - sticsk
@sticsk 这里有一些特殊步骤,用于在Linux上快速运行Swat 4:https://www.gog.com/forum/swat_series/swat_4_for_linux - WinEunuuchs2Unix