전용 그래픽 카드에서는 실행할 수 없습니다. DRI_PRIME을 사용하여 vga switcheroo 및 오류를 강제로 적용하지 않음

전용 그래픽 카드에서는 실행할 수 없습니다. DRI_PRIME을 사용하여 vga switcheroo 및 오류를 강제로 적용하지 않음

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를 사용하여 전체 시스템을 전용 카드로 전환하는 방법에 대한 Dell의 자체 가이드를 따라해 보았습니다. 여기에서 찾을 수 있습니다. https://www.dell.com/support/article/uk/en/ukbsdt1/sln298475/a-guide-to-hybrid-video-on-dell-pcs-with-an-ubuntu-operating-system?lang= ko

다음은 몇 가지 결과입니다.

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를 켜려고 하면 실제로 연결이 끊어진 것이 아니라 동적으로 꺼지기 때문에 아무 일도 일어나지 않습니다. 이 작업은 루트로 수행되어야 합니다. 그렇지 않으면 권한 부족으로 인해 에코할 수 없습니다.

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우분투 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

당황스럽게도 이제 작동합니다. 나는 이 일을 1년 넘게 계속해서 작동시키려고 노력해 왔다는 것을 명심하십시오. 결코 그렇지 않았습니다. 오늘은 이 글을 쓰면서 잠시 쉬어가기로 했습니다. BIOS 옵션을 다시 확인하기 위해 재부팅한 다음 사용하지 않는 ppa를 삭제했습니다. 그런 다음 DRI_PRIME=1 glxinfo를 실행하여 오류 로그에서 추가 정보를 얻을 수 있는지 확인했는데 제대로 작동했습니다. 솔직히 무슨 일이 일어났는지 전혀 모르겠어요. 재부팅하거나 사용하지 않는 ppa를 삭제해도 전혀 영향을 받지 않습니다. WTF. 그래도 이제 작동해서 정말 기뻐요! 이 문제가 해결되었다고 생각하십시오.

관련 정보