Re: Joystick not found on Linux/amd64

From: Joshua Wise
Date: Sun Dec 19 2004 - 22:09:39 EST


Bernhard Ager wrote:
Hello,

I just tried out version 8.03 of X-Plane for Linux. Works really smoothly for me, except that the joystick is not found :-( The joystick itself should be working, as e.g. jstest tells me:

Joystick (Analog 4-axis 4-button joystick) has 4 axes and 4 buttons. Driver version is 2.1.0.

The issue might be, that I am using Linux on the amd64 architecture and letting run X-Plane in the 32bit "emulation", though I can't really see why.
I've had a report of this problem in the past. I have a vague understanding of why it happens, but I'm not sure how to fix it.

As far as I can tell, the problem is that my code uses the joystick ioctls to get the version, passing it a 32-bit address to return the version into. This doesn't work out so hot in the 64-bit kernel, which decides that my 32-bit address is full of crap, and gives me an errno of -EFAULT, which means that I passed it a bad address. My code handles this by not detecting the joystick at all, thinking that the version is too old, since the kernel didn't change it.

So, basically, I think I know why it happens, but I'm not certain whether its my code at fault or the kernel's. This is a good question. I'm going to cc: this to LKML, in the hope that somebody there can provide some insight.

I am not subscribed to LKML - anyone on there who is responding, please cc: me in your responses.

joshua
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/