TLDR to the issue
There have been many reports of the new Steam controller failing to update on Linux distros other than SteamOS, I am making this post to document my solution to this issue.
From what I can tell, certain distros place restrictions on what data can be accessed via USB.
Solution
So as many others here I got my Steam controller and was encountering the update errors on my Debian 13 desktop.
I tried updating via a Windows laptop which was successful however did not stop Steam from complaining there was an update on my Debian machine.
I did a little digging in my steamui_system.txt and noticed my error was
[2026-07-09 10:23:55] HardwareUpdate: ------[ stdout ]------
Found Type: Triton USB SN: FXA9961904609
UPDATING TRITON USB - SN: FXA9961904609
ERROR: Couldn't open BL comport
[2026-07-09 10:23:55] HardwareUpdate: ------[ stderr ]------
more digging I found out that the update script/tool is stored in /home/YourUser/.local/share/Steam/bin/hardwareupdater/ and in that folder the script/tool is called hardwareupdater.x86_64
This script/tool has launch options that should not be missed in your steamui_system.txt, for me it was —update-by-serial “SerialNumberOfController”
Many Linux users will dislike this but run the script/tool as a sudoer or root in a shell like such,
sudo /home/YourUser/.local/share/Steam/bin/hardwareupdater/hardwareupdater.x86_64 --update-by-serial 'FXA9961904609'
Replace the /YourUser/ portion of the directory path with the username of your Linux account and change the serial-number to match your controller.
the script/tool will display progress as it goes and eventually succeed, Steam will prompt you one last time there is an update but then proceed past the actual update itself and instead do a short tutorial on the controller. I guess there are USB permissions issues hence the failures.
The output of the script/tool is as such
sudo /home/YourUser/.local/share/Steam/bin/hardwareupdater/hardwareupdater.x86_64 --update-by-serial 'FXA9961904609
Found Type: Triton USB SN: FXA9961904609
UPDATING TRITON USB - SN: FXA9961904609
DEBUG: Found TRITON matching SN`
ERASING
PROGRAMMING: IBEX_FW_6A4D85E3.fw
PROGRESS: 9%
PROGRESS: 17%
PROGRESS: 26%
PROGRESS: 34%
PROGRESS: 43%
PROGRESS: 51%
PROGRESS: 60%
PROGRESS: 68%
PROGRESS: 77%
PROGRESS: 85%
PROGRESS: 94%
PROGRESS: 100%
RESETTING
SUCCESS
Disclaimer:
If the script/tool at all stalls or hangs, which it shouldn't as it took less than a minute for me to complete the update, DO NOT unplug the controller, you may damage the firmware doing this essentially bricking your controller, just be patient and wait or Control + C the script/tool to abruptly exit the script, unfortunately the script/tool has been compiled into binary so i cannot verify how it handles abrupt exits!
Edit
I have not tested this on the Steam Puck, only the controller, I suspect they use the same script but cannot confirm that as my Puck was updated on a Windows Laptop and didn’t prompt me to update on my Debian desktop afterwards.
