In r183, when I connect a SpacePilot, this appears in the log:
Device detection, parsing /proc/bus/input/devices
found usb device [46d:c625]: "3Dconnexion SpacePilot" (/dev/input/mouse2)
adding device.
EVIOCGNAME ioctl failed: Inappropriate ioctl for device
device name: unknown
Number of axes: 6
failed to grab the device: Inappropriate ioctl for device
using device: /dev/input/mouse2
After this point, the SpacePilot acts as a mouse and doesn't send any 6dof events, e.g. nothing shows up in the simple_x11 example program and it doesn't work in Blender.
I think this happens because when a SpacePilot is connected, /proc/bus/input/devices lists a mouse handler first, e.g. the line "H: Handlers=mouse2 event8 ". (It's always a mouse handler and then an event handler, in that order.) The problem arises when spacenavd tries to open /dev/input/mouse2 first, gets the error, and continues to use it anyway.
Not sure if this is an ideal solution, but I find if I uncomment lines 130-134 in dev_usb_linux.c, my SpacePilot works successfully. Those uncommented lines reject /dev/input/mouse2 with a EVIOCGBIT error, causing spacenavd to remove mouse2 altogether and try /dev/input/event8 next:
Device detection, parsing /proc/bus/input/devices
found usb device [46d:c625]: "3Dconnexion SpacePilot" (/dev/input/mouse2)
adding device.
EVIOCGNAME ioctl failed: Inappropriate ioctl for device
device name: unknown
Number of axes: 6
EVIOCGBIT ioctl failed
: Inappropriate ioctl for device
removing device: unknown
adding device.
device name: 3Dconnexion SpacePilot
Number of axes: 6
using device: /dev/input/event8
After this point, the SpacePilot sends 6dof events which appear in simple_x11, and it also works in Blender.
Hello, and thanks a lot for tracking this problem down!
I did a simple change which I believe should fix this. Could you try again with the svn HEAD (rev 184 currently) and let me know if it works?
Cheers.
I had the same issue with SVN checkout from April 3, 2017. The suggested workaround above, uncomment 4 lines and recompile, resolved my issue as well.
FYI. Fedora release 25. Last entry of devices file contains the following:
I: Bus=0003 Vendor=046d Product=c629 Version=0111
N: Name="3Dconnexion SpacePilot PRO "
P: Phys=usb-0000:00:1a.7-1.4/input1
S: Sysfs=/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1.4/1-1.4:1.1/0003:046D:C629.0003/input/input12
U: Uniq=
H: Handlers=leds mouse1 event9 js0
B: PROP=0
B: EV=2001b
B: KEY=7fffffff 0 0 0 0
B: ABS=3f
B: MSC=10
B: LED=100
--- After recompile
[root@linlab log]# /usr/local/bin/spacenavd -d -v
Spacenav daemon svn-r110
Device detection, parsing /proc/bus/input/devices
found usb device [46d:c629]: "3Dconnexion SpacePilot PRO " (/dev/input/event9)
adding device.
device name: 3Dconnexion SpacePilot PRO
Number of axes: 6
Axis 0 value range: -500 - 500 (fuzz: 0)
Axis 1 value range: -500 - 500 (fuzz: 0)
Axis 2 value range: -500 - 500 (fuzz: 0)
Axis 3 value range: -500 - 500 (fuzz: 0)
Axis 4 value range: -500 - 500 (fuzz: 0)
Axis 5 value range: -500 - 500 (fuzz: 0)
using device: /dev/input/event9
trying to open X11 display ":0"
XAUTHORITY=/root/.xauthXx4NVP
Removing device "3Dconnexion SpacePilot PRO " from X server
unhandled event: 17
adding dev event for device: /dev/input/event9
Output from stock spacenavd included in Fedora repository:
[root@linlab log]# /usr/bin/spacenavd -d -v
Spacenav daemon 0.6
Device detection, parsing /proc/bus/input/devices
found usb device [46d:c629]: "3Dconnexion SpacePilot PRO " (/dev/input/leds)
adding device.
failed to open device: No such file or directory
removing device:
adding device.
EVIOCGNAME ioctl failed: Inappropriate ioctl for device
device name: unknown
Number of axes: 6
failed to grab the device: Inappropriate ioctl for device
using device: /dev/input/mouse1
trying to open X11 display ":0"
XAUTHORITY=/root/.xauthXx4NVP
Hello, since I updated my system the driver won't work the way it should. Now I've got the here called problem.
I use Arch linux, kernel 4.14.15-1, the latest spacenavd aviable via AUR (the same like manual download). The Version of libspnav is 0.2.3-2. In spacenavd no difference if the lines 130-134 are comented or uncomented.
Here the posting by spacenavd:
[bernhard@wicca ~]$ sudo spacenavd -v -d
Spacenav daemon 0.6
failed to open config file /etc/spnavrc: No such file or directory. using defaults.
Device detection, parsing /proc/bus/input/devices
found usb device [46d:c629]: "3Dconnexion SpacePilot PRO " (/dev/input/mouse2)
adding device.
EVIOCGNAME ioctl failed: Inappropriate ioctl for device
device name: unknown
Number of axes: 6
failed to grab the device: Inappropriate ioctl for device
using device: /dev/input/mouse2
trying to open X11 display ":0"
XAUTHORITY=/home/bernhard/.Xauthority
Please try the latest subversion code. I think this bug was fixed in revision 184 back in 2015. If you can reproduce the bug with the code from svn, let me know to re-open this bug.
Hi John,
the AUR package loads the up ot date sourcecode of spacenavd, I did verify
against the manual download, so it shoud be r184. I tried downgrad of
kernel without any change. On the laptop it works there is the only
diference libspnav 0.2.3-1, on workstation libspnav 0.2.3-2. Can't
downgrade to libspnav, don't have the outdated package in cache anywhere.
Last edit: John Tsiombikas 2018-01-30
Don't bother. libspnav shouldn't make any difference. I'm re-openning the bug.
THANKS A LOT from France !!!!!
I've spent hours looking for a solution and finaly your solution works fine for my Space Pilot under Debian.
Just an addon : the "make install" creates the driver under /usr/local/bin. It must be copied under /usr/bin after stoping the former spacenavd service.
Sylvain
If you want to install in /usr just use the option --prefix=/usr when running the configure script. But copying it manually also works.
Last edit: John Tsiombikas 2018-03-04