Steam Link

Steam Link

1.1.61.150 irreversibly breaks xow support on Raspberry Pi 4
Running Raspbian Buster with Desktop on Raspberry Pi 4. I use Xbox One (1708) controllers via the 2018 wireless USB adapter with xow by Medusalix.

I hadn't used the Pi in a while and I was on version 1.1.56.x. Logged on to play, auto updated to 1.1.61.156 and the adapter stopped working.

I turn on the controller and the LED on the dongle will turn on and the controller will pair for 10 seconds, after which the LED will remain on but the controller will return to it's passive, unpaired mode (slow blinking light, not fast blinking as evidenced in pairing mode). The adapter is unresponsive at this point, button does nothing, and removing it and plugging it back in will result in it doing nothing, no LED or any activity whatsoever. Controller unable to pair.

I attempted to roll back to previous installs via directions seen here:

https://steamcommunity.com/app/353380/discussions/6/1660069015242109357/

The roll back worked, but the adapter did not. I uninstalled SteamLink completely, uninstalled xow and reinstalled xow without reinstalling steamlink and it no longer worked. did full system update and upgrade and nothing changed.

I rolled my system back to an image from before the update, did full updates and upgrades, and the dongle worked. Via directions from above link, I started walking through builds of SteamLink starting with 1.1.56.x and tested each build.

The dongle works on:
1.1.57.137
1.1.58.140
1.1.59.142
1.1.60.143
1.1.61.145-148

Only after upgrading to 1.1.61.150 did the dongle stop working. I didn't test the controllers with USB after the dongle broke (because I'm an idiot and forgot to) but if any future updates break the dongle I'll try it. I'm going to reimage and update to 1.1.61.148 and stay there unless further testing is needed.

I also tested the dongle on 1.1.61.156 without independently installing xow, because I thought I remembered reading elsewhere that support was going to be incorporated (possibly only on SteamLink hardware?) but it didn't work.
Originally posted by Mussezera:
Edit /lib/udev/rules.d/56-steamlink.rules and change the mode of the uinput line from 0660 to 0666. It did the trick for me.

There is a similar issue on xow's Github: https://github.com/medusalix/xow/issues/54.

BTW you can check xow logs with sudo journalctl -u xow.
The error I was having was before the fix above was:

Apr 24 17:31:17 raspberrypi xow[2308]: terminate called after throwing an instance of 'InputException' Apr 24 17:31:17 raspberrypi xow[2308]: what(): Error opening device: Permission denied Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Main process exited, code=killed, status=6/ABRT Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Failed with result 'signal'.
< >
Showing 1-7 of 7 comments
Interesting. 1.1.61.150 is the addition of CEC support, which does use the uinput driver, and updated the udev rules to change uinput to the group "input" and mode 0660. What user is xow running as? Maybe the udev rules block it from creating the uinput device it uses?
Running as root.
Originally posted by JebJeb:
Running as root.

Do you get any debug output from xow if you run it manually?
The author of this thread has indicated that this post answers the original topic.
Edit /lib/udev/rules.d/56-steamlink.rules and change the mode of the uinput line from 0660 to 0666. It did the trick for me.

There is a similar issue on xow's Github: https://github.com/medusalix/xow/issues/54.

BTW you can check xow logs with sudo journalctl -u xow.
The error I was having was before the fix above was:

Apr 24 17:31:17 raspberrypi xow[2308]: terminate called after throwing an instance of 'InputException' Apr 24 17:31:17 raspberrypi xow[2308]: what(): Error opening device: Permission denied Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Main process exited, code=killed, status=6/ABRT Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Failed with result 'signal'.
Originally posted by slouken:
Originally posted by JebJeb:
Running as root.

Do you get any debug output from xow if you run it manually?

Sorry I had already rolled back to my previous install; I had to update again to try to reproduce the problem. I did so, but I'm now testing on 1.1.61.156, because I forgot to specify the build number again.

When I start the controller it will connect, then the dongle will hang with the LED active and the controller will disconnect. I ran xow manually via

sudo ./xow

and the dongle recovered and was able to sync with the controller with normal output. The dongle (and controller) will behave normally as long as the terminal window is open... so I guess technically this is a fix. I could change my steamlink shortcut to manually run xow as well and it could work.

But if the terminal window is closed, it will hang and be non-responsive and the controller will disconnect again. I tested this with xow 0.3 and at this point the dongle was non-response and un-recoverable, but in xow 0.4 it seems to be able to recover via manually running it again in the terminal. I think they recently made changes to xow to help it recover from "sleep" states, so I'm wondering if the dongle is recognizing this as a sleep state. Because of this however, if I were to link the running of xow to steamlink, if I were to exit steamlink with the controller the dongle would remain in the perpetually active state with the LED on.

I attempted to compile a debug log when it was frozen but I got the error:

make: nothing to be done for 'all'

so I think there's something wrong with the formatting of the makefile. I'm not exceptionally well-versed in Linux, so I apologize if this isn't helping.
Originally posted by Mussezera:
Edit /lib/udev/rules.d/56-steamlink.rules and change the mode of the uinput line from 0660 to 0666. It did the trick for me.

There is a similar issue on xow's Github: https://github.com/medusalix/xow/issues/54.

BTW you can check xow logs with sudo journalctl -u xow.
The error I was having was before the fix above was:

Apr 24 17:31:17 raspberrypi xow[2308]: terminate called after throwing an instance of 'InputException' Apr 24 17:31:17 raspberrypi xow[2308]: what(): Error opening device: Permission denied Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Main process exited, code=killed, status=6/ABRT Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Failed with result 'signal'.


Ahh thank you. I will look into this and see if it works for me. I walked away from my computer while typing and you made your post in the interim, otherwise I wouldn't have bothered haha.
For some reason none of the formatting buttons are working on the website and I can't mark the problem resolved, but the fix provided by Mussezera seems to work. Dongle works normally without having to manually run it. Thanks everybody.

Edit: After posting it let me edit... so now it's working. This is the response with the fix:

Originally posted by Mussezera:
Edit /lib/udev/rules.d/56-steamlink.rules and change the mode of the uinput line from 0660 to 0666. It did the trick for me.

There is a similar issue on xow's Github: https://github.com/medusalix/xow/issues/54.

BTW you can check xow logs with sudo journalctl -u xow.
The error I was having was before the fix above was:

Apr 24 17:31:17 raspberrypi xow[2308]: terminate called after throwing an instance of 'InputException' Apr 24 17:31:17 raspberrypi xow[2308]: what(): Error opening device: Permission denied Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Main process exited, code=killed, status=6/ABRT Apr 24 17:31:17 raspberrypi systemd[1]: xow.service: Failed with result 'signal'.

Thanks again!
< >
Showing 1-7 of 7 comments
Per page: 1530 50