Ubuntu 20.04 上的混合 AMD-Intel 显卡-无法打开独立显卡

Ubuntu 20.04 上的混合 AMD-Intel 显卡-无法打开独立显卡

我在 Dell Inspirion 15 5000 系列上运行 Ubuntu 20.04,它有一个混合图形系统(Intel 为集成图形系统,AMD Radeon R7 M445 为专用图形系统)。但似乎只使用了集成图形系统。使用 switcheroo 机制切换 GPU,如中所述 https://help.ubuntu.com/community/HybridGraphics 并没有解决问题。每次来回切换后,

sudo cat /sys/kernel/debug/vgaswitcheroo/switch

保持不变:

0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:01:00.0

我也尝试了 DRI_PRIME=1 环境(然后运行给定的应用程序/软件)但独立 GPU 仍然没有活动。

有一个指南展示了如何在 Ubuntu 20.04 上安装 AMD 驱动程序: https://linuxconfig.org/amd-radeon-ubuntu-20-04-driver-installation 我使用的是默认安装的驱动程序。为了检查 amdgpu 驱动程序是否确实安装,我运行了,sudo lshw -c video结果显示

*-display                 
   description: VGA compatible controller
   product: HD Graphics 620
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 02
   width: 64 bits
   clock: 33MHz
   capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:130 memory:de000000-deffffff memory:b0000000-bfffffff ioport:f000(size=64) memory:c0000-dffff

  *-display
   description: Display controller
   product: Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445 / 530/535 / 620/625 Mobile]
   vendor: Advanced Micro Devices, Inc. [AMD/ATI]
   physical id: 0
   bus info: pci@0000:01:00.0
   version: c3
   width: 64 bits
   clock: 33MHz
   capabilities: pm pciexpress msi bus_master cap_list rom
   configuration: driver=amdgpu latency=0
   resources: irq:132 memory:c0000000-cfffffff memory:d0000000-d01fffff ioport:e000(size=256) memory:df200000-df23ffff memory:df240000-df25ffff

好消息是 amdgpu 驱动程序已经存在,但如何使用它仍然超出了我的理解范围。这个问题似乎不是 Ubuntu 20.04 独有的,因为我在 18.04 上也遇到了同样的问题,但我无法解决。有什么建议吗?

答案1

您可以通过添加前缀来使用 AMD GPU 运行程序DRI_PRIME=1

例如。

DRI_PRIME=1 glxgears

您可以通过运行以下代码来检查 AMD GPU 是否正在使用

DRI_PRIME=1 glxinfo | grep OpenGL

答案2

这里运行基于 Ubuntu 20.04 的 Linux Mint 20,但我很确定它是相同的。

好的,我遇到了同样的问题。我已经修复了这个问题,因为

# echo ON > /sys/kernel/debug/vga_switcheroo/switch

和相关命令现在都可以工作了,默认情况下非集成(“离散”)命令是工作的。我仍然不知道如何在两者之间自动切换,或者这是否可能。

首先,似乎您需要将grub 启动参数作为这些命令才能工作(修改文件后radeon.runpm=0不要忘记运行。)sudo update-grub/etc/default/grub

请注意,我在这里使用radeon驱动程序,因此您可能需要尝试amdgpu.runpm=0或切换(返回?)到该radeon驱动程序。

据我所知,它会禁用驱动程序的某种电源管理(pm?),但这只是猜测。

其次,这些命令需要通过切换到 root 用户来以 root 身份运行sudo su。我认为,为了更加安全,这些sudo命令无法以普通用户身份运行(Permisson denied)。

之后,我确实将 DRI_PRIME=1 放入/etc/environment文件中并重新启动。

Pwr现在,当我(以 root 身份)运行时,两个 gpu 似乎都已通电( ?) cat /sys/kernel/debug/vgaswitcheroo

还请注意,我将其反过来列出为

0:DIS: :Off:0000:03:00.0
1:IGD:+:Pwr:0000:00:02.0

我不知道它是否会改变任何事情。

当我运行 时glxheads,它使用 AMD gpu。当我about:support在 Firefox 的栏中输入时,检测到了 AMD gpu。

当我echo OFF > /sys/kernel/debug/vgaswitcheroo/switch(以 root 身份)运行时,X 服务器崩溃,然后询问我是否要在回退模式下运行,因此它似乎确实关闭了正在使用的图形卡。

我没有注意到任何性能变化,但我也没有玩电子游戏。

欢迎提出任何修正、补充和解释

我刚刚在以下位置找到了 vgaswticheroo 命令的列表:https://www.kernel.org/doc/html/v4.14/gpu/vga-switcheroo.html

我应该补充一点,Automatic硬件加速解码设置的 VLC 选项对我来说不起作用。其他选项有效,但对于其他选项,它显然失败了,并依赖于集成 gpu。

相关内容