staging.inyokaproject.org

Verwendung spacemouse mit spacenav - Rechteproblem?

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

TheEYE

Avatar von TheEYE

Anmeldungsdatum:
25. April 2007

Beiträge: Zähle...

Hallo liebes Forum,

ich wende mich an euch, da ich vermute, dass sich mein aktuelles Problem vorrangig mit Ubuntu-Detailwissen lösen lässt.

Ich versuche gerade eine spacemouse mittels des freien Treibers spacenav in Betrieb zu nehmen. Um möglichst viele Faktoren auszuschließen, verwende ich zum Testen die in der libspnav-dev vorhandenen Beispiele cube und simple (bzw. simple_x11 und simple_af_unix). Die Beispiele befinden sich hier in ihren jeweiligen Unterordnern:

/usr/share/doc/libspnav-dev/examples

Installation

sudo apt-get install spacenavd libspnav-dev

Zum Testen müssen dann noch die Beispiele kompiliert werden.

Nach der Installation leuchtet die LED am Eingabegerät.

Zunächst bin ich den Schritten aus dem FreeCAD-Wiki gefolgt. Vermutlich müssen diese jedoch angepasst werden (was ich gerne tue, sobald mein setup steht).

spacenav needs these permissions

cp ~/.Xauthority /root/

Restart spnavd and FreeCAD

/usr/bin/spnavd_ctl x11 stop
signalled spacenavd to stop sending X events.
/usr/bin/spnavd_ctl x11 start
You must have an X server running before starting up spacenavd-X11 events.

Nachdem dies nicht das erhoffte Ergebnis brachte, begann ich das FreeCAD-Forum und das web allgemein nach Hinweisen zu durchsuchen. Was häufig zu funktionieren scheint, ist das Neustarten des Treibers in Kombination mit dem Erlauben von Verbindungen zum X Server (Annahme: Treiber startet beim booten vor dem X Server und konnte sich daher nicht bereits mit diesem verbinden). Als empfohlene Befehle habe ich diese hier gefunden:

sudo /etc/init.d/spacenavd stop
sudo xhost +
sudo /etc/init.d/spacenavd start

FreeCAD-Forum: Unable to connect to SpaceNavigator with FreeCAD 0.17 on Fedora 28

Was klappt wann?

  • Ohne Neustart des Treibers

    • Das Ausführen aller Beispiele scheitert, Fehlermeldung:

      failed to connect to the space navigator daemon
  • Mit Neustart des Treibers

    • simple_af_unix, Beispielausgabe:

      got motion event: t(0, 0, 0) r(0, 0, 0)

Die Beispiele simple_x11 und cube liefern mit und ohne Neustart des Treibers die Fehlermeldung

failed to connect to the space navigator daemon

Die Datei /var/log/spnavd.log wird nicht angelegt.

Alle Beispiele laufen, wenn ich vor dem Starten der Beispiele folgenden Befehl ausführe:

sudo spacenavd -d

Hier der dazugehörige output:

Spacenav daemon 0.6
failed to open config file /etc/spnavrc: No such file or directory. using defaults.
adding device.
device name: 3Dconnexion SpaceNavigator
using device: /dev/input/event9

Falls der Treiber bereits läuft, muss dieser zuvor beendet werden

sudo /etc/init.d/spacenavd stop

Fragen und Vermutungen

Während meiner Recherche bin ich auf einen Beitrag auf askubuntu.com gestoßen. Laut diesem Beitrag existiert seit Ubuntu 10.10 keine XAuthority Datei mehr. Angeblich findet sich der "Nachfolger" in

/var/run/gdm/auth-for-<USER>-<RANDOM_CHARACTERS>/database

Die Anweisung bzgl. des Kopierens aus dem FreeCAD-Wiki wäre damit hinfällig.

So wie ich es verstehe, geht es darum, dass Nutzer idR. nicht auf den X Server anderer Nutzer zugreifen können. Das Kopieren der XAuthority Datei hätte dem root Benutzer erlaubt auf den X Server meines Benutzers zuzugreifen. In einem anderen Thread auf askubuntu.com geht es um die "vermisste" XAuthority Datei und einen Hinweis zum "aktuellen" Vorgehen inkl. Verweis auf einen Bugreport inkl. Lösung / workaround auf launchpad.net. Auszug aus Antwort 9:

rom the Debian report #818366 :

just a couple remarks:

(1) The method pkexec uses to grant root (i.e. the user it runs its
argument as) access to the real user's X display doesn't work under
Wayland, but still using X (i.e. using Xwayland).
Xwayland (at least as started by mutter/gnome-shell) is started without the
"-auth" option and hence only grants access to the real user (adopting
Wayland's security model).
Hence there's no Xauthority file to grant access to other users. The
workaround is to explicitly allow root to access the user's X display using

$ xhost +si:localuser:root

Ich habe versucht dem root user die entsprechende Berechtigung über

xhost +si:localuser:root

zu erteilen, leider ändert dies nicht an der zuvor beschriebenen Fehlermeldung beim Ausführen der Beispiele (falls diese Information jemandem mal bereits helfen sollte, Antwort 13 schlägt eine Lösung zur Automatisierung beim Systemstart vor.)

Nun bin ich mir nicht sicher, ob es sich bei meinem Problem um Zugriffsrechte zwischen dem root und meinem Benutzer bzgl. des X Servers handelt oder was es sonst sein könnte / was ich noch versuchen soll.

Ich bin mir auch nicht ganz sicher was ich mit

sudo spacenavd -d

bewirke. Der Befehl ist mir bisher zur "Fehlersuche" begegnet, um festzustellen, ob das Eingabegerät grundsätzlich mit dem System zusammenarbeitet. Ich nehme daher an, dass dies nicht die Lösung sein kann / sollte.

Ich freue mich sehr über Unterstützung!

Viele Grüße Max

Antworten |