Philipp's Computing Blog

Success is about speed and efficiency

3Dconnexion SpaceMouse Pro with Ubuntu 11.10

Installing the Proprietary Driver

mkdir -p ~/Downloads/3D3dxware-linux-v1-6-0.x86_64
cd ~/Downloads/3D3dxware-linux-v1-6-0.x86_64
# ↓ Get the latest from http://www.3dconnexion.com/service/drivers.html
wget http://3dconnexion.s3.amazonaws.com/79108370-9342-3437-a063-4ed4c07cfa86?response-content-disposition=attachment%3Bfilename%3D3dxware-linux-v1-6-0.x86_64.tar.gz&AWSAccessKeyId=AKIAIR6EKS4F6GZY347Q&Expires=1327508645&Signature=s%2F7R8LHm39hXO4hxL8Igh%2FpUDfE%3D
tar -xf 3dxware-linux-v1-6-0.x86_64.tar.gz
sudo ./install-3dxunix.sh

And answer the questions in the following way:

  • Enter (Continue)
  • 4 (Linux)
  • Enter (start with every system start via /etc/inittab)
  • 1 (USB device)

Unfortunately, the driver needs an older version of a library which is not being shipped with Ubuntu 11.10 anymore (/usr/lib/libXm.so.3):

$ sudo /etc/3DxWare/daemon/3dxsrv -d usb
/etc/3DxWare/daemon/3dxsrv: error while loading shared libraries: libXm.so.3: cannot open shared object file: No such file or directory

To install the old version (which came with Ubuntu up to maverick), run:

cd ~/Downloads/3D3dxware-linux-v1-6-0.x86_64
wget http://de.archive.ubuntu.com/ubuntu/pool/multiverse/o/openmotif/libmotif3_2.2.3-4_amd64.deb
dpkg -i libmotif3_2.2.3-4_amd64.deb

Now you can start the 3dxsrv daemon (probably you don't need to run it as super user):

sudo /etc/3DxWare/daemon/3dxsrv -d usb

which will reveal the following information:

3DxWareUNIX = V1.6.0
Device = SpaceMouse Pro
Firmware = V4.34

And you can run the test applications:

  • /tmp/xcube
  • /tmp/xvalue

They are also still in the folder ~/Downloads/3D3dxware-linux-v1-6-0.x86_64.

About the system startup file /etc/inittab: You can list processes there that you want to be started at system startup. One line (one entry) of the file is structured as the following:

id:runlevels:action:process

Alternative Drivers

Xinput

You can directly use the device via X Input. Just add this to your X configuration file:

Section "InputDevice"
    Identifier "SpaceNav"
    Driver "evdev"
    #  ↓ you might have to adjust the name of the device
    Option "Name" "3Dconnexion SpaceNavigator"
    Option "Mode" "relative"
    Option "XRelativeAxisMap"  "0"
    Option "YRelativeAxisMap"  "1"
    Option "ZRelativeAxisMap"  "2"
    Option "RXRelativeAxisMap" "3"
    Option "RYRelativeAxisMap" "4"
    Option "RZRelativeAxisMap" "5"
    Option "ZRelativeAxisButtons" "off"
EndSection

More information to be found on the man page of xinput(1).

spacenav

spacenav is a drop in replacement for the proprietary daemon.

You should probably get the latest version from svn:

cd ~/Downloads
svn co https://spacenav.svn.sourceforge.net/svnroot/spacenav spacenav

Resources