Je suis en train d'exécuter le code exemple suivant à l'aide de mon 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;
}
D'un excellent tutoriel: DBUS TUTORIAL USING THE LOW-LEVEL API
J'ai ma configuration sans tête Pi pour SSH et ont installé tous les bibliothèques nécessaires au développement de dbus.
cependant, lors de l'exécution du programme dans NetBeans i l'erreur suivante
Impossible de lancer automatiquement un dbus-daemon sans $ DISPLAY pour X11
/usr/bin/dbus-launch terminé anormalement avec le erreur suivante: erreur Autolaunch: l'initialisation X11 a échoué.
Notez que j'ai X11 forwarding activé dans mes propriétés de l'hôte à distance sur Netbeans
je peux voir que, si je SSH dans le Pi et moi-même echo $ DISPLAY vous ne voyez rien, vide.
Jusqu'à présent, j'ai essayé:
in /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
AllowTcpForwarding yes
ne fonctionne pas.
essayé de placer une variable d'environnement d'exécution à
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"
ne fonctionnait pas.
essayé
In /etc/ssh/ssh_config
ForwardX11 yes
ne fonctionnait pas.
S'agit-il d'obtenir mon installation Pi pour X11 ou de configurer mon environnement netbeans pour exécuter le programme avec certains paramètres?
Merci d'avance pour tout conseil.
mise à jour le 30 août 2017:
je fait une nouvelle installation de Debian et a suivi la réponse de Gilles:
Je peux confirmer: dans /etc/ssh/sshd_config
X11Forwarding yes X11DisplayOffset 10
. ..
xauth est installé sur la télécommande Pi.
J'ai installé XQuartz sur mon client mac. Sur ssh -X pi @ IPaddress, xquartz s'ouvre et si je echo $DISPLAY
sur le Pi distant obtiens localhost:12.0
... le nombre change avec chaque terminal.
Actuellement, si ont mal réglé l'environnement du projet dans NetBeans avec:
DISPLAY = localhost: 11.0 (ce qui est faux, car le nombre change à chaque connexion ssh à la Pi à distance). Donc quand j'essaye d'exécuter le programme, NetBeans va se bloquer et je ne peux pas déboguer non plus. Ma question à ce stade est, comment puis-je définir l'environnement DISPLAY correctement pour NetBeans de sorte que chaque fois qu'il établit une connexion SSH au Pi distant et demande le renvoi X11, il aura le bon $ DISPLAY?
Merci pour votre réponse. J'ai suivi la réponse de Gilles dans le lien que vous avez fourni. et également installé XQuartz sur le mac client. S'il vous plaît voir les mises à jour dans ma question principale. Comment puis-je définir correctement l'environnement $ DISPLAY dans mon projet NetBeans afin que chaque fois que netbeans établit une connexion SSH avec le Pi distant, il définit correctement un DISPLAY? Merci beaucoup. –
@Dan_R Si vous avez une nouvelle question, posez une nouvelle question. –
Excuses, vous avez raison ... J'ai soulevé une nouvelle question ici: [link] (https://stackoverflow.com/q/46043094/1315288) –