Resolución de los Problemas en Wayland

Kparal Version unspecified Last review: 2017

Esta página ha sido convertida automáticamente desde Wiki.

Se ha limpiado para publicarla aquí en el Portal Fedora Docs, pero todavía no se ha revisado su precisión técnica.

Es probable que

  • Mal formateada

  • Con gráficos y tablas perdidas que no se convierten bien desde mediawiki

  • Fuera de fecha

  • Necesite un poco de amor

Se agradecen mucho las revisiones de precisión técnica. Si desea ayudar, consulte el archivo README en el repositorio fuente para obtener instrucciones.

Solicitudes de extracción aceptadas en https://pagure.io/fedora-docs/quick-docs

Una vez haya corregido esta página, borre este anuncio.

Wayland está pensado como un reemplazo más sencillo para X11. Wayland cambia el diseño de la arquitectura de un escritorio Linux considerablemente. A diferencia de X11, no hay un servidor independiente dedicado en Wayland. Lo que se hacia anteriormente entre la aplicación, su kit de herramientas, el Xserver y el administrador de ventanas ahora se comparte entre la aplicación, su kit de herramientas y el compositor Wayland que maneja la composición, la entrada, la administración de ventanas, etc. Las aplicaciones y los kits de herramientas están ahora a cargo de su propia renderización y composición (decoraciones en el lado cliente), por lo que cualquier problema generalmente se ubica entre el kit de herramientas (por ejemplo GTK+) y el compositor Wayland (por ejemplo mutter).

Puede leer más sobre Wayland en GNOME en la página wiki iniciativa Wayland. Puede leer más sobre el estado actual de las funciones de Wayland en la página funciones de Wayland.

Identificar problemas de Wayland

¿Está ejecutando una sesión Wayland?

En GNOME, hay un botón dentado en la pantalla de acceso que se puede usar para una sesión Wayland (simplemente llamada GNOME, es la opción predeterminada) o una sesión heredada X11 (llamada GNOME on Xorg). Si usted tiene una cuenta de usuario sin contraseña, no verá el icono dentado, se muestra solo cuando aparece el indicador de contraseña. Use el botón dentado para determinar el tipo de sesión a la que está accediendo. Si desea iniciar su sesión de una manera diferente, lea las técnicas avanzadas para probar con Wayland.

gdm-pick-wayland.png

En KDE, hay soporte para ejecutar una sesión Wayland anidada dentro de su sesión X11. Necesitará instalar el paquete kwin-wayland y continuar con este como lo hago. No parece haber soporte listo para ejecutar una sesión completa de Wayland en este momento.

Otros entornos de escritorio no son estos momentos capaces de ejecutar una sesión Wayland.

Identificar el tipo de sesión en tiempo de ejecución

Si desea averiguar que tipo de sesión está ejecutando en este momento, sin salir de la sesión y volver a entrar otra vez, puede usar diversas maneras para averiguarlo:

  • La sesión Wayland debería tener la variable WAYLAND_DISPLAY establecida, la sesión X11 no debería tenerla:

    $ echo $WAYLAND_DISPLAY
    wayland-0
  • loginctl puede darle esta información. Primero ejecute loginctl y encuentre su número de sesión (debe ser un número entero, con su nombre de usuario y asiento asignado). Después busque el tipo de sesión (x11 o wayland):

    $ loginctl show-session <YOUR_NUMBER> -p Type
    Type=x11

Si está ejecutando una sesión X11, no una sesión Wayland, sus problemas no están relacionados con Wayland. Es un error o de la aplicación concreta o del mismo X11, vea Como depurar problemas Xorg.

¿Su aplicación se ejecuta sobre Wayland de forma nativa o usa XWayland (capa de compatibilidad X11)?

Es importante saber si la aplicación problemática es una aplicación nativa Wayland o se ejecuta a través de XWayland, lo que permite que las aplicaciones heredadas aún se ejecuten en el servidor Xorg, pero se muestren en una sesión Wayland.

Hay diversas maneras de identificar si una aplicación está usando Wayland o XWayland:

  • Seleccione la ventana usando xwininfo o xprop. Ejecute:

    $ xwininfo

    El puntero de su ratón cambiará a una cruz bajo X11, no parece cambiar bajo Wayland. Ahora pulse en cualquier lugar dentro de la ventana de la aplicación que desea probar. Si el comando xwininfo termina (debería imprimir las propiedades de la ventana en el terminal), la aplicación bajo prueba se está ejecutando bajo XWayland. Si no sucede nada (el comando xwininfo está todavía esperando hasta que seleccione una ventana), la aplicación en prueba está corriendo bajo Wayland (puede cerrar el comando con Ctrl+C). También puede usar el comando xprop usando las mismas instrucciones.

  • Las aplicaciones XWayland se listan en la salida de xlsclients. Ejecute:

    $ xlsclients

    Sin embargo, esta lista no es siempre del todo confiable, es posible que falten algunas aplicaciones.

  • Puede intentar ejecutar la aplicación mientras desactiva la variable de entorno DISPLAY:

    $ DISPLAY='' command

    Si la aplicación corre OK, debería estar usando Wayland de forma nativa.

  • Puede ejecutar la aplicación con la variable de entorno WAYLAND_DEBUG=1:

    $ WAYLAND_DEBUG=1 command

    Si ve muchos resultados (en comparación con la ejecución estándar), la aplicación está usando Wayland de forma nativa.

  • Bajo GNOME, puede determinar esto usando la herramienta integrada Looking Glass. Pulse Alt+F2, ejecute:

    lg

    pulse en Windows en la esquina superior derecha de la herramienta y seleccione la ventana deseada pulsando en su nombre. Si ve MetaWindowWayland en la primera línea, esta aplicación está corriendo bajo Wayland. Si ve MetaWindowX11 en la primera línea, esta aplicación está corriendo bajo X11.

Si ha identificado que el problema está en una aplicación XWayland, intente reproducir el problema en una sesión estándar X11. Sí sucede también, no está relacionado con Wayland, es un error o bien de la aplicación concreta o del servidor Xorg, vea Como depurar problemas Xorg. Si el problema sucede solo bajo XWayland pero no en una sesión X11, aún debería informarse contra el servidor Xorg (paquete), puesto que XWayland está incluido en él (como subpaquete xorg-x11-server-Xwayland).

Identificar el componente del problema

Wayland es un protocolo y el problema está raramente en el protocolo mismo. Más bien, es probable que el problema esté en la aplicación, en su conjunto de herramientas o en el compositor.

Los conjuntos de herramientas más notables listos para Wayland son:

  • GTK+ 3 – las aplicaciones predeterminadas en el entorno de GNOME usan casi exclusivamente este conjunto de herramientas. Tenga en cuenta que las aplicaciones que utilizan el más antiguo GTK+ 2 no están preparadas para Wayland.

  • QT 5 – muchas aplicaciones en el entorno KDE utilizan este conjunto de herramientas. Tenga en cuenta que las aplicaciones que utilizan el más antiguo QT 4 no están preparadas para Wayland.

Los compositores Wayland más notables son:

  • Weston

    • la implementación de referencia de un compositor Wayland, mantenido directamente por el proyecto Wayland

  • Mutter - compositor en GNOME. Si está corriendo GNOME, está usando este compositor.

  • Kwin - compositor en KDE. Si está corriendo KDE, está usando este compositor.

Probar bajo diferentes compositores

Si sufre un problema con una aplicación Wayland, es muy útil saber si el problema está presente bajo un único compositor (en este caso es probable que sea un error del compositor) o bajo múltiples compositores (en este caso es probable un error en la aplicación/conjunto de herramientas).

Ejecute su sesión con la referencia del compositor Weston e intente reproducir el problema. Puede ejecutar Weston como una ventana anidada o como una sesión completa. Primero, instale el paquete (puede leer mucha información útil en su página de manual):

$ sudo dnf install weston

Después cree un archivo de configuración que especificará que desea tener soporte XWayland en sus sesiones weston. Cree ~/.config/weston.ini con estos contenidos:

[core] + xwayland=true

Ahora puede iniciar weston como ventana anidada o como sesión completa.

  • Para iniciar una ventana anidada Weston, ejecute esto desde un terminal:

    $ weston

    Debería abrirse una ventana de Weston y debería ver un icono de terminal en la esquina superior izquierda. Use este icono para lanzar un terminal desde el que puede ejecutar la aplicación y otros comandos usando Weston. Salga del compositor simplemente cerrando la ventana o matando el proceso weston.

  • Para iniciar una sesión total Weston (no anidada dentro de otra sesión X11 o Wayland), conmute a un VT libre (Ctrl+Alt+Fx) y ejecute:

    $ weston-launch

    Puede salir de la sesión pulsando el atajo Control+Alt+Retroceso.

Si puede reproducir el problema con Weston, presente un problema contra la aplicación o su conjunto de herramientas (gtk+, qt, etc). De otro modo presente el problema contra el compositor que use su entorno (mutter, kwin, etc). Si el problema ocurre solo con aplicaciones XWayland pero no con aplicaciones nativas Wayland, reporte un error contra el servidor Xorg.

Reportar el problema

Usar software actualizado

Antes de informar del error, asegúrese de estar usando el último software disponible. Asegúrese de que no hay actualizaciones del sistema esperando:

$ sudo dnf update

Si lo hay (y las actualizaciones disponibles parecen plausiblemente relacionadas con los componentes en los que está viendo problemas), actualice el sistema y verifique si el problema sigue presente o se ha corregido.

Buscar reportes similares

Con el objetivo de evitar informes duplicados y también perder su tiempo depurando algo que alguien puede ser que ya haya depurado, busque primero entre los informes existentes. Los problemas o preocupaciones más visibles están listadas en Problemas conocidos, quejas frecuentes, cambios fundamentales. Si no lo ve allí, necesita buscar más profundamente. Probablemente pueda encontrar problemas relacionados con Wayland aquí:

Presentar un error

Después de que haya identificado contra que componente (más probablemente) presentar el problema y no encuentre informe existente sobre él, hay diversos sitios donde presentarlo:

  • Red Hat Bugzilla – recomendado para problemas relacionados con el mismo wayland, el compositor weston, aplicaciones no GNOME, proyecto KDE, conjunto de herramientas QT

  • GNOME Bugzilla – recomendado para problemas relacionados con el compositor mutter, conjunto de herramientas GTK+, aplicaciones bajo el proyecto GNOME (la mayoría de las aplicaciones predeterminadas en Fedora Workstation)

Cuando informe del problema, haga que su informe bloquee nuestro rastreador, para que tengamos una buena imagen general de lo que está roto en muchos componentes diferentes. En su informe de error, establezca Blocks: WaylandRelated o Blocks: KDEWaylandRelated (es posible que tenga que cambiar a ver campos avanzados para ver el campo Blocks:). Esto hará que bloquee uno de estos rastreadores, dependiendo de donde se haya informado el error:

Información a incluir en su informe de error

  1. Diario del sistema. Dado que no existe un servidor único como el servidor X11, la mayor parte de la información importante vendrá del compositor Wayland y las aplicaciones. Todo eso debería estar en el diario del sistema hoy en día. Puede guardar un diario completo desde el último inicio de esta manera:

    $ journalctl -ab > journal.log

    También puede editar el archivo y de acuerdo a las marcas de tiempo eliminar todo lo anterior a que sucediera el problema, con el objetivo de hacer el error más sucinto. * Si su sistema falló o dejó de responder de modo que tuvo que reiniciarlo, puede ver los diarios de los anteriores inicios usando en su lugar`journalctl -a -b -1`.

  2. Salida de depuración de Wayland. Su puede reproducir el problema, ejecute la aplicación problemática de este modo:

    $ WAYLAND_DEBUG=1 command |& tee debug.out

    Debería ver una gran cantidad de resultados impresos. Implicará toda la comunicación entre la aplicación y el compositor.

  3. Información sobre si ocurre el mismo problema cuando ejecuta la aplicación usando XWayland en lugar de Wayland. Para aplicaciones GTK+ 3, puede forzar a una aplicación nativa Wayland a correr usando XWayland de este modo:

    $ GDK_BACKEND=x11 command

    Y viceversa, puede también forzar a una aplicación XWayland a correr usando Wayland (en caso de que tenga solo soporte experimental):

    $ GDK_BACKEND=wayland command

    Las aplicaciones QT 5 corren de modo predeterminado con XWayland. Puede forzar el backend de Wayland:

    $ QT_QPA_PLATFORM=wayland-egl command

    Todo esto se aplica solo a las aplicaciones GTK+ 3 y QT 5.

  4. La descripción del hardware es útil para algunos errores relacionados con el hardware:

    $ lspci -nn > lspci.out
  5. Versiones del paquete. Puede coger la lista y las versiones de todos sus paquetes instalados usando:

    $ rpm -qa | sort > packages.out
  6. La información usual que cada informe de error debería tener.

Depurar gnome-shell

Si gnome-shell se atasca y no responde, es muy útil obtener un seguimiento de su proceso y adjuntarlo al informe. Si esto sucede, cambie a un VT diferente si es posible (Ctrl+Alt+F3 hasta F7) o acceda usando ssh. Primero instale los símbolos de depuración:

$ sudo dnf debuginfo-install `rpm -q gnome-shell`

Después adjunte el depurador gdb a su proceso gnome-shell:

$ gdb -p `pgrep -U $(id -un) -x gnome-shell`
...
(gdb) set logging on
(gdb) thread apply all backtrace full
... press Enter until the whole backtrace is displayed ...
(gdb) quit

Debería tener el seguimiento guardado en el archivo gdb.txt.

Depurar mutter

Puede depurar mutter (usado en gnome-shell) estableciendo sus variables de entorno. Necesitan ser establecidas antes de ejecutar gnome-shell, de modo que si desea acceder a GNOME desde GDM, necesita crear un script contenedor llamado desde un archivo de escritorio en /usr/share/wayland-sessions.

CORREGIRME: Sería útil colocar aquí el script contenedor y el archivo de escritorio.

Problemas conocidos, quejas frecuentes, cambios fundamentales

Aquí listaremos cuestiones de alto perfil que se sabe que no funcionan, que no se han implementado todavía o que se comportan intencionadamente de forma diferente a las aplicaciones X11 normales. Mire también funciones Wayland que lista todas las funciones perdidas o en proceso y sus detalles.

Para ver todos los problemas conocidos, busque reportes en Bugzilla como se menciona en Buscar reportes similares.

Las aplicaciones gráficas no se pueden ejecutar como root desde el terminal

No es posible iniciar aplicaciones gráficas bajo la cuenta root desde el terminal cuando se usa su o sudo. Las aplicaciones que usan polkit para solicitar permisos de administrador solo para ciertas operaciones y solo cuando sea necesario no se ven afectadas (no se inician como root de inmediato). Continúa el debate sobre cual es el mejor enfoque a seguir, vea bug 1274451 y "Sobre ejecutar aplicaciones gui como root" hilo en la lista de correo fedora-devel.

Muchas utilidades X11 bien conocidas no funcionan

Los usuarios avanzados están familiarizados con una amplia gama de utilidades relacionadas con X11, como xkill, xrandr, xdotool, xsel. Estas herramientas no funcionarán en la sesión de Wayland, o solo funcionarán con aplicaciones XWayland pero no con aplicaciones Wayland. Algunas herramientas pueden tener un sustituto que permita llevar a cabo tareas similares.

CORREGIRME: añadir algunos sustitutos preparados para Wayland para herramientas X11 populares

Juegos y otras aplicaciones no pueden cambiar la resolución de monitor

Ya no es posible para una aplicación cambiar la resolución de monitor. Normalmente esto se hacía por los juegos para incrementar el rendimiento. Los juegos basados en Wayland usan un enfoque diferente – escalando su salida. Pero para los juegos X11 (corriendo a través de XWayland) esta solución no está disponible. Esto lleva a diferentes tipos de comportamiento, en base a como está escrito el juego – el juego puede estar arreglado en la resolución del escritorio, o renderizado como una pequeña imagen centrada con barras negras alrededor, o fallar al inicio o algo diferente. Vea bug 1289714.

Para algunos juegos, una posible solución es configurar manualmente la resolución de monitor personalizada antes de ejecutar el juego, si realmente lo necesita. Sin embargo, no siempre será de ayuda.

La captura de pantalla no está disponible con las aplicaciones habituales

Una de las características de Wayland es su diseño de seguridad, que ayuda a proteger al usuario de aplicaciones maliciosas. Las aplicaciones ya no pueden ver todo lo que hay en la pantalla y espiarle. Pero esto también significa que ya no puede ejecutar una aplicación común (como shutter o gtk-recordmydesktop) y usarla para hacer una instantánea o una grabación de pantalla de su escritorio – verá solo su propia pantalla, pero nada más (o puede fallar de inmediato). Para llevar a cabo estas acciones se necesitan usar aplicaciones del sistema (de confianza).

En GNOME, puede usar la herramienta Screenshot (disponible en visión general o como tecla de acceso rápido Printscreen o como comando gnome-screenshot) para capturar una instantánea de todo el escritorio o de una ventana concreta. Puede presionar el atajo de teclado Ctrl+Alt+Shift+R para iniciar una grabación de vídeo de todo el escritorio (se para presionando el mismo atajo otra vez, hay un indicador en la esquina superior derecha, o para automáticamente después de 30 segundos de forma predeterminada) y encontrar la grabación en ~/Videos. Para grabación de pantalla, también puede usar la extensión de gnome-shell EasyScreenCast.

El puntero del ratón se retrasa o vibra bajo carga

Si su ordenador está bajo carga, el movimiento del puntero de su ratón puede dejar de ser fluido y empezar a retrasarse (pararse en algún lugar un corto tiempo y salta al instante a un sitio diferente). Esto es probablemente más destacable en sistemas lentos/sistemas con pocos núcleos de CPU. Vea bug 745032.

Los eventos del teclado a veces se repiten rápidamente

Existe un problema poco común cuando presiona una tecla para escribir una letra y verá varias copias de la letra escrita. Vea bug 757942 y bug 777693.

No todas las teclas se pueden enviar a un escritorio remoto o a una máquina virtual

Algunas aplicaciones envían todas las entradas, incluyendo claves/atajos específicos del sistema como o, a un sistema remoto. Se trata principalmente de visores de escritorio remotos como vncviewer o administradores de máquina virtual como virt-manager o boxes. Bajo Wayland, algunos de los atajos no pueden ser interceptados y por lo tanto son usados en el sistema huésped, no en el sistema remoto/invitado. Vea bug 1285770.