Impossible de lancer un dbus-daemon sans un $AFFICHAGE pour X11. NetBeans. L'ip de l'hôte distant
Je suis en train d'exécuter l'exemple de code 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;
}
À partir d'un excellent tutoriel:
DBUS TUTORIEL EN UTILISANT LES API DE BAS NIVEAU
J'ai ma tête Pi de configuration de SSH et que vous avez installé toutes les bibliothèques nécessaires pour dbus développement.
cependant, lors de l'exécution du programme dans netbeans, je reçois l'erreur suivante
Incapable de lancer un dbus-daemon sans un $AFFICHAGE pour X11
/usr/bin/dbus-launch est terminée anormalement avec l'erreur suivante: Lancer d'erreur: X11 échec de l'initialisation.
remarque que j'ai X11 forwarding est activé dans mon hôte distant propriétés sur Netbeans
Je peux voir que, si je SSH dans la Pi moi-même et
echo $AFFICHAGE
ce ne retourne rien, vide.
Jusqu'à présent, j'ai essayé:
in /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
AllowTcpForwarding yes
n'a pas de travail.
essayé le réglage d'une course variable d'environnement pour
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"
n'a pas fonctionné.
essayé
In /etc/ssh/ssh_config
ForwardX11 yes
n'a pas de travail.
Est-il un cas de l'obtention de mon Pi installation de X11 ou de la configuration de mon netbeans environnement pour exécuter le programme avec certains paramètres?
Je vous remercie à l'avance pour tous les conseils.
mise à jour le 30 août 2017:
J'ai fait une nouvelle installation de debian et de suivi de Gilles réponse:
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@Adresseip, xquartz s'ouvre et si je echo $DISPLAY
sur la télécommande Pi je obtenir localhost:12.0
... le numéro change à chaque terminal.
Actuellement, si vous avez mal réglé l'environnement du projet dans netbeans avec:
DISPLAY=localhost:11.0 (ce qui est faux, parce que le nombre change à chaque connexion ssh à distance Pi).
Donc, lorsque j'essaie d'exécuter le programme, NetBeans se bloque et je ne peux pas debug soit.
Ma question à ce stade est, comment puis-je régler l'AFFICHAGE de l'Environnement correctement pour NetBeans, de sorte que chaque fois qu'il fait une connexion SSH à distance Pi et les demandes de retransmission X11, il aura le bon $AFFICHAGE?
Vous devez vous connecter pour publier un commentaire.
Autolaunch de dbus-daemon ne fonctionne que lorsque, en vertu d'une session X11. Il est désactivé car il n'y a aucun moyen pour les différentes applications de créer une instance de la dbus démon.
Si vous souhaitez exécuter un dbus démon sur votre pi boîte indépendamment de X11, probablement, vous devez le configurer pour lancer le dbus démon au démarrage et à l'exportation, le bus d'adresse en
DBUS_SESSION_BUS_ADDRESS variable d'environnement.
Pour plus d'info voir https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690530
En revanche, si vous souhaitez utiliser votre session X distante, vous avez besoin pour réparer votre mal configuré la redirection X11 tels que la variable d'environnement DISPLAY est réglé correctement lorsque vous en ssh sur la Pi. Voir e.g https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely .
La solution à ce problème est comme suit:
https://unix.stackexchange.com/a/12772
Aussi, veiller à ce que XQuartz (X11 client) est en cours d'exécution sur l'ordinateur client (macOS dans ce cas).
Je vais confirmer si cela fonctionne avec le Pi (serveur) qui s'exécute dans une tête de configuration.