Solved Upgrade to 14.2 nixes 3rd party (logitech) controller support
#1
I recently installed XBMC 13.2 on Ubuntu Vivid (15.04) straight from the Ubuntu repos. After I had enabled controller support in the settings, my logitech FS710 worked perfectly with XBMC.

After I have enabled the kodi ppa and upgraded to 14.2 I get no response to my input. The upgrade process went smoothly and when I first launched kodi I was told that my settings had been migrated from XBMC to kodi. All my libraries were there and my settings were intact including the enabling of controller support. Despite this as I said I get no response to any input.

I have tried disabling, restarting the computer and reenabling controller support, all to no avail. I have also tried deleting the migrated settings. Going into the 'fresh' settings finds controller support enabled by default but still not working. The controller clearly still works as evidenced by my experience in Steam Big Picture mode.

My experience somewhat echoes that of "Vitaly Gurevich" in the comments on the blog post regarding the release of 14.1, in that 3rd party controller support appears to be broken since the upgrade from 13.2.

Any ideas or suggestions apart from downgrading? My only lead is that apparently there is a new Joystick API and that might have ruined things for me though the announcement of it isn't clear as to whether it has been dropped into a release or still just something in the works.
Reply
#2
start with a Debug Log
Reply
#3
Thanks for the suggestion, wsnipex.

A superficial glance seems to indicate that nothing is wrong. Here's a 'grep Joystick kodi.log' from a session in which I did not touch the controller:

Code:
12:07:18 T:140035312654272  NOTICE: Enabled Joystick: Logitech Gamepad F710

And here's the same from a session in which I just pushed every button I could think of:

Code:
12:01:30 T:140346973751232  NOTICE: Enabled Joystick: Logitech Gamepad F710
12:01:33 T:140346973751232   DEBUG: Joystick 0 button 9 Down
12:01:33 T:140346973751232   DEBUG: Joystick 0 button 9 Up
12:01:34 T:140346973751232   DEBUG: Joystick 0 button 9 Down
12:01:34 T:140346973751232   DEBUG: Joystick 0 button 9 Up
12:01:34 T:140346973751232   DEBUG: Joystick 0 button 9 Down
12:01:35 T:140346973751232   DEBUG: Joystick 0 button 9 Up
12:01:35 T:140346973751232   DEBUG: Joystick 0 button 9 Down
12:01:35 T:140346973751232   DEBUG: Joystick 0 button 9 Up
12:01:36 T:140346973751232   DEBUG: Joystick 0 button 9 Down
12:01:36 T:140346973751232   DEBUG: Joystick 0 button 9 Up
12:01:36 T:140346973751232   DEBUG: Joystick 0 button 9 Down
12:01:36 T:140346973751232   DEBUG: Joystick 0 button 9 Up
12:01:37 T:140346973751232   DEBUG: Joystick 0 hat 1 value 8
12:01:37 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:37 T:140346973751232   DEBUG: Joystick 0 hat 1 value 8
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 value 8
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 value 8
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 value 8
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:38 T:140346973751232   DEBUG: Joystick 0 hat 1 value 2
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 value 2
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:39 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:01:40 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:01:40 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:40 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:40 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:40 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:40 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:41 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:42 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 6 Down
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 6 Up
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 5 Down
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 5 Up
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 5 Down
12:01:43 T:140346973751232   DEBUG: Joystick 0 button 5 Up
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Down
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Up
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Down
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Up
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Down
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Up
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Down
12:01:44 T:140346973751232   DEBUG: Joystick 0 button 5 Up
12:01:45 T:140346973751232   DEBUG: Joystick 0 button 1 Down
12:01:45 T:140346973751232   DEBUG: Joystick 0 button 1 Up
12:01:45 T:140346973751232   DEBUG: Joystick 0 button 3 Down
12:01:45 T:140346973751232   DEBUG: Joystick 0 button 3 Up
12:01:45 T:140346973751232   DEBUG: Joystick 0 button 4 Down
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 4 Up
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 4 Down
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 4 Up
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 2 Down
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 2 Up
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 2 Down
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 2 Up
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 2 Down
12:01:46 T:140346973751232   DEBUG: Joystick 0 button 2 Up
12:02:00 T:140346973751232   DEBUG: Joystick 0 button 2 Down
12:02:00 T:140346973751232   DEBUG: Joystick 0 button 2 Up
12:02:00 T:140346973751232   DEBUG: Joystick 0 button 2 Down
12:02:00 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:02:00 T:140346973751232   DEBUG: Joystick 0 button 2 Up
12:02:00 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:02:00 T:140346973751232   DEBUG: Joystick 0 button 2 Down
12:02:01 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:02:01 T:140346973751232   DEBUG: Joystick 0 button 2 Up
12:02:01 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:02:01 T:140346973751232   DEBUG: Joystick 0 button 1 Down
12:02:01 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:02:01 T:140346973751232   DEBUG: Joystick 0 button 1 Up
12:02:01 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered
12:02:01 T:140346973751232   DEBUG: Joystick 0 hat 1 value 4
12:02:01 T:140346973751232   DEBUG: Joystick 0 button 1 Down
12:02:01 T:140346973751232   DEBUG: Joystick 0 button 1 Up
12:02:01 T:140346973751232   DEBUG: Joystick 0 hat 1 hat centered

Here's a link to the unedited kodi.log of the second session: link to pastebin.com

EDIT: I guess the implication is that kodi does see my controller and - I think - correctly interpretes the input. It just doesn't associate those inputs with doing anything.

Studying the full log file, I can see that once I start hitting keyboard keys, I get one line saying what scancode the key press is and what unicode character has been input as a result - and then a line saying what action kodi takes following that input.
Reply
#4
Okay, so I noticd the following line in the full log:

Code:
12:01:30 T:140346973751232    INFO: Loading special://xbmc/system/keymaps/joystick.Logitech.RumblePad.2.xml

I believed I had seen the FS710 referred to that way at one time, so I fired up a terminal and took a look at the output of 'lsusb':

Code:
Bus 003 Device 002: ID 8087:8001 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 8087:0a2a Intel Corp.
Bus 001 Device 009: ID 046d:c21f Logitech, Inc. F710 Wireless Gamepad [XInput Mode]
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 045e:0780 Microsoft Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

XInput had been the setting I have used the controller with ever since I got it and it works with XBMC 13.2 and Steam. Just for testing I tried switching to DirectInput (there is a little toggle switch on the back of the controller: D <--> X ) and ran lsusb again:

Code:
Bus 003 Device 002: ID 8087:8001 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 8087:0a2a Intel Corp.
Bus 001 Device 010: ID 046d:c219 Logitech, Inc. Cordless RumblePad 2
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 045e:0780 Microsoft Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

As you can see it's now a RumblePad. And apart from the central Logitech button (the one that corresponds to the central X on the MS controller) all buttons work, though some of them slightly differently.

Which means that I've got something that works. Sort of. However, I still think there's a bug here as it used to work in 13.2. Also DirectInput is deprecated in favour of XInput and doesn't work well in Steam Big Picture, not to speak of the support of individual games.

I cannot see any difference in the log file as regards the input, though, which is really strange. As far as the log is concerned kodi seems to be getting the same input - but producing very different results.

Here's the pertinent bits from the two logs, first with the DirectInput setting:
Code:
12:53:09 T:140409250666432  NOTICE: Enabled Joystick: Logitech Logitech Cordless RumblePad 2
12:53:09 T:140409250666432  NOTICE: Details: Total Axis: 4 Total Hats: 1 Total Buttons: 12

And then the XInput:
Code:
12:01:30 T:140346973751232  NOTICE: Enabled Joystick: Logitech Gamepad F710
12:01:30 T:140346973751232  NOTICE: Details: Total Axis: 6 Total Hats: 1 Total Buttons: 11

I include a link to the DirectInput log: link to pastebin
Reply
#5
The controller just needs adding to either an existing compatible keymap or a new one. Since it works as rumble pad, you can use that keymap and change it to your liking. Just copy it to your userdata folder and edit it.
Reply
#6
You are right. The named joystick "Logitech Gamepad F710" (as revelaed by running the command "cat /proc/bus/input/devices") does not appear in any of the keymaps for 14.2.

I tried building on various other keymaps, including the 14.2 RumblePad one, the old 13.2 Xbox360 one that seemed to have worked and the current Xbox360 one that specifically names the F710 as part of the Xbox360 'joystickFamily'. However, I couldn't get any of them to work properly. I suspect that there is some convention shift from using the altname tag for 3rd party controllers to creating these big joystickFamilies of similarly behaving gamepads which explains why the new keymap fails despite having the correct name.

At any rate I figured that it seemed like the new and correct configurations were in place in more recent versions so I switched repos to the unstable one and upgraded to a kodi 15 beta. That one has my controller in the system keymaps, precisely as part of the Xbox360 family and it works out of the box.

Thanks for the help, wsnipex. I'll mark this one as solved.
Reply

Logout Mark Read Team Forum Stats Members Help
Upgrade to 14.2 nixes 3rd party (logitech) controller support0