ValveSoftware / ValveSoftware/steam-devices

Missing hidraw uaccess rule for Xbox Wireless Controller over Bluetooth (045E:02E0)

Open Beginner friendly
#89 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
241
Forks
59
PR merge metrics
No merged PRs in 30d

Description

60-steam-input.rules has hidraw uaccess rules for Valve, Sony, Nintendo, and the Xbox Elite Series 2 (045E:0B22), but not for the standard Xbox Wireless Controller over Bluetooth (045E:02E0, kernel hid-microsoft driver).

So after yesterdays update to current Proton Experimental build, it now rteads Xbox Bluetooth pads via hidraw and not the old evdev.

With no rule, /dev/hidraw* for this controller stays root:root 0600, so any game running with Steam Input disabled sees no controller at all depite Steam itself still detecting it fine via evdev, which made this a pain to diagnose.

Verified on: CachyOS (Arch), steam-devices 1.0.0.86, Xbox Wireless Controller over Bluetooth.

Reproduce steps:

  1. Pair the controller over Bluetooth (shows up as 045E:02E0, hid-microsoft).
  2. Launch any Proton game with Steam Input disabled (I used Exo One, appid 773370) on Proton Experimental. Controller is not detected in-game.
  3. getfacl /dev/hidrawN for the controller shows no user ACL (root-only, 0600).
  4. setfacl -m u:$USER:rw /dev/hidrawN and the controller is detected in-game immediately.

Fixed via the following rule:

KERNEL=="hidraw*", KERNELS=="*045E:02E0*", MODE="0660", TAG+="uaccess"

The USB PID for the same controller (045E:02EA) and newer Xbox Series pads likely have the same gap, but I've only verified 02E0 over Bluetooth.

For my own permanent fix I ran the following:

echo 'KERNEL=="hidraw*", KERNELS=="*045E:02E0*", MODE="0660", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/71-xbox-bt-hidraw.rules
sudo udevadm control --reload

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Open 60-steam-input.rules and inspect the existing hidraw uaccess entries for Xbox devices. Reload the udev rules and verify that the 045E:02E0 Bluetooth controller receives a user ACL and is detected by a Proton game with Steam Input disabled; keep the change scoped to the verified device.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.