無法在專用顯示卡上運作;使用 DRI_PRIME 不強制使用 vga switcheroo 和錯誤

無法在專用顯示卡上運作;使用 DRI_PRIME 不強制使用 vga switcheroo 和錯誤

我在 Dell Inpiron 15 7548 上運行 Xubuntu 18.04。我曾多次嘗試存取我的專用卡,但最終總是放棄,所以我真的很想嘗試弄清楚這一點,以便我可以實際使用我的硬體。

首先,兩張卡都被偵測到很好:

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= zh

這是一些輸出:

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。錯誤輸出的 Pastebin: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) 我不是一個足夠高級的用戶來搞亂我的內核,也就是說對我來說不是一個選擇。

我可以找到多個其他類似的錯誤,這些錯誤似乎與內核版本相關(例如https://bugs.freedesktop.org/show_bug.cgi?id=102800在 Ubuntu 17.01 或這個上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 的選項也很有用。根本沒有與影片相關的選項。

答案1

令我完全困惑的是,它現在可以工作了。請記住,一年多來我一直在努力讓它斷斷續續地工作。但從來沒有。今天寫完這篇文章我決定休息一下。我重新啟動以仔細檢查我的 BIOS 選項,然後清除我未使用的 ppa。然後我運行 DRI_PRIME=1 glxinfo 來查看是否可以從錯誤日誌中獲取更多信息,它就......起作用了。老實說我不知道發生了什麼事。重新啟動或刪除一些未使用的 ppa 都不應該對此產生影響。 WTF。很高興它現在可以工作了!考慮這個問題已經解決了。

相關內容