Estoy tratando de ejecutar el siguiente código de ejemplo utilizando mi NetBeans IDE:

    #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dbus/dbus.h>

int main() {
    DBusConnection *connection = NULL;
    DBusError error;
    char buffer[1024];

    dbus_error_init(&error);
    connection = dbus_bus_get(DBUS_BUS_SESSION, &error);
    if (dbus_error_is_set(&error)) {
        fprintf(stderr, "%s", error.message);
        abort();
    }

    puts("This is my unique name");
    puts(dbus_bus_get_unique_name(connection));
    fgets(buffer, sizeof(buffer), stdin);

    return 0;
}

De un excelente tutorial:
DBUS TUTORIAL DE USO DE LA API DE BAJO NIVEL

Tengo mi sin cabeza Pi de configuración de SSH y se han instalado en todas las bibliotecas necesarias para dbus desarrollo.

sin embargo, cuando se ejecuta el programa en netbeans recibo el siguiente error

Incapaz de ejecutar un dbus-daemon sin un $DISPLAY para X11

/usr/bin/dbus-launch terminado anormalmente con el siguiente error: el inicio automático de error: X11 error de inicialización.

nota que tengo el reenvío por X11 habilitado en mi host remoto propiedades en Netbeans

Puedo ver que, si me SSH en el Pi a mí mismo y
echo $DISPLAY
este no devuelve nada, vacío.

Hasta ahora, he intentado:

in /etc/ssh/sshd_config 
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
AllowTcpForwarding yes

no funciona.

trató de establecer un entorno de ejecución variable

DISPLAY export DISPLAY=$HOSTNAME:0.0

0x212d0 "org.freedesktop.DBus.Error.Spawn.ExecFailed"
0x21fe8 "/usr/bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.\n"

no funciona.

intentado

In /etc/ssh/ssh_config
ForwardX11 yes

no funciona.

Es un caso de llegar mi Pi de configuración de X11 o la configuración de mi netbeans entorno para ejecutar el programa con ciertos parámetros?

Gracias de antemano por cualquier consejo.

actualización 30 de agosto de 2017:

Hice una instalación limpia de debian y seguido Gilles respuesta:

https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely

Puedo confirmar:
en /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10

xauth está instalado en el mando a distancia Pi.

He instalado XQuartz en mi cliente de mac. Sobre ssh -X [email protected], xquartz abre y si me echo $DISPLAY en el mando a distancia Pi i get localhost:12.0 … el número cambia con cada terminal.

Actualmente, si se han configurado de forma incorrecta el entorno del proyecto en netbeans con:

DISPLAY=localhost:11.0 (esto es incorrecto, porque el número cambia con cada conexión ssh a la distancia de Pi).

Así que cuando intento ejecutar el programa, NetBeans se bloquea y no puedo depurar bien.

Mi pregunta en esta etapa es, ¿cómo puedo configurar el Entorno de VISUALIZACIÓN correctamente para NetBeans para que cada vez que se hace una conexión SSH a la distancia de Pi y las solicitudes de reenvío por X11, tendrá la correcta $DISPLAY?

InformationsquelleAutor Dan_R | 2017-08-29

2 Comentarios

  1. 2

    Inicio automático de dbus-daemon sólo funciona cuando en virtud de una sesión X11. Es lo contrario desactivado porque no hay forma de diferentes aplicaciones para establecer una instancia común de la dbus demonio.

    Si desea ejecutar un demonio dbus en su pi cuadro independientemente de X11, probablemente debería configurar para que se inicie el demonio dbus en el inicio, y exportación de la dirección de bus en
    DBUS_SESSION_BUS_ADDRESS variable de entorno.

    Para más información ver https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690530

    Por otro lado, si desea utilizar el control remoto de la sesión X, necesita arreglar su mal configurado el reenvío por X11 tal que la variable de entorno DISPLAY está ajustado correctamente cuando usted ssh en el Pi. Véase e.g https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely .

    • Gracias por su respuesta. He seguido Gilles respuesta en el enlace que usted ha proporcionado. y también instalado XQuartz en el cliente de mac. Por favor, ver las actualizaciones en mi pregunta principal. ¿Cómo puedo configurar el $de entorno DISPLAY correctamente en mi proyecto de NetBeans para que cada vez netbeans hace una conexión SSH a la distancia de Pi, se establece correctamente una PANTALLA? Muchas gracias.
    • Si usted tiene una nueva pregunta por favor pregunte a una nueva pregunta.
    • Disculpas, estás en lo correcto… he planteado una nueva pregunta aquí: [link] (stackoverflow.com/q/46043094/1315288)
  2. 0

    La solución a esto fue como sigue:

    https://unix.stackexchange.com/a/12772

    También, asegurando que XQuartz (X11 cliente se ejecuta en el equipo cliente (macOS en este caso).

    Voy a confirmar si esto funciona con la Pi (servidor) que se ejecuta en una cabeza de configuración.

Dejar respuesta

Please enter your comment!
Please enter your name here