我在 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。