Open anderedna opened 11 months ago
Same issue since yesterday, i opened the SD to check the ribbon cablesDB<>MB and re-set them (under the MB too), no change.
~Can you both post your lsusb output? It might be stuck in DFU mode, but if it's not there you might have a completely bricked controller :S I hope it's not a bug of the latest firmware tho.~
EDIT: Missed this part: journalctl -u jupiter-controller-update failed due to no hwid detected. Yeah, I'm not sure what you can do besides sending it in for repair if the controller is completely not detected from the host end.
For reference.
lsusb:
(A+)(root@steamdeck ~)# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 13d3:3553 IMC Networks Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb.py:
(A+)(root@steamdeck ~)# lsusb.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
1-5 13d3:3553 e0 2IFs [USB 1.00, 12 Mbps, 500mA] (Realtek Bluetooth Radio 00e04c000001)
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
Is there any alternative way other than sending it for repair? I'm willing to open the SD and tinker with it's internal.
Replying to https://github.com/ValveSoftware/SteamOS/issues/1308#issuecomment-1856224021
Just for a question that popped up in my mind, can you please try to switch to XHCI from DRD in the BIOS and see if anything change? It shouldn't, since the internal bus should not have this feature and therefore not affected by that, however that's easy to test at least.
If nothing change, the only way is to convince Valve to sell controller boards. Sadly they claim that calibration software is not available and it will never be, so no way to repair it yourself.
If Valve would actually be pro repair, please begin to sell controller boards and the associated software, especially since the shoulder buttons are the weaker part of the Deck LCD and in no way replaceable thanks to this.
Marco.
Valve has accepted my rma request.
Yeap, nothing changed when switching from DRD to XHCI. Still the same output and non usable controller.
I imported the SD as Valve didn't released it in my country so trying to RMA it would be a tough one.
Chnage to XHCI and disable bluetooth USB:
(A+)(root@steamdeck ~)# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(A+)(root@steamdeck ~)# lsusb.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb3 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
usb4 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
Besides forcing them to enter a sort of DFU unbrickable hardware mode (usually microcontrollers have a feature like that to recover them from failed flash) I have no other way to get them back. Problem is that the hardware is completely undocumented and no one has tried to reverse engineer it, so unless Valve wants to actively help you there is nothing you can do, sadly (apart from taking up the mantle yourself and do the RE part with your own hands).
Many thanks @RodoMa92 .
I guess my only choice is to pair it with a Bluetooth controller and live with it for now.
I used to run Steam on native arch linux OS. It worked some months ago. Now steamdeck controller isn't detected. If i run SteamOS from SD card it works. So no hardware issue, but something is wrong now in arch linux.
root@steamdeck: ~ # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 28de:1205 Valve Software Steam Deck Controller
Bus 003 Device 003: ID 13d3:3553 IMC Networks 802.11ac WLAN Adapter
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
root@steamdeck: ~ # lsusb.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb3 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
3-3 28de:1205 00 5IFs [USB 2.00, 12 Mbps, 500mA] (Valve Software Steam Deck Controller MEDA21500708)
3-5 13d3:3553 e0 2IFs [USB 1.00, 12 Mbps, 500mA] (Realtek 802.11ac WLAN Adapter 00e04c000001)
usb4 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
Please help :-(
@DocMAX Hey friend this isn't the right issue for this, as in I don't know if it would fix the OP's specific problem since it seems specific to us, but I found this thread trying to fix my problem. I too put Arch on my Deck and encountered this issue by updating. I reinstalled Steam, then restarted, and voila it worked. Hope that helps.
How was your procedure of "reinstall"? I deleted .local/share/Steam folder and still no controller.
Ok, so i found a workaround by accident. "rmmod usbhid" and then "modprobe usbhid" did steam make the controller recognize. so why is that? what is happening?
Edit: To break it down further, i needed to do: echo "3-3:1.2" > /sys/bus/usb/drivers/usbhid/bind So why isn't "3-3:1.2" loaded at boottime?
Hello?
Hi @DocMAX.
To reinstall your Deck, you could follow the guide from Steam (https://help.steampowered.com/en/faqs/view/1B71-EDF2-EB6D-2BB3). Try "Re-image Steam Deck" to reinstall everything, including reformat the NVMe.
I've tried your method of rmmod and modprobe + force usbhid bind but it doesn't work on my Deck as the controller does not even listed as a USB HID. It was completely gone, not even detected in BIOS.
Ok, i did mention i'm on Arch Linux (so vanilla linux on Steam Deck).
R1 wasn't working well. So i removed the spring and put it back.. i forgot to remove ny sd card when closing the back.. it got broken.. i had to lose the part and removed the stucked sd card. So after everything my controls stopped work.. i was on windows when i did that.. i have reimage the steam deck.. installed all update.. nothing yet.. I'm frustrated.. I'm in Nigeria. Nobody knows about steam deck here & I'm sure this is not hatdware issue
Ok, so i found a workaround by accident. "rmmod usbhid" and then "modprobe usbhid" did steam make the controller recognize. so why is that? what is happening?
Edit: To break it down further, i needed to do: echo "3-3:1.2" > /sys/bus/usb/drivers/usbhid/bind So why isn't "3-3:1.2" loaded at boottime?
Is this the fix?
I'm facing the same issue. Controller doesn't work. Persistent between BIOS flashes, Steam OS and Bazzite installs. Valve Software Steam Controller Bootloader
shows in the USB device list but doesn't have a hwid assigned. I also downgraded the hid
version to 1.0.5
as indicated in https://github.com/ublue-os/bazzite/issues/1108 which describes a similar issue.
Has anyone been able to find a solution yet? It's been 3 days already I'm facing this and my Steam Deck is a paperweight at this point.
I'm facing the same issue. Controller doesn't work. Persistent between BIOS flashes, Steam OS and Bazzite installs.
Valve Software Steam Controller Bootloader
shows in the USB device list but doesn't have a hwid assigned. I also downgraded thehid
version to1.0.5
as indicated in https://github.com/ublue-os/bazzite/issues/1108 which describes a similar issue.Has anyone been able to find a solution yet? It's been 3 days already I'm facing this and my Steam Deck is a paperweight at this point.
If you see the bootloader, then your controller do work. You just need to reflash using the script provided by Valve to reenable it back to a working condition. I'll post some instruction on how to do this shortly, but you can see them already on the linked thread from bazzite IIRC.
EDIT: what output do you get from this command?
sudo systemctl status jupiter-controller-update.service
Not sure if it'll help anyone else out but for me it was due to a pre-release decky plugin I had installed, I cant remember exactly which one but I disabled my decky plugins and rebooted which resolved it for me then I just re-added them until I found the broken one and uninstalled.
Replying to https://github.com/ValveSoftware/SteamOS/issues/1308#issuecomment-2194638411
Thanks for the quick response. I'm getting:
Warning: The unit file, source configuration file or drop-ins of jupiter-controller-update.service changed on disk. Run 'systemctl>
○ jupiter-controller-update.service - Jupiter Controller Firmware Update Service
Loaded: loaded (/usr/lib/systemd/system/jupiter-controller-update.service; disabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: inactive (dead)
Replying to https://github.com/ValveSoftware/SteamOS/issues/1308#issuecomment-2194644733
Try to run sudo systemctl start jupiter-controller-update.service
, then sudo systemctl status jupiter-controller-update.service
again.
ivan@steamdeck:/var/home/ivan/Downloads$ sudo systemctl start jupiter-controller-update.service
[sudo] password for ivan:
Warning: The unit file, source configuration file or drop-ins of jupiter-controller-update.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for jupiter-controller-update.service failed because the control process exited with error code.
See "systemctl status jupiter-controller-update.service" and "journalctl -xeu jupiter-controller-update.service" for details.
ivan@steamdeck:/var/home/ivan/Downloads$ sudo systemctl status jupiter-controller-update.service
Warning: The unit file, source configuration file or drop-ins of jupiter-controller-update.service changed on disk. Run 'systemctl>
× jupiter-controller-update.service - Jupiter Controller Firmware Update Service
Loaded: loaded (/usr/lib/systemd/system/jupiter-controller-update.service; disabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: failed (Result: exit-code) since Thu 2024-06-27 16:14:56 EEST; 23s ago
Process: 13391 ExecStart=/usr/bin/jupiter-controller-update (code=exited, status=1/FAILURE)
Main PID: 13391 (code=exited, status=1/FAILURE)
CPU: 1.445s
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: raise DogBootloaderUpdateError()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError
Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above
Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Main process exited, code=exited, status=1/FAILURE
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Failed with result 'exit-code'.
Jun 27 16:14:56 steamdeck systemd[1]: Failed to start jupiter-controller-update.service - Jupiter Controller Firmware Update Servi>
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Consumed 1.445s CPU time.
ivan@steamdeck:/var/home/ivan/Downloads$ sudo journalctl -xeu jupiter-controller-update.service
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", >
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: self.erase()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", >
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: self._poll_ack()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", >
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: raise DogBootloaderUpdateError()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError
Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above
Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ An ExecStart= process belonging to unit jupiter-controller-update.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ The unit jupiter-controller-update.service has entered the 'failed' state with result 'exit-code'.
Jun 27 16:14:56 steamdeck systemd[1]: Failed to start jupiter-controller-update.service - Jupiter Controller Firmware Update Servi>
░░ Subject: A start job for unit jupiter-controller-update.service has failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ A start job for unit jupiter-controller-update.service has finished with a failure.
░░
░░ The job identifier is 6428 and the job result is failed.
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Consumed 1.445s CPU time.
░░ Subject: Resources consumed by unit runtime
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ The unit jupiter-controller-update.service completed and consumed the indicated resources.
The actual jupiter-controller-update
fails with the following:
ivan@steamdeck:/var/home/ivan/Downloads$ /usr/bin/jupiter-controller-update
PTS: 6112FB7A, STS: 00000000
[
{
"path": "/dev/hidraw0",
"vendor_id": 10462,
"product_id": 4100,
"serial_number": "N/A",
"release_number": 256,
"manufacturer_string": "Valve Software",
"product_string": "Steam Controller Bootloader",
"usage_page": 65280,
"usage": 1,
"interface_number": 0,
"build_timestamp": 1628633978,
"secondary_build_timestamp": 0,
"is_bootloader": true
}
]
Initial firmware update only necessary for galileo hardware
Device is in bootloader mode, update required
Found candidate device, build timestamp 6112FB7A, BL true, BL_Type 1, HYB false
Updating Type 1 System
Erasing: |
Traceback (most recent call last):
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 1220, in <module>
cli()
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 1004, in program
bootloader.upload_firmware(firmware, verify=verify)
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 932, in upload_firmware
self.erase()
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 864, in erase
self._poll_ack()
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 518, in _poll_ack
raise DogBootloaderUpdateError()
DogBootloaderUpdateError
FW update failed. Retrying... Count: 1
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3 Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
Seems that the script is failing the erase cycle, so it's not going forward in flashing the firmware, see:
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError
Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above
Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
You will probably need to ask Valve why it's failing, since it doesn't seem to tell you anything useful besides the chip erase going bad.
The two reports above tho seems identical, what software version are you on? SteamOS Main?
Latest Bazzite. But it's absolutely identical with SteamOS Main and Beta.
Latest Bazzite. But it's absolutely identical with SteamOS Main and Beta.
Odd, it works fine here (I also use bazzite on mine) and the latest time that bazzite has pulled in the controller updater has been from a month ago, so it should still work fine (unless it was from a while that you updated).
If you try to run manually sudo jupiter-controller-update
, do you still get the same output back from the program? Can you post it here?
EDIT: Oh, you already did that without sudo. Try with sudo
in the from just to be sure (it should be required to flash the controllers firmware IIRC).
Another thing I noticed in the unofficial Valve's changelog (please, Valve, start making your gitlab public by default): https://gitlab.com/evlaV/jupiter-hw-support/-/commit/b5eeda0affe1252764bde4070e64db2293624489
This mentions some regression in all firmwares after march 3. Not sure on what was the problem, since they do not clarify that in the commit log.
I installed Bazzite just yesterday, so it should be latest. Executing with sudo
produces absolutely the same result. I'll check the unofficial changelog later when I get back tonight.
@RodoMa92, I tried standalone runs of older versions (3.4 /Dec22/ and 3.5 /Dec23/) of jupiter-hw-support
, point them correctly to their own path in Downloads
and I still get the same error.
https://gitlab.com/evlaV/jupiter-hw-support/-/tree/37a7f657d0dbf891844ec181b382f4cfc205bf9e
https://gitlab.com/evlaV/jupiter-hw-support/-/tree/0be4f88889a07da7a7855969e709aba4d786d6af
@RodoMa92, I tried standalone runs of older versions (3.4 /Dec22/ and 3.5 /Dec23/) of
jupiter-hw-support
, point them correctly to their own path inDownloads
and I still get the same error. https://gitlab.com/evlaV/jupiter-hw-support/-/tree/37a7f657d0dbf891844ec181b382f4cfc205bf9e https://gitlab.com/evlaV/jupiter-hw-support/-/tree/0be4f88889a07da7a7855969e709aba4d786d6af
Maybe a specific regression with your controller architecture firmware? At this point I'm not really sure myself.
PTS: 65E4F1BA, STS: 65E4F213
[
{
"path": "/dev/hidraw2",
"vendor_id": 10462,
"product_id": 4613,
"serial_number": "",
"release_number": 512,
"manufacturer_string": "Valve Software",
"product_string": "Steam Deck Controller",
"usage_page": 65535,
"usage": 1,
"interface_number": 2,
"build_timestamp": 1709502906,
"secondary_build_timestamp": 1709502995,
"is_bootloader": false
}
]
Initial firmware update only necessary for galileo hardware
NO UPDATE: Type 1/2 Device is running latest build 65E4F1BA
needs_update=0
Mine reports Type 1/2, there are 3 different (now 4 from the latest files) architectures (depending on the used microcontrollers on the two boards, IIRC 1 is Atmel, 2 is Renesas, and a weird combo called 1/2 like mine which I'm not sure what they represent (might be Atmel/Renesas per board, not sure). Now they seems to have added a nrf52 series micros in the firmware, but being bluetooth based devices I doubt they are meant to be used inside the Deck itself).
If the two posters above can check which architecture your embedded controller are we might at least narrow down if one specific controller configuration is to blame here. They had specific micros regressions like these in the past, IIRC. This might help them fix this faster (assuming it's not an hardware fault, but I doubt it with two different people with the same issue at the same time).
EDIT: yeah, your hardware reports type 1 here:
Found candidate device, build timestamp 6112FB7A, BL true, BL_Type 1, HYB false
Updating Type 1 System
We have different hardware controllers then.
BTW, I've already reported to the maintainers of bazzite to rebuild the controller updater firmware package, so it might be fixed as soon as a new build is uploaded in Github (assuming the regression mentioned is the issue that you have).
Ok, so I decided to try Windows and see if getting the latest jupiter-hw-support
scripts on a brand new environment might do any good. My flash drives and microSD are terribly slow so I did flash on the internal SSD https://github.com/Minibattle/WinDeckOS for ease of setup. I know, I know. I wanted to just get something up and running quick!
I had to setup python, pip, install all the dependencies (1.0.5 hid), I also had to manually add the hidapi.dll
in the python root directory and directly execute the bin I needed to flash, since reworking the update script for Windows would end up being a bit too hard.
So I ran:
python d21bootloader16.py program D21_APP_REL_6670767C.bin
And ended up with absolutely the same error.
I was already pretty bummed and decided to open up the Steam Deck and see if something came loose. Nothing obvious, but I ended up disconnecting and connecting again every cable I could get my hands on, without dismantling the whole thing.
IT WORKED!
The controller didn't work initially, but this time the script ran successfully and then it worked!
Pretty sure it's not the Windows but probably something came loose on the inside and fiddling with it for a bit seemed to have fixed it. Not what I had in mind, but might prove useful to test if everything else is a dead end.
How did you run the scrip..please give me the full details..i wanna fix mine
For the people here that CAN'T see any USB devices, someone managed to revive a dead Reneasas controller by reflashing the Bootloader. In his case they needed to replace the actual microcontroller, but if it's just software bricked you can try to follow his guide and see if you can get it back.
This is of course at your own risk: here
Your system information
Please describe your issue in as much detail as possible:
Steam deck internal controller (All buttons: thumbsticks, pads, trigger) not working except power and volume button.
Things working:
Things already done but didn't fix missing controller:
Is there a way to force reflashing the controller ROM?
Steps for reproducing this issue: