使用 DRI_PRIME 切换图形不起作用;会产生僵尸 (16.04 lts)

使用 DRI_PRIME 切换图形不起作用;会产生僵尸 (16.04 lts)

我有一台联想 E450 笔记本电脑,配有可切换显卡。该笔记本电脑是经过认证的 Ubuntu 笔记本电脑根据该网站,所以我认为它会起作用,而且总的来说它确实起作用。

但是,笔记本电脑具有可切换显卡(AMD+intel),我无法进行切换。

我发现了一些 2012 年等版本的过时指南,但我不想尝试这些指南(无论如何,新的 Ubuntu 不适用于专有 AMD 驱动程序)。

我试过这个DRI_PRIME方法。那就是:

$ lspci -nn | grep 'VGA\|ATI'
00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:1616] (rev 09)
05:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265] [1002:6900]

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x67 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 5 associated providers: 1 name:modesetting
Provider 1: id: 0x3f cap: 0x4, Source Offload crtcs: 0 outputs: 0 associated providers: 1 name:TOPAZ @ pci:0000:05:00.0

$ xrandr --setprovideroffloadsink 0 1

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2)

$ DRI_PRIME=1 glxinfo | grep "OpenGL renderer" 
# ...nothing happens...

当我运行最后一个命令时,该命令从未完成。它似乎是无法终止的;ctrl-c、sigterm、sigkill 似乎无法终止该进程,它会保留htop状态Z。有趣的是,有时,计算机会在一段时间后崩溃(但这种情况只发生过一次)。

当我尝试关闭计算机时(运行带有 DRI_PRIME 的 glxinfo 后),关机从未完成,我必须通过按住电源按钮“艰难地”关闭计算机。

当我尝试使用 DRI_PRIME 的 glxinfo 时,它会立即显示在dmesg

[11966.544102] [drm] PCIE GART of 2048M enabled (table at 0x0000000000040000).
[11966.780647] [drm] ring test on 0 succeeded in 14 usecs
[11968.629805] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 1 test failed (scratch(0xC040)=0xCAFEDEAD)
[11968.835788] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 2 test failed (scratch(0xC040)=0xCAFEDEAD)
[11969.040749] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 3 test failed (scratch(0xC040)=0xCAFEDEAD)
[11969.246077] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 4 test failed (scratch(0xC040)=0xCAFEDEAD)
[11969.451829] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 5 test failed (scratch(0xC040)=0xCAFEDEAD)
[11969.656722] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 6 test failed (scratch(0xC040)=0xCAFEDEAD)
[11969.863568] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 7 test failed (scratch(0xC040)=0xCAFEDEAD)
[11970.068579] [drm:gfx_v8_0_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 8 test failed (scratch(0xC040)=0xCAFEDEAD)
[11970.170712] [drm:sdma_v2_4_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 9 test failed (0xCAFEDEAD)
[11970.170722] [drm:amdgpu_resume [amdgpu]] *ERROR* resume of IP block <sdma_v2_4> failed -22
[11970.170730] [drm:amdgpu_resume_kms [amdgpu]] *ERROR* amdgpu_resume failed (-22).

当我启动 Windows 时,图形运行良好,我可以轻松切换。

哪里有问题?

为了完整起见,这是我的内核版本

$ uname -a
Linux karelb 4.8.0-36-generic #36~16.04.1-Ubuntu SMP Sun Feb 5 09:39:57 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

答案1

编辑2:安装新内核 4.10,解决了该问题!


旧答案(有更多实验)

安装 LXLE(基于 Lubuntu 和 Ubuntu 的发行版)似乎可以解决问题。我仍然看到 drm 错误,但图形设置可以正常工作。

但是,我不确定其他程序与 LXLE 等深奥的发行版的配合情况如何。

(安装 amdgpu pro 对我来说不起作用;恰恰相反,它让 ubuntu 停止显示任何内容)

编辑:我收回我说的话。在我执行完apt-get update等等之后,问题又出现了,症状和 LXLE 一模一样。所以是不是这是一个 Unity 问题,可能与驱动程序有关。

相关内容