Cuando intento ejecutar "xterm" en termux, dice "no se pudo abrir la pantalla:: 0". ¿Porque?

Estoy ejecutando XServer XSDL. Luego intenté ejecutar xterm en él después de export DISPLAY=:0. Si lo hago export DISPLAY=10.94.XXX.XXX:1, xterm funciona bien. Intenté depurarlo usando strace. Esta es la línea, que parece causar el problema sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused).

He estado discutiendo este problema en Xserver/xsdl . Me dijeron que podría ser un problema de permiso de Android. Así que estoy buscando ayuda aquí.

¿Alguien puede ayudarme a resolver este problema?

Respuestas (1)

Parece que hay algún tipo de firewall que está bloqueando la conexión. No pude resolver este problema. Pero encontré una solución.

  1. Ingresó a una terminal con rootprivilegios.
    (Ej: comando usado suen un emulador de terminal)
  2. Creó una segunda red de bucle invertido por ifconfig
    (Ej ifconfig lo:0 127.0.0.2 netmask 255.0.0.0 up:)
  3. Afortunadamente, "XSERVER XSDL" reconoció esta nueva red sin ninguna queja (nunca pensé que podría detectar una red tan rara).
  4. Por último, configure mi pantalla en un nuevo servidor desde mi entorno chroot como se muestra en la pantalla de bienvenida de XSERVER.
    export DISPLAY=127.0.0.2:1 startfluxbox(o cualquier programa xclient, ahora todo funciona bien)

Nota 1: cada vez que reinicio mi teléfono, debo crear la red de bucle invertido nuevamente. También puede haber algunos archivos .rc para agregar scripts de inicio en Android. Pero nunca me molesté en cambiarlos (porque no reinicio mi teléfono con frecuencia).

Nota 2: Sin embargo, realmente agradecería una solución real (mejor si funciona sin root) porque mi método no se puede aplicar en un teléfono no rooteado. Entonces, las personas con este problema pero sin un teléfono rooteado no pueden usar xserver hasta que alguien encuentre otra solución.