Ubuntu 20.04 - Streamdeck broken
See original GitHub issue$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install libhidapi-hidraw0 libudev-dev libusb-1.0-0-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libusb-1.0-0-dev is already the newest version (2:1.0.23-2build1).
libhidapi-hidraw0 is already the newest version (0.9.0+dfsg-1).
libudev-dev is already the newest version (245.4-4ubuntu3.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ lsusb | grep Elgato
Bus 001 Device 011: ID 0fd9:006d Elgato Systems GmbH Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
$ cat /etc/udev/rules.d/99-streamdeck.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
$ pip3 install --user streamdeck_ui
Collecting streamdeck_ui
Using cached streamdeck_ui-1.0.2-py3-none-any.whl (1.2 MB)
Requirement already satisfied: pynput<2.0,>=1.4 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (1.6.8)
Requirement already satisfied: hidapi<0.8.0,>=0.7.99 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (0.7.99.post21)
Requirement already satisfied: pillow<7.0,>=6.1 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (6.2.2)
Requirement already satisfied: pyside2<6.0,>=5.13 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (5.15.0)
Requirement already satisfied: streamdeck<0.7.0,>=0.6.3 in ./.local/lib/python3.8/site-packages (from streamdeck_ui) (0.6.3)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from pynput<2.0,>=1.4->streamdeck_ui) (1.14.0)
Requirement already satisfied: python-xlib>=0.17; "linux" in sys_platform in ./.local/lib/python3.8/site-packages (from pynput<2.0,>=1.4->streamdeck_ui) (0.27)
Requirement already satisfied: setuptools>=19.0 in /usr/lib/python3/dist-packages (from hidapi<0.8.0,>=0.7.99->streamdeck_ui) (45.2.0)
Requirement already satisfied: shiboken2==5.15.0 in ./.local/lib/python3.8/site-packages (from pyside2<6.0,>=5.13->streamdeck_ui) (5.15.0)
Installing collected packages: streamdeck-ui
Successfully installed streamdeck-ui-1.0.2
$ sudo usermod -a -G plugdev `whoami`
$ which streamdeck
/home/rber/.local/bin/streamdeck
rber@t460s-4:~$ /home/rber/.local/bin/streamdeck
Traceback (most recent call last):
File "/home/rber/.local/bin/streamdeck", line 8, in <module>
sys.exit(start())
File "/home/rber/.local/lib/python3.8/site-packages/streamdeck_ui/gui.py", line 266, in start
for deck_id, deck in api.open_decks().items():
File "/home/rber/.local/lib/python3.8/site-packages/streamdeck_ui/api.py", line 99, in open_decks
for deck in DeviceManager.DeviceManager().enumerate():
File "/home/rber/.local/lib/python3.8/site-packages/StreamDeck/DeviceManager.py", line 90, in __init__
self.transport = self._get_transport(transport)
File "/home/rber/.local/lib/python3.8/site-packages/StreamDeck/DeviceManager.py", line 82, in _get_transport
raise ProbeError("Probe failed to find any functional HID backend.", probe_errors)
StreamDeck.DeviceManager.ProbeError: ('Probe failed to find any functional HID backend.', {'hid': OSError('The libhidapi-hidraw0 backend is currently blacklisted for StreamD
eck devices.'), 'hidapi': TypeError("enumerate() got an unexpected keyword argument 'vendor_id'")})
Issue Analytics
- State:
- Created 3 years ago
- Comments:8
Top Results From Across the Web
Ubuntu 20.04 LTS libusb/hidapi fails to open Corsair/Elgato ...
When I try and run it without sudo it fails to open the device. hidapi: failed to open device. I created a /etc/udev/rules.d/51-usb-streamdeck....
Read more >Using the Elgato Stream Deck on Linux just got a whole lot ...
If you're a livestreamer, video creator or anything like that then the Elgato Stream Deck seems like an incredible useful bit of kit....
Read more >My elgato streamdeck driver for Linux has just released - Reddit
I know the Linux Desktop client doesn't get a lot of updates so I'm glad it isn't broken, little things like that really...
Read more >streamdeck-ui
Streamdeck uses pynput for simulating Key Presses but it lacks proper support for Wayland. Generally your results will be good when using X...
Read more >How to Set Up Elgato's Stream Deck on Ubuntu Linux 21.10
In this post I'll share how I got my Elgato StreamDeck set up on Ubuntu 22.04 and how I use it to switch...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
It looks like that made it work 😉
I highly recommend updating the instructions here[1]. And also it might help to inform people who package it for various distros. [1]https://timothycrosley.github.io/streamdeck-ui/
The usb library dependency stuff is quite a nightmare to be honest. I’ll try explain it as best I can here for future reference:
Version 1.0.2 of streamdeck-ui uses version 0.6.3 of the streamdeck python library. This v 0.6.3, would “detect” which python library you installed for communicating with the streamdeck device. It would be either hid or hidapi. Some nuanced issues can crop up, mostly if you have both libhidapi-libusb0 and libhidapi-hidraw0 installed. The libhidapi-hidraw0 library is not compatible with all stream decks but libhidapi-libusb0 is, but sometimes it would pick the wrong one.
Fast forward to today: Version 1.0.3 (currently being worked on) uses version 0.8.3 of streamdeck. It no longer requires a python library to provide communication to the streamdeck device. Instead, it directly accesses the LibUSB HIDAPI Backend. That work started here.
TLDR: In the upcoming 1.0.3 release you just need libhidapi-libusb0 installed. It should work even if you had libhidapi-hidraw0 installed (it will choose the right one).