Skip to content

Udev rules and TransportError #62

Description

@m-weigand

Describe the bug

On my Debian machine with a backport-kernel (5.9.15) the udev-rule

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users"

suggested here: https://github.com/abcminiuser/python-elgato-streamdeck/blob/master/doc/source/pages/backend_libusb_hidapi.rst

produces to a TransportError

raise TransportError("Could not open HID device.")

It turns out that on none of my debian machines my user was part of the users group. However, all of these machines were upgraded from earlier versions (this also applies to a raspbian rpi4 - here only the pi user is part of users, not additional users added with adduser).

I was able to fix the issue by modifying the udev rule based on randomly found similar issues for other projects (e.g.. https://wiki.archlinux.org/index.php/Talk:Udev or stapelberg/openhantek@b02d417 )

# does not work on my Debian 10 machine
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users"
# works
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
# works
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", TAG+="udev-acl"
# # works
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", TAG+="uaccess"
# does not work on my machine
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", MODE="0660"

Unfortunately my knowledge of udev-internals is very limited and therefore I cannot propose a "correct" fix (if this is actually an issue). However, my understanding of the uaccess tag is that it grants access rights to every logged-in user, which seems reasonable for the use of the streamdeck.

To Reproduce

Use and apply the udev rules a proposed in the manual.

StreamDeck Information
List the model of StreamDeck(s) you are using here.

System Information

Debian 10.7 (buster)
Linux nathan 5.9.0-0.bpo.5-amd64 #1 SMP Debian 5.9.15-1~bpo10+1 (2020-12-31) x86_64 GNU/Linux
steamdeck library installed in fresh virtualenv from pypi (0.8.2, python 3.7)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions