qubth
Participant
Post count: 1

Hello,

I don’t know if this can be useful here:

I own a X-Arcade Dual Joystick with a serial-to-USB adapter (yeah, more than 10 years of service)
When I use it without Xarcade2Jstick on RetroPie, it’s recogniced as a keyboard, when the service is up, it does nothing.
The system is Raspbian Jessie lite with Retropie from github after fresh install.

pi@arcade:~ $ sudo lsinput
/dev/input/event0
bustype : BUS_USB
vendor : 0xaa55
product : 0x101
version : 272
name : “XGaming X-Arcade”
phys : “usb-3f980000.usb-1.2/input0”
uniq : “”
bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

/dev/input/event1
bustype : BUS_PARPORT
vendor : 0x1
product : 0x1
version : 256
name : “GPIO Controller 1”
phys : “input0”
bits ev : EV_SYN EV_KEY EV_ABS

/dev/input/event2
bustype : BUS_USB
vendor : 0x46a
product : 0x1
version : 256
name : “HID 046a:0001”
phys : “usb-3f980000.usb-1.5/input0”
uniq : “”
bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

pi@arcade:~ $ ls -l /dev/input/event0
crw-rw—- 1 root input 13, 64 Feb 8 23:35 /dev/input/event0

pi@arcade:~ $ id
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(input),108(netdev),997(gpio),998(i2c),999(spi)

pi@arcade:~ $ jstest /dev/input/event0
Driver version is 0.8.0.
jstest is not fully compatible with your kernel. Unable to retrieve button map!
Joystick (Unknown) has 2 axes and 2 buttons.
Testing … (interrupt to exit)

jstest: error reading: Invalid argument

pi@arcade:~ $ uname -a
Linux arcade 4.1.17-v7+ #834 SMP Mon Feb 1 15:17:54 GMT 2016 armv7l GNU/Linux

Made some test with strace on xarcade2jstick and he gets exclusive access to /dev/input/event0 as shown in lsof:

xarcade2j 448 root 4r CHR 13,64 0t0 1848 /dev/input/event0

shows intercepted data after using the xarcade device with this error after pushing UP in left joystick:

read(4,”)3\271V\340\251\f\0\4\0\4\0`\0\7\0)3\271V\340\251\f\0\1\0H\0\1\0\0\0″…, 1024) = 48
gettimeofday({1454977833, 831350}, NULL) = 0
write(0, “)3\271Vv\257\f\0\3\0\1\0\0\0\0\0”, 16) = -1 EBADF (Bad file descriptor)
write(0, “)3\271Vv\257\f\0\0\0\0\0\0\0\0\0”, 16) = -1 EBADF (Bad file descriptor)
write(0, “)3\271Vv\257\f\0\0\0\0\0\0\0\0\0”, 16) = -1 EBADF (Bad file descriptor)
read(4, “)3\271V\1@\16\0\4\0\4\0`\0\7\0)3\271V\1@\16\0\1\0H\0\0\0\0\0″…, 1024) = 48
gettimeofday({1454977833, 934357}, NULL) = 0
write(0, “)3\271V\325A\16\0\3\0\1\0\2\0\0\0”, 16) = -1 EBADF (Bad file descriptor)
write(0, “)3\271V\325A\16\0\0\0\0\0\0\0\0\0”, 16) = -1 EBADF (Bad file descriptor)
write(0, “)3\271V\325A\16\0\0\0\0\0\0\0\0\0”, 16) = -1 EBADF (Bad file descriptor)

Hope it helps

Kind regards