SpaceNavigator

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Bild:neu.png Dieser Artikel wurde neu erstellt und bedarf evtl. noch einer Korrekturlesung. Danach kann diese Box entfernt werden.
Dieser Artikel ist Teil der HOWTO Sammlung

Der SpaceNavigator ist ein spezielles Eingabegerät von 3DConnexion für Google Earth, mit dem sich die Anwender natürlich, schnell und intuitiv in 3D-Umgebungen bewegen kann, auch das Zoomen und Drehen von 3D-Objekten ist möglich.

Eine offizielle Unterstützung durch den Linux Kernel gibt es ab der Kernelversion 2.6.20. Hier werden dann auch alle Tasten und die LED unterstützt. Damit diese Funktionalität auch bei einer Kernelversion 2.6.19 gegeben ist, wird ein Kernelpatch benötigt. Damit der SpaceNavigator unter einer definierten Gerätedevice angesprochen werden kann, ist es notwendig eine neue udev-Regel zu erstellen. Udev übernimmt hier die dynamische Geräteverwaltung /dev im Userspace.

SpaceNavigator
SpaceNavigator


Inhaltsverzeichnis

Wurde die neue Hardware erkannt

Nachdem der SpaceNavigator via USB eingesteckt wird, gibt dmesg die folgende Meldung aus:

usb 3-2: new low speed USB device using uhci_hcd and address 2
usb 3-2: configuration #1 chosen from 1 choice
input: 3Dconnexion SpaceNavigator as /class/input/input8
input: USB HID v1.10 Multi-Axis Controller [3Dconnexion SpaceNavigator] on usb-0000:00:1d.2-2

Udev Informationen der USB-Device abfragen

[root]# udevinfo -a -p /sys/bus/usb/devices/3-2 |grep '{product}'

Die Ausgabe sieht in etwa so aus:

ATTR{product}=="SpaceNavigator"

Udev Regel erstellen

[root]# nano /etc/udev/rules.d/60-spacenavigator.rules

Den folgenden Eintrag in der Datei 60-spacenavigator.rules vornehmen.

KERNEL=="event[0-9]*",  SYSFS{name}=="3Dconnexion Space*",
SYMLINK+="input/3d-nav", MODE="0666" 

Notwendiger Eintrag ab Kernel Version 2.6.22

KERNEL=="usb*", ATTRS{product}=="SpaceNavigator", SYMLINK+="input/3d-nav", MODE="0666"

Die nun erstellte Regel erzeugt einen symbolischen Link auf /dev/input/3d-nav, wenn das 3D-Navigationsgerät der Firma 3Dconnexion angeschlossen wird und erlaubt somit den Lese-Zugriff für jeden Benutzer am Rechner. (Es wäre hier auch möglich einer spezifischen Gruppe, Rechte zu erteilen und den Benutzer des SpaceNavigator dieser Gruppe hinzuzufügen).

Udev Regel aktivieren und Link prüfen

Die Udev Regel wird mit dem folgenden Kommando aktualisiert bzw. aktiviert.

[root]# /sbin/udevtrigger

Es sollte dann ein neuer Link angezeigt werden.

[root]# ls -l /dev/input/3d-nav

Das Ergebnis müsste in etwa so aussehen:

lrwxrwxrwx 1 root root      6 20. Feb 20:34 3d-nav -> event8


Treiber des Herstellers installieren

Dazu wird der Treiber 3dxware-linux-v1-3-0.i386.tar.gz von der Seite 3DConnexion benötigt. Mit der Treiberversion 1.3.0 sollte nun der Spacenavigator auch unter allen Fedora Versionen funktionieren. Zuvor installieren wir noch OpenMotif für Fedora 10 um auch die mitgelierferten Testprogramme xvalue und xcube ausführen zu können.

Eintrag in der /etc/X11/xorg.conf

Der SpaceNavigator kann als X11 Eingabegerät mit dem generischen evdev Treiber, der im gegenwärtigen Xorg Version vorhanden ist, konfiguriert werden. Anwendungen steht er so über das Xinput-API zur Verfügung. Auf dieselbe Art und Weise wie hier beschrieben ist, wird auch bei Anwendungen wie Gimp und Blender der Zugriff auf spezielle Eingabegeräte wie z.B. bei Wacom’s Grafiktabletts, ermöglicht.

[...]

Section "ServerLayout"
[...]
InputDevice "spaceball"
EndSection

[...]

Section "InputDevice"
Identifier "spaceball"
Driver "evdev"
Option "Name" "3Dconnexion SpaceNavigator"
Option "Pass" "3"
Option "ZRelativeAxisButtons" "Off"
EndSection

[...]


X-Server neu starten

Nach den Änderungenn an der xorg.conf muss der X-Server neu gestartet werden. Die kann durch einen Neustart des Rechners oder einfach durch Beenden des X-Servers erledigt werden. Die Tastenkombination hierzu ist:

Strg - Alt - Entf


Mauszeiger mit dem SpaceNavigator steuern

Dazu einfach die Zeile InputDevice in der Datei /etc/X11/xorg.conf ändern. Dies ist zwar nicht sonderlich nützlich, aber zu Demozwecken geeignet.

InputDevice "spaceball" "SendCoreEvents"

Eine Dokumentation mit Beispielen zu edev ist hier verfügbar.

Xinput Schnittstellen auflisten

Das Setup kann mit dem Kommando xidump getetestet werden. Mit dem folgenden Kommando werden alle Geräteschnittstellen gelistet.

[root]# xidump -l

Die Ausgabe sieht in etwa so aus:

spaceball-usb-0000:00:1d.2-2/input0 extension
evdev brain                    extension
Mouse0                         disabled
Keyboard0                      keyboard


Achs- und Tastenwerte anzeigen lassen

[root]# xidump spaceball-usb-0000:00:1d.2-2/input0

xidump wird durch die wacom-tools zur Verfügung gestellt, das dazugehörige rpm Paket lautet linuxwacom.

Eine Ausgabe sieht in etwa so aus:

xidump
v0.7.4                                                                   

InputDevice: spaceball-usb-0000:00:1d.2-2/input0
Valuators: Relative   ID:     65535  Serial Number: Undefined

            x-axis    y-axis   pressure  rotation  throttle    wheel
    data:  +00189    -01854    +12066    -01601    +02924    +00379
     min:  +00000    +00000    +00000    +00000    +00000    +00000
     max:  +00000    +00000    +00000    +00000    +00000    +00000
     res:  +00000    +00000    +00000    +00000    +00000    +00000

 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Proximity:
   Focus:
 Buttons:                                                    18-UP  
    Keys:


<b>Anmerkung</b> <b>Anmerkung:</b>

Eine Unterstützung des SpaceNavigator in GoogleEarth für Linux gibt es derzeit nicht, ist aber geplant.


Manuelles Stoppen und Starten des 3DxWare Dienstes

sollte aus irgendwelchen Gründen der 3DxWare Dienst dauerhaft gestoppt werden, dann reicht es aus in der Datei /etc/inittab folgende Zeile abzuändern.

3d:2345:respawn:/etc/3DxWare/daemon/3dxsrv -d usb </dev/null >/dev/null 2>&1

abändern in

3d:2345:off:/etc/3DxWare/daemon/3dxsrv -d usb </dev/null >/dev/null 2>&1

Danach veranlassen wir, dass der Init-Prozess die Informationen aus der Datei /etc/inittab neu liest, da er auf off steht wird er beendet.

init q


Unterstützte Anwendungen unter Linux

Hersteller Produkt Linux Unterstützung notwendiger Treiber Anforderungen
PTC ProE Wildfire ja 3DConnexion Hardware-Support
Google Google Earth nein
Autodesk Maya 8.0 und Maya 8.5 ja 3DConnexion Qualification of Maya 8.5 on Linux
Blender Blender 2.44 ja 3DConnexion 3D device support


Links

Persönliche Werkzeuge