我在 Dell Inpiron 15 7548 上运行 Xubuntu 18.04。机器集成了 HD 5500 显卡和专用的 AMD R7 卡。我已经尝试过多次访问我的专用卡,但总是最终放弃,所以我真的很想尝试深入了解这个问题,以便我可以真正使用我的硬件。
首先,两张卡都被检测到了:
narameh@Hydrogen:~$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] (rev ff)
我已经尝试按照戴尔自己的指南了解如何使用 switcheroo 将整个系统切换到专用卡,可在此处找到: https ://www.dell.com/support/article/uk/en/ukbsdt1/sln298475/a -guide-to-hybrid-video-on-dell-pcs-with-an-ubuntu-operating-system?lang=en
这是一些输出:
VGA 切换器已启用:
narameh@Hydrogen:~$ grep -i switcheroo /boot/config-*
/boot/config-4.15.0-50-generic:CONFIG_VGA_SWITCHEROO=y
/boot/config-4.15.0-51-generic:CONFIG_VGA_SWITCHEROO=y
开关文件存在:
narameh@Hydrogen:~$ sudo ls -l /sys/kernel/debug/vgaswitcheroo/switch
-rw-r--r-- 1 root root 0 Jun 12 16:07 /sys/kernel/debug/vgaswitcheroo/switch
默认状态:
narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0
本教程假定它是 Pwr 或 Off,但由于这是一个混合系统,对我来说它是 DynOff。因此,当我尝试按照说明打开断开连接的 GPU 时,什么也没有发生,因为它并没有真正断开连接,只是动态关闭。这必须以 root 身份发生,否则由于缺少权限,我无法回显。
narameh@Hydrogen:~$ sudo su
root@Hydrogen:/home/narameh# echo ON > /sys/kernel/debug/vgaswitcheroo/switch
root@Hydrogen:/home/narameh# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0
接下来我尝试使用 DRI_PRIME 在我的 AMD 卡上运行一些东西,看看我是否可以让它完全打开。我可以通过跑步
DRI_PRIME=1 glxinfo
在一个终端窗口中,并发送垃圾邮件
narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
在另一个。然而,第一个终端随后吐出大量错误,我们回到 DynOff。错误输出的粘贴箱:https ://pastebin.com/gJ4StVLS
谷歌搜索错误代码让我遇到了类似的问题:https ://www.linuxquestions.org/questions/slackware-14/current-14-2-and-dri-3-and-dri_prime-ain%27t-working -4175578108/ 有关此海报在此处所做的更多信息:https ://kaosx.us/docs/hybrid_gfx/
按照步骤,我得到以下信息
DRI 似乎很好:
narameh@Hydrogen:~$ cat /var/log/Xorg.0.log | grep DRI
[ 45.527] (II) RADEON(G0): [DRI2] Setup complete
[ 45.527] (II) RADEON(G0): [DRI2] DRI driver: radeonsi
[ 45.527] (II) RADEON(G0): [DRI2] VDPAU driver: radeonsi
[ 46.672] (II) modeset(0): [DRI2] Setup complete
[ 46.672] (II) modeset(0): [DRI2] DRI driver: i965
[ 46.672] (II) modeset(0): [DRI2] VDPAU driver: i965
[ 46.704] (II) GLX: Initialized DRI2 GL provider for screen 0
narameh@Hydrogen:~$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x66 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 2 associated providers: 1 name:modesetting
Provider 1: id: 0x41 cap: 0x6, Sink Output, Source Offload crtcs: 2 outputs: 0 associated providers: 1 name:OLAND @ pci:0000:08:00.0
narameh@Hydrogen:~$ xrandr --setprovideroffloadsink 0x41 0x66
narameh@Hydrogen:~$
请注意,它不会引发任何错误,因此该命令似乎可以正常工作。然后当我尝试在任一卡上运行时,板载英特尔工作正常:
narameh@Hydrogen:~$ DRI_PRIME=0 glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: Intel Open Source Technology Center
但 AMD 仍然抛出相同的错误:https ://pastebin.com/W56z6z3L
最后,线程中的用户将他的问题追溯到错误的内核提交并回滚,但因为这是a)2016年的线程和b)我不是一个足够高级的用户来搞乱我的内核,也就是说不是我的选择。
我可以找到多个其他与内核版本相关的类似错误(例如Ubuntu 17.01 上的https://bugs.freedesktop.org/show_bug.cgi?id=102800或这个https://bugs.freedesktop.org/show_bug。 cgi?id=94874 )
在这两个主题中,建议将 radeon.nopm=0 添加到内核启动中,但我很犹豫是否在没有指导的情况下尝试此操作,因为我对自己在做什么知之甚少。
我希望从这篇文章中可以清楚地看出我已经投入工作尝试自己解决这个问题,但是我遇到了我的知识限制并且不想通过改变我不理解的东西来搞乱我的系统或如果我最终启动进入黑屏,则无法撤消。来自更高级的人的一些帮助将不胜感激。
tldr:离散 AMD 处于 DynOff 状态,无法使用 VGA_switcheroo 强制开启。DRI_PRIME 可以与独立卡通信,但似乎是内核问题的错误?用户在她的知识的尽头,害怕破坏东西。帮助表示赞赏。
编辑:实现包括内核版本等会很有用:
narameh@Hydrogen:~$ uname -r
4.15.0-51-generic
narameh@Hydrogen:~$ lspci -nnk | grep -i vga -A3
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
Subsystem: Dell HD Graphics 5500 [1028:066f]
Kernel driver in use: i915
Kernel modules: i915
--
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] [1002:6604] (rev ff)
Kernel driver in use: radeon
Kernel modules: radeon, amdgpu
编辑2:添加在我的BIOS中没有打开/关闭我的GPU的选项也很有用。根本没有与视频相关的选项。