the new Steam Controller driver breaks it on Steam

Bug #1798583 reported by liamdawe on 2018-10-18
32
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Linux
Confirmed
Medium
linux (Ubuntu)
Medium
Unassigned
Cosmic
Medium
Unassigned
Disco
Medium
Unassigned

Bug Description

===SRU Justification===
[Impact]
New steam-hid driver breaks Unity games.

[Fix]
Quote from the commit message:
"With this commit, when a HID client starts, the input device is removed;
when the HID client ends the input device is recreated."

[Test]
A guy from Valve comfirms the backport works.

[Regression Potential]
Low. This fix is specific to hid-steam, which is a new driver introduced
in v4.18.

===Original Bug Report===
The new hid_steam driver in kernel 4.18 breaks the use of it within Steam.

Games either:
- Crash
- Don't detect it at all
- Only pick it up as player 2

To get it working as normal, it needs blacklisting currently.

See here: https://www.gamingonlinux.com/articles/the-steam-controller-on-ubuntu-1810-and-other-distributions-using-linux-kernel-418-needs-quick-a-fix.12775

ProblemType: Bug
DistroRelease: Ubuntu 18.10
Package: linux-image-4.18.0-10-generic 4.18.0-10.11
ProcVersionSignature: Ubuntu 4.18.0-10.11-generic 4.18.12
Uname: Linux 4.18.0-10-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.10-0ubuntu13
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC2: liam 2492 F.... pulseaudio
 /dev/snd/controlC0: liam 2492 F.... pulseaudio
 /dev/snd/controlC1: liam 2492 F.... pulseaudio
CurrentDesktop: ubuntu:GNOME
Date: Thu Oct 18 12:49:44 2018
InstallationDate: Installed on 2017-10-18 (364 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Release amd64 (20171017.1)
IwConfig:
 lo no wireless extensions.

 enp5s0 no wireless extensions.

 eno1 no wireless extensions.
MachineType: ASUS All Series
ProcFB: 0 EFI VGA
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.18.0-10-generic root=UUID=2a8676f3-0045-4e66-9cd1-186ffc6a8c2a ro quiet splash vt.handoff=1
RelatedPackageVersions:
 linux-restricted-modules-4.18.0-10-generic N/A
 linux-backports-modules-4.18.0-10-generic N/A
 linux-firmware 1.175
RfKill:

SourcePackage: linux
UpgradeStatus: Upgraded to cosmic on 2018-10-18 (0 days ago)
dmi.bios.date: 08/10/2015
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1901
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: SABERTOOTH X99
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: PCS
dmi.chassis.type: 3
dmi.chassis.vendor: To Be Filled By O.E.M.
dmi.chassis.version: To Be Filled By O.E.M.
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1901:bd08/10/2015:svnASUS:pnAllSeries:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnSABERTOOTHX99:rvrRev1.xx:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
dmi.product.family: ASUS MB
dmi.product.name: All Series
dmi.product.sku: All
dmi.product.version: System Version
dmi.sys.vendor: ASUS

liamdawe (liamdawe) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed

Did this issue start happening after an update/upgrade? Was there a
prior kernel version where you were not having this particular problem?

Would it be possible for you to test the latest upstream kernel? Refer
to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest
v4.19 kernel[0].

If this bug is fixed in the mainline kernel, please add the following
tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag:
'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as
"Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19-rc8

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
liamdawe (liamdawe) wrote :

The issue is at stated, the hid steam driver in Kernel 4.18.

There is a patch available here from the creator of the driver to fix it: https://lkml.org/lkml/2018/10/14/502

I don't know if that's included in any Kernel builds yet, users commenting here: https://github.com/ValveSoftware/steam-for-linux/issues/5645#issuecomment-429799484 note that the patch does fix it, so it would be good if Ubuntu could pull the patch in.

Sebastien Bacher (seb128) wrote :

there is a patch on lklm but it's not merged yet, the bug still exists in the current kernel version

tags: added: kernel-bug-exists-upstream
Changed in linux (Ubuntu):
status: Incomplete → New
status: New → Confirmed
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Triaged
tags: added: kernel-da-key

Hi.

This bug [1] in the Valve github tracker seems to be caused by the hid-steam driver, written by me, introduced in 4.18.

With this driver there is a new input device, which is disabled when the Steam client is running. That is usually harmless, but some games go nuts with that extra device.

I have written a patch, that instead of disabling the device, removes it when Steam is running, and recreates it when Steam is closed.

I have submitted it to LKML a few days ago [2], but it looks like it went through the cracks... It would be great is someone could check it.

Thanks.

[1]: https://github.com/ValveSoftware/steam-for-linux/issues/5645
[2]: https://lkml.org/lkml/2018/10/14/502

Changed in linux:
importance: Unknown → Medium
status: Unknown → Confirmed

Any updates on this? I still experience the problem on 4.19.3-041903-generic

Sebastien Bacher (seb128) wrote :

There has been no change on the bugzilla report/patch it seems :-/

Will Cooke (willcooke) wrote :

Kernel team are addressing this in bug: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1806247

This might be able to be marked as a dupe.

Sebastien Bacher (seb128) wrote :

The issue should be fixed in that disco update, https://launchpad.net/ubuntu/+source/linux/4.19.0-8.9

" .
   * Disco update: 4.19.6 upstream stable release (LP: #1806909)
     - HID: steam: remove input device when a hid client is running."

Changed in linux (Ubuntu):
status: Triaged → Fix Released
kisak (kisak) wrote :

Hello Kai-Heng Feng, on Ubuntu 18.04.1, I grabbed http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.18.20/ and your build. With 4.18.20 mainline I can confirm Rocket League's main menu can not be navigated via the Steam Controller, and can be with your test build. No game play was tested and only one game was tested. Game was launched from Steam's Big Picture Mode.

Kai-Heng Feng (kaihengfeng) wrote :

kisak, in addition to the fix, do you think backport the hid-steam driver to Bionic's v4.15 kernel useful to the users?

description: updated
kisak (kisak) wrote :

I'm not going to make a recommendation one way or another.

While Steam is active, Steam's input subsystem takes care of the controller. This sounds like something to ask Mr. Costa from the upstream kernel bug report.

Kai-Heng Feng (kaihengfeng) wrote :

Ok, I'll ask Mr. Costa about the question.

Thanks for your response.

Will Cooke (willcooke) wrote :

I would like to see this prepared for Bionic too. While a lot of gamers go for the latest release, the LTS has a massive user base. I'd like to see Steam controllers working in Bionic.

Kai-Heng Feng (kaihengfeng) wrote :

Seems like it already works under Bionic as a generic HID device. It depends on how many new features hid-steam brings to justify whether backporting it is a good idea or not.

Will Cooke (willcooke) wrote :

As I understand it, while this currently works on Bionic with 4.15 it will _stop_ working on Bionic when the new 4.18 HWE kernel gets released, without this patch applied.

Stefan Bader (smb) on 2019-01-14
Changed in linux (Ubuntu Cosmic):
importance: Undecided → Medium
status: New → Fix Committed
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-cosmic' to 'verification-done-cosmic'. If the problem still exists, change the tag 'verification-needed-cosmic' to 'verification-failed-cosmic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-cosmic
liamdawe (liamdawe) wrote :

I enabled proposed updates, upgraded and removed my blacklist on hid_steam and rebooted.

Using lsmod after the reboot I can see hid_steam is there.

First test with Rocket League, seemed to work fine and it was detected as a gamepad properly. The game did crash just after I got in a game though. Seems fine after, so likely not related.

Tested out Hand of Fate 2, works perfectly.

So yeah, the fix works.

liamdawe (liamdawe) wrote :

I don't see anywhere to change/add tags by the way, I assume I don't have permissions?

Will Cooke (willcooke) wrote :

Updated tags for Liam. Thanks for testing.

tags: added: verification-done-cosmic
removed: verification-needed-cosmic
Launchpad Janitor (janitor) wrote :
Download full text (56.3 KiB)

This bug was fixed in the package linux - 4.18.0-14.15

---------------
linux (4.18.0-14.15) cosmic; urgency=medium

  * linux: 4.18.0-14.15 -proposed tracker (LP: #1811406)

  * CPU hard lockup with rigorous writes to NVMe drive (LP: #1810998)
    - blk-wbt: Avoid lock contention and thundering herd issue in wbt_wait
    - blk-wbt: move disable check into get_limit()
    - blk-wbt: use wq_has_sleeper() for wq active check
    - blk-wbt: fix has-sleeper queueing check
    - blk-wbt: abstract out end IO completion handler
    - blk-wbt: improve waking of tasks

  * To reduce the Realtek USB cardreader power consumption (LP: #1811337)
    - mmc: core: Introduce MMC_CAP_SYNC_RUNTIME_PM
    - mmc: rtsx_usb_sdmmc: Don't runtime resume the device while changing led
    - mmc: rtsx_usb_sdmmc: Re-work runtime PM support
    - mmc: rtsx_usb_sdmmc: Re-work card detection/removal support
    - memstick: rtsx_usb_ms: Add missing pm_runtime_disable() in probe function
    - misc: rtsx_usb: Use USB remote wakeup signaling for card insertion detection
    - memstick: Prevent memstick host from getting runtime suspended during card
      detection
    - memstick: rtsx_usb_ms: Use ms_dev() helper
    - memstick: rtsx_usb_ms: Support runtime power management

  * Support non-strict iommu mode on arm64 (LP: #1806488)
    - iommu/io-pgtable-arm: Fix race handling in split_blk_unmap()
    - iommu/arm-smmu-v3: Implement flush_iotlb_all hook
    - iommu/dma: Add support for non-strict mode
    - iommu: Add "iommu.strict" command line option
    - iommu/io-pgtable-arm: Add support for non-strict mode
    - iommu/arm-smmu-v3: Add support for non-strict mode
    - iommu/io-pgtable-arm-v7s: Add support for non-strict mode
    - iommu/arm-smmu: Support non-strict mode

  * [Regression] crashkernel fails on HiSilicon D05 (LP: #1806766)
    - efi: honour memory reservations passed via a linux specific config table
    - efi/arm: libstub: add a root memreserve config table
    - efi: add API to reserve memory persistently across kexec reboot
    - irqchip/gic-v3-its: Change initialization ordering for LPIs
    - irqchip/gic-v3-its: Simplify LPI_PENDBASE_SZ usage
    - irqchip/gic-v3-its: Split property table clearing from allocation
    - irqchip/gic-v3-its: Move pending table allocation to init time
    - irqchip/gic-v3-its: Keep track of property table's PA and VA
    - irqchip/gic-v3-its: Allow use of pre-programmed LPI tables
    - irqchip/gic-v3-its: Use pre-programmed redistributor tables with kdump
      kernels
    - irqchip/gic-v3-its: Check that all RDs have the same property table
    - irqchip/gic-v3-its: Register LPI tables with EFI config table
    - irqchip/gic-v3-its: Allow use of LPI tables in reserved memory
    - arm64: memblock: don't permit memblock resizing until linear mapping is up
    - efi/arm: Defer persistent reservations until after paging_init()
    - efi: Permit calling efi_mem_reserve_persistent() from atomic context
    - efi: Prevent GICv3 WARN() by mapping the memreserve table before first use

  * ELAN900C:00 04F3:2844 touchscreen doesn't work (LP: #1811335)
    - pinctrl: cannonlake: Fix community ordering for H variant
    - pinctrl: c...

Changed in linux (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-bionic
liamdawe (liamdawe) wrote :

I'm afraid I only have 18.10 to test, which it did solve. Don't see why it would be any different with 18.04 and absolutely should not just be dropped after five days.

Andy Whitcroft (apw) wrote :

This bug was erroneously marked for verification in bionic; verification is not required and verification-needed-bionic is being removed.

tags: added: kernel-fixup-verification-needed-bionic verification-done-bionic
removed: verification-needed-bionic
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.