Steam Controller support: need read-write access to Valve-owned input event device nodes.

Bug #1498655 reported by Pierre-Loup A. Griffais on 2015-09-22
60
This bug affects 9 people
Affects Status Importance Assigned to Milestone
steam (Ubuntu)
Medium
Unassigned
Trusty
Medium
Unassigned
Vivid
Medium
Unassigned
Wily
Medium
Unassigned

Bug Description

The Steam Controller is about to roll out; for the Steam Controller to be supported properly by the Steam Client, it needs to be able to read and write to HID device nodes that have the Valve USB vendor ID. In our own Steam package 'steam-launcher' [1], this is achieved by a udev rule [2] matching our vendor ID. There doesn't seem to be such a udev rule in the Ubuntu-provided package, meaning Ubuntu users will not be able to use the Steam Controller out of the box.

[1] http://repo.steampowered.com/steam/pool/steam/s/steam/
[2] ./lib/udev/rules.d/99-steam-controller-perms.rules

Marc Deslauriers (mdeslaur) wrote :

The rule should probably go in the systemd package, adding systemd to bug.

Timo Aaltonen (tjaalton) wrote :

could you attach the rules here

Changed in systemd (Ubuntu):
status: New → Incomplete
Marc Deslauriers (mdeslaur) wrote :

Here is the udev file from the steam repo.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in steam (Ubuntu):
status: New → Confirmed
Martin Pitt (pitti) wrote :

Making *all* devices from these two vendors world-writable is too dangerous, this can't go into a default distro rule. This needs to be restricted to either particular product IDs/patterns, or better yet, to particular device classes. What are these anyway, something like joysticks or game controllers? Does input_id recognize them as anything in particular, ideally ID_INPUT_JOYSTICK=1?

The comments should also explain more than just "USB devices"

Please do "udevadm info --export-db > /tmp/udev.txt" and attach the file here; I'd like to see what we already know about these devices.

I believe the second line of the rule Marc attached might be obsolete; either way, it isn't relevant to the scope of this issue.

Attached a dump of the udev database with both a wired controller and a wireless receiver for the controller connected.

I'm a little nervous about creating a rule based on device class, because the controller/receiver has generic HID endpoints that are used to program it. I don't believe these will match any particular device class. In addition, the controller's firmware will be updated on the fly by the Steam client, which might change the endpoint count and types in the future.

However product IDs might be a good fit; here are the four PIDs that the current model of controllers will report during everyday use:

 D0G_PID = 0x1102,
 D0GGLE_PID = 0x1142,
 D0G_BOOTLOADER_PID = 0x1002,
 D0GGLE_BOOTLOADER_PID = 0x1042,

That being said, there aren't any other USB devices reporting a Valve Corp. USB vendor ID of 0x28DE in the wild right now, but there will be soon when eg. the controllers for the HTC Vive VR headset ship out to the world, so a rule matching any Valve-owned device would be more future-proof.

Philipp Plogmann (pplogmann) wrote :

I just received my controller and noticed that it didn't work correctly in kubuntu. I hope this can be fixed soon as there are already multiple people in the steam forums suffering from this.

Marcos Alano (mhalano) wrote :

I think you can address this bug for Valve itself. Steam package have this file to add udev rules and just can add lines for Steam controller with vendor and product ID.

I already added a issue report;
https://github.com/ValveSoftware/steam-for-linux/issues/4072

2015-10-17 18:45 GMT-03:00 Marcos Alano <email address hidden>:
> I think you can address this bug for Valve itself. Steam package have
> this file to add udev rules and just can add lines for Steam controller
> with vendor and product ID.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1498655
>
> Title:
> Steam Controller support: need read-write access to Valve-owned input
> event device nodes.
>
> Status in steam package in Ubuntu:
> Confirmed
> Status in systemd package in Ubuntu:
> Incomplete
>
> Bug description:
> The Steam Controller is about to roll out; for the Steam Controller to
> be supported properly by the Steam Client, it needs to be able to read
> and write to HID device nodes that have the Valve USB vendor ID. In
> our own Steam package 'steam-launcher' [1], this is achieved by a udev
> rule [2] matching our vendor ID. There doesn't seem to be such a udev
> rule in the Ubuntu-provided package, meaning Ubuntu users will not be
> able to use the Steam Controller out of the box.
>
> [1] http://repo.steampowered.com/steam/pool/steam/s/steam/
> [2] ./lib/udev/rules.d/99-steam-controller-perms.rules
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/steam/+bug/1498655/+subscriptions

--
Marcos Alano
----------------------------------------------
P: Por que este email é tão curto?
R: http://five.sentenc.es
----------------------------------------------

Changed in steam (Ubuntu Wily):
status: Confirmed → Fix Committed
Changed in steam (Ubuntu Trusty):
status: New → Confirmed
Changed in steam (Ubuntu Vivid):
status: New → Confirmed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package steam - 1:1.0.0.48-1ubuntu2

---------------
steam (1:1.0.0.48-1ubuntu2) wily; urgency=medium

  * Add device node udev rules for the Steam Controller. (LP: #1498655)
  * Add uinput rule for the Steam Controller. (LP: #1498658)

 -- Martin Packman <email address hidden> Tue, 13 Oct 2015 19:57:01 +0000

Changed in steam (Ubuntu Wily):
status: Fix Committed → Fix Released
Marc Rene Schädler (suaefar) wrote :

The fix does not work for me.
I think it should be

SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1142", MODE="0666"

instead of

SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1102", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", ATTRS{idVendor}=="1142", MODE="0666"

If you don't include support for these two PIDs, firmware updates will not work properly:

 D0G_BOOTLOADER_PID = 0x1002,
 D0GGLE_BOOTLOADER_PID = 0x1042,

Marcos Alano (mhalano) wrote :

As the Marc said so well, the file has that mistake. And I hope this patch is just workaround until Valve itself implement the change (I already filled a bug report). The package steam looks like just a compatibility package. steam-launcher seems the real package and IMHO this package should have the fixes implemented by steam package (udev rules and icons).

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in systemd (Ubuntu Trusty):
status: New → Confirmed
Changed in systemd (Ubuntu Vivid):
status: New → Confirmed
Changed in steam (Ubuntu):
status: Fix Released → In Progress
Changed in steam (Ubuntu Wily):
status: Fix Released → Confirmed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package steam - 1:1.0.0.48-1ubuntu3

---------------
steam (1:1.0.0.48-1ubuntu3) xenial; urgency=medium

  * Fix udev rules and add missing ones for fw updates (LP: #1498655)

 -- Marc Deslauriers <email address hidden> Thu, 29 Oct 2015 12:05:05 -0400

Changed in steam (Ubuntu):
status: In Progress → Fix Released
Jorge Castro (jorge) wrote :

Tested this on my 14.04 with mdeslaur's testing PPA:

Steam was able to update my outdated controller firmware with the latest. Nice work!

Marc Deslauriers (mdeslaur) wrote :

Uploaded packages for trusty-wily for processing by the SRU team.

Changed in steam (Ubuntu Trusty):
status: Confirmed → In Progress
Changed in steam (Ubuntu Vivid):
status: Confirmed → In Progress
Changed in steam (Ubuntu Wily):
status: Confirmed → In Progress
Changed in steam (Ubuntu):
importance: Undecided → Medium
Changed in steam (Ubuntu Trusty):
importance: Undecided → Medium
Changed in steam (Ubuntu Vivid):
importance: Undecided → Medium
Changed in steam (Ubuntu Wily):
importance: Undecided → Medium
Martin Pitt (pitti) on 2015-10-30
no longer affects: systemd (Ubuntu)
no longer affects: systemd (Ubuntu Trusty)
no longer affects: systemd (Ubuntu Vivid)
no longer affects: systemd (Ubuntu Wily)

Hello Pierre-Loup, or anyone else affected,

Accepted steam into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/steam/1:1.0.0.45-1ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in steam (Ubuntu Trusty):
status: In Progress → Fix Committed
tags: added: verification-needed
Changed in steam (Ubuntu Vivid):
status: In Progress → Fix Committed
Chris J Arges (arges) wrote :

Hello Pierre-Loup, or anyone else affected,

Accepted steam into vivid-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/steam/1:1.0.0.48-1ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in steam (Ubuntu Wily):
status: In Progress → Fix Committed
Chris J Arges (arges) wrote :

Hello Pierre-Loup, or anyone else affected,

Accepted steam into wily-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/steam/1:1.0.0.48-1ubuntu2.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Marc Deslauriers (mdeslaur) wrote :

@James: that is the change that is currently in the wily-proposed repo and in need of testing. See comment #21.

James

This typo is well know and the package with the fix is in wily-proposed.
Em 11/11/2015 14:51, "James Christie" <email address hidden> escreveu:

> I have two systems I've done fresh, clean installs of 15.10 on, as well
> as my father who has a new 15.10 himself. In all three cases, the Steam
> controller would work as an HID device, but was incapable of pairing or
> acting like a gamepad. Essentially, I have a few cases where this change
> does not allow the controller to work out of the box.
>
> After many hours of frustrated rule file changing (I'm not terribly
> familiar with udev), the fix I happened upon was to change the second
> instance of idVendor from ATTRS to idProduct, since the two differing
> ids are product ids and not vendor ids. The result was the attached
> gist/file. In all three cases, this immediately fixed the problem after
> unplugging/re-plugging the device. (Both wired and via the wireless
> receiver.)
>
> Relevant gist:
> https://gist.github.com/JamesChristie/a2b55ad2210725b6e1a3
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1498655
>
> Title:
> Steam Controller support: need read-write access to Valve-owned input
> event device nodes.
>
> Status in steam package in Ubuntu:
> Fix Released
> Status in steam source package in Trusty:
> Fix Committed
> Status in steam source package in Vivid:
> Fix Committed
> Status in steam source package in Wily:
> Fix Committed
>
> Bug description:
> The Steam Controller is about to roll out; for the Steam Controller to
> be supported properly by the Steam Client, it needs to be able to read
> and write to HID device nodes that have the Valve USB vendor ID. In
> our own Steam package 'steam-launcher' [1], this is achieved by a udev
> rule [2] matching our vendor ID. There doesn't seem to be such a udev
> rule in the Ubuntu-provided package, meaning Ubuntu users will not be
> able to use the Steam Controller out of the box.
>
> [1] http://repo.steampowered.com/steam/pool/steam/s/steam/
> [2] ./lib/udev/rules.d/99-steam-controller-perms.rules
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/steam/+bug/1498655/+subscriptions
>

Reading is, apparently, a useful skill. I hid my earlier comments. The package in proposed works great for me and definitely fixes the issue.

Marcos Alano (mhalano) wrote :

The steam-launcher package (official Valve package for Steam) in his version 1.0.0.51 added udev rules for Steam Controller. I think this is the correct way because indicates official support. Someone could remove steam package and update steam-launcher package and test the controller? If works may be we should remove rules from steam package.

Ubuntu users can install Steam without ever installing our package, so I don't recommend doing that.

Marcos Alano (mhalano) wrote :

Yes, of course, but steam package implements just udev rules and new
icons, far as I know. If the official package implements the correct
udev rules then the rules from steam package become deprecated.

2015-11-18 0:14 GMT-02:00 Pierre-Loup Griffais <email address hidden>:
> Ubuntu users can install Steam without ever installing our package, so I
> don't recommend doing that.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1498655
>
> Title:
> Steam Controller support: need read-write access to Valve-owned input
> event device nodes.
>
> Status in steam package in Ubuntu:
> Fix Released
> Status in steam source package in Trusty:
> Fix Committed
> Status in steam source package in Vivid:
> Fix Committed
> Status in steam source package in Wily:
> Fix Committed
>
> Bug description:
> The Steam Controller is about to roll out; for the Steam Controller to
> be supported properly by the Steam Client, it needs to be able to read
> and write to HID device nodes that have the Valve USB vendor ID. In
> our own Steam package 'steam-launcher' [1], this is achieved by a udev
> rule [2] matching our vendor ID. There doesn't seem to be such a udev
> rule in the Ubuntu-provided package, meaning Ubuntu users will not be
> able to use the Steam Controller out of the box.
>
> [1] http://repo.steampowered.com/steam/pool/steam/s/steam/
> [2] ./lib/udev/rules.d/99-steam-controller-perms.rules
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/steam/+bug/1498655/+subscriptions

--
Marcos Alano
----------------------------------------------
P: Por que este email é tão curto?
R: http://five.sentenc.es
----------------------------------------------

Jade Lacosse (sprucegum) wrote :

Proposed fix for 15.10 seems to work.

tags: added: verification-done-wily

As a part of the Stable Release Updates quality process a search for Launchpad bug reports using the version of steam from wily-proposed was performed and bug 1530491 was found. Please investigate this bug report to ensure that a regression will not be created by this SRU. In the event that this is not a regression remove the "verification-failed" tag from this bug report and add the tag "bot-stop-nagging" to bug 1530491 (not this bug). Thanks!

tags: added: verification-failed
tags: removed: verification-failed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package steam - 1:1.0.0.48-1ubuntu2.1

---------------
steam (1:1.0.0.48-1ubuntu2.1) wily; urgency=medium

  * Fix udev rules and add missing ones for fw updates (LP: #1498655)

 -- Marc Deslauriers <email address hidden> Thu, 29 Oct 2015 12:05:05 -0400

Changed in steam (Ubuntu Wily):
status: Fix Committed → Fix Released
Bartosz Kosiorek (gang65) wrote :

I tested this patch with my controller and it is working perfectly fine for Willy and Trusty.
Thanks

tags: added: verification-done
removed: verification-needed

The verification of the Stable Release Update for steam has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package steam - 1:1.0.0.48-1ubuntu1.1

---------------
steam (1:1.0.0.48-1ubuntu1.1) vivid; urgency=medium

  * Add udev rules for Steam controller. (LP: #1498655)

 -- Marc Deslauriers <email address hidden> Thu, 29 Oct 2015 13:36:22 -0400

Changed in steam (Ubuntu Vivid):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package steam - 1:1.0.0.45-1ubuntu1.1

---------------
steam (1:1.0.0.45-1ubuntu1.1) trusty; urgency=medium

  * Add udev rules for Steam controller. (LP: #1498655)

 -- Marc Deslauriers <email address hidden> Thu, 29 Oct 2015 12:36:39 -0400

Changed in steam (Ubuntu Trusty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers