No se puede ejecutar en una tarjeta gráfica dedicada; No se puede forzar el cambio de VGA y se producen errores al usar DRI_PRIME

No se puede ejecutar en una tarjeta gráfica dedicada; No se puede forzar el cambio de VGA y se producen errores al usar DRI_PRIME

Estoy ejecutando Xubuntu 18.04 en mi Dell Inpiron 15 7548. La máquina tiene gráficos HD 5500 integrados y una tarjeta AMD R7 dedicada. Intenté acceder a mi tarjeta dedicada varias veces, pero siempre terminé rindiéndome, así que realmente me gustaría intentar llegar al fondo de esto para poder usar mi hardware.

En primer lugar, ambas tarjetas se detectan perfectamente:

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)

Intenté seguir la propia guía de Dell sobre cómo usar Switcheroo para simplemente cambiar todo el sistema a la tarjeta dedicada, que se encuentra aquí: https://www.dell.com/support/article/uk/en/ukbsdt1/sln298475/a-guide-to-hybrid-video-on-dell-pcs-with-an-ubuntu-operating-system?lang= es

Aquí hay algunos resultados:

El cambio VGA está habilitado:

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

El archivo de cambio existe:

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

Estado predeterminado:

narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0

El tutorial asume que es Pwr o Off, pero como se trata de un sistema híbrido, para mí es DynOff. Por lo tanto, cuando intento encender la GPU desconectada según las instrucciones, no sucede nada, ya que en realidad no está desconectada, solo se apaga dinámicamente. Esto tiene que suceder como root, de lo contrario no puedo hacer eco por falta de permisos.

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

Luego intenté usar DRI_PRIME para ejecutar algo en mi tarjeta AMD para ver si podía encenderlo. Puedo por un segundo, corriendo

DRI_PRIME=1 glxinfo

en una ventana de terminal y spam

narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch

en el otro. Sin embargo, el primer terminal arroja un montón de errores y volvemos a DynOff. Pastebin de salida de error:https://pastebin.com/gJ4StVLS

Al buscar en Google el código de error encontré este tema con un problema similar:https://www.linuxquestions.org/questions/slackware-14/current-14-2-and-dri-3-and-dri_prime-ain%27t-working-4175578108/ Más información sobre lo que hace este cartel aquí:https://kaosx.us/docs/hybrid_gfx/

Siguiendo los pasos me sale lo siguiente

DRI parece estar bien:

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:~$ 

Tenga en cuenta que no arroja errores, por lo que este comando parece funcionar bien. Cuando intento ejecutar cualquiera de las tarjetas, la información integrada funciona bien:

narameh@Hydrogen:~$ DRI_PRIME=0 glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: Intel Open Source Technology Center

Pero AMD todavía arroja los mismos errores:https://pastebin.com/W56z6z3L

Al final, el usuario en el hilo rastrea sus problemas hasta una confirmación incorrecta del kernel y se revierte, pero como este es a) un hilo de 2016 yb) no soy un usuario lo suficientemente avanzado como para jugar con mi kernel, es decir. No es una opción para mí.

Puedo encontrar muchos otros errores similares que parecen estar relacionados con las versiones del kernel (p. ej.https://bugs.freedesktop.org/show_bug.cgi?id=102800en Ubuntu 17.01 o estehttps://bugs.freedesktop.org/show_bug.cgi?id=94874)

En ambos temas, se sugiere agregar radeon.nopm=0 al arranque del kernel, pero dudo en intentar esto sin alguna guía porque no sé lo suficiente sobre lo que estoy haciendo.

Espero que quede claro en esta publicación. Me he esforzado para intentar resolver esto por mi cuenta, pero estoy llegando a los límites de mi conocimiento y no quiero estropear mi sistema cambiando cosas que no entiendo o No puedo deshacerlo si termino arrancando en una pantalla negra debido a esto. Se agradecería mucho la ayuda de alguien más avanzado.

tldr: AMD discreto está en DynOff y no se puede forzar con VGA_switcheroo. DRI_PRIME puede comunicarse con una tarjeta discreta, pero hay errores con quéparece¿Será un problema del kernel? El usuario está al final de sus conocimientos y tiene miedo de romper cosas. Se agradece la ayuda.

EDITAR: sería útil incluir la versión del kernel, etc.:

    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

EDITAR 2: También es útil agregar que no hay opciones para encender/apagar mis GPU en mi BIOS. No hay ninguna opción relacionada con el vídeo.

Respuesta1

Para mi total desconcierto, ahora funciona. Tenga en cuenta que he estado intentando que esto funcione de forma intermitente durante más de un año. Nunca lo hizo. Hoy decidí tomarme un descanso después de escribir este post. Reinicié para verificar las opciones de mi BIOS y luego limpié mis ppas no utilizados. Luego ejecuté DRI_PRIME=1 glxinfo para ver si podía obtener más información del registro de errores y simplemente... funcionó. Sinceramente no tengo ni idea de lo que pasó. Ni el reinicio ni la eliminación de algunos ppas no utilizados deberían haber afectado esto en absoluto. Qué carajo. ¡Estoy muy feliz de que ahora funcione! Considere este problema resuelto.

información relacionada