HomeArticle

SteamOS can now be installed on other handheld consoles, but I suggest waiting a bit longer.

少数派2025-06-26 17:31
At least I reinstalled Bazzite after finishing writing this article.

Editor's Note: We will periodically select high-quality articles from Matrix to showcase the most authentic experiences and opinions from users. The articles represent the personal views of the authors, and SSPAI only makes minor modifications to the titles and layouts.

Preface

Just a few days ago, SteamOS released the 3.7.8 stable version update. The update log mentioned that it optimized the support for handheld consoles with other AMD chips. This is the first stable version of SteamOS that supports other handheld consoles.

I have an ROG Ally handheld console. Before this, the system I installed on it was Bazzite, a SteamOS-like Linux system based on Fedora. Currently, Bazzite's adaptation to the ROG handheld console is quite perfect. In this article, I will try to install the original SteamOS on the ROG handheld console to see how well it is adapted and what the differences are compared with the Bazzite system.

System Installation

Before installing the system, first make sure that Secure Boot is turned off in the handheld console's BIOS. For those who often use Linux systems, there is no need for further explanation. Unless it is a very small number of distributions with signed kernels, most Linux distributions are incompatible with Secure Boot.

The system installation process of SteamOS is very different from other Linux systems. There are still some places that need attention.

First, you need to download the SteamOS installation image. This is an image in img format. Different from the read-only LiveCD images in iso format of other systems, the SteamOS installation image can be read and written after being flashed to the USB drive. Any modifications made to the system in the bootable USB drive will be retained. Personally, I don't think this is very good.

I'm not sure if this installation image can be directly booted using a tool like Ventoy. However, to be on the safe side, I still wrote it directly to the USB drive and then booted it. After booting into the system, there are four icons on the desktop, namely clearing the user data of SteamOS, repairing the SteamOS system, the system repair tool in the terminal, and finally formatting the hard drive and installing SteamOS.

Different from most distributions that use a wizard program to install the system, these icons actually point to several script files in the tools folder in the home directory. And these script files ultimately call the repair_device.sh script. In this script, the installation location of the system is hard-coded to /dev/nvme0n1, which is the first nvme hard drive recognized by the system. You cannot customize the installation location and partition during installation. If your computer only has a SATA hard drive or you want to install it on an external hard drive, it won't work.

I tried to modify this script and change the installation location to the drive letter of an external hard drive. I found that although the system could be successfully installed and started normally, it would get stuck on the update screen after the first startup and the update would always fail. I also tried to install the system on the internal hard drive of the handheld console. After the first startup and the update was completed, I removed the hard drive and installed it in a hard drive enclosure to boot as an external hard drive. Although the game could be started normally in this way, it would also cause the system to be unable to be updated later.

So, at present, SteamOS can only be installed on the internal nvme hard drive. To be on the safe side, you also need to make sure that your machine has exactly one nvme hard drive. At the very least, you need to make sure that there is no important data on all the nvme hard drives in your computer. Otherwise, it's hard to guarantee that SteamOS won't format the hard drive with important data during installation.

The actual system installation is actually very simple. Click the fourth icon from the left on the desktop, and a pop-up window will prompt you whether to continue. After clicking Confirm, the installation will start. Wait for the installation to complete, and a pop-up window will prompt you whether to restart. After clicking Confirm and restarting, you can enter the SteamOS system.

System Experience and Existing Problems

Some Basic Experiences and Initial Configurations

When SteamOS starts for the first time, it cannot recognize the ROG handheld console's controller yet. At this time, you need to use the touch screen or an external keyboard and mouse to operate. After some initial configurations, such as selecting the language and time zone and connecting to the network, the system will perform the first update. After the update is completed, it will automatically restart. After restarting, it will be able to recognize the ROG handheld console's controller.

After the first update and restart, log in to your Steam account as prompted, and you can enter the game mode of SteamOS. All the operation logics are the same as those on the Steam Deck. All the front buttons of the controller can be recognized. The shortcut button below the left select button will be recognized as the Xbox guide button, and the Aura Sync button below the right start button will be recognized as the shortcut center button, which can call up the right shortcut menu. The two back buttons at the back are temporarily unavailable. See the following content for details.

SteamOS's adaptation to the sleep mode of the ROG handheld console is also quite good. Click the power button once to enter the sleep mode, and then press the power button again to wake it up. So far, I haven't found any problems with it getting stuck in sleep mode. I tried to put the handheld console to sleep overnight and then wake it up, and found that the power consumption was only about 5%. Since I've used this handheld console for quite a while and the battery has some wear and tear, this power consumption is still within an acceptable range. If it's a brand-new battery, the power consumption may be even less.

I used to use the Bazzite system. I remember that its adaptation to the sleep mode of the ROG handheld console didn't get quite good until about half a year ago, and there are still some bugs at present. A relatively serious one is that when waking up from sleep mode, there is a certain probability that the CPU frequency will get stuck at a few hundred MHz, causing the game to be very laggy. Only restarting the system can solve this problem. It seems that this bug hasn't been completely solved on the Bazzite side yet. So far, I haven't found a similar problem in SteamOS.

Next are some initial configurations. First, the default interface scaling in the game mode is a bit too large for me. I remember that the previous scaling ratio wasn't that large. Later, I don't know which Steam client version update increased the default scaling ratio. To reduce the scaling ratio, first enter Settings - System, turn on the "Enable Developer Mode" switch, then scroll down to find Developer Mode, and find "Show advanced display scaling settings for the internal display" in it, and turn on the switch. Press the Aura Sync button on the right to open the shortcut menu. In the gear icon section, scroll to the bottom, turn off the automatic UI scaling, and adjust the slider below until you get a relatively satisfactory scaling ratio.

In addition, I will also turn on the "Show advanced update channels" in the developer options. In this way, on the system update page, you can specify different update channels for the system and the Steam client respectively, and there will also be an option to restart Steam in the power menu.

After that, I will also install Decky Loader, which is an open-source plugin loader suitable for SteamOS and other SteamOS-like systems. In the following content, I will install some plugins, so I need to install Decky Loader first.

First, switch to the desktop mode, open the Konsole terminal, and enter passwd to set a password for your account. Then open Discover and install a browser at random. If the installation speed is slow, you can try changing to the mirror source of Shanghai Jiao Tong University. Open the official website of Decky Loader, decky.xyz, in the browser, and click Download on the homepage. If you're using a Firefox-based browser, the downloaded file name will most likely be decky_installer.desktop.download. Delete the .download suffix after this file name and move this file to the desktop. Double-click to start the installation. Enter your user password as prompted, and a pop-up window will ask you whether to install the release version or the prerelease version. If you're using the stable version of the Steam client, it's recommended to install the release version. Click Confirm to start the installation.

TDP Limit

SteamOS currently hasn't adapted the TDP control function for the ROG handheld console. However, this function can be implemented with a plugin. I highly recommend using the SimpleDeckyTDP plugin. This plugin isn't currently available in the official plugin store of Decky Loader, so you have to install it manually. Open the terminal in the desktop mode and enter:

curl -L https://github.com/aarron-lee/SimpleDeckyTDP/raw/main/install.sh | sh

Then the installation can be executed. This plugin currently supports modifying the TDP of the ROG handheld console from 4W to 40W, and also supports limiting the battery charging percentage.

RGB Control

SteamOS currently hasn't adapted the RGB lighting control for the ROG handheld console. However, this function can also be implemented with a plugin. You can use the HueSync plugin, which also needs to be installed in the terminal:

curl -L https://raw.githubusercontent.com/honjow/huesync/main/install.sh | sh 

However, I don't really like turning on the RGB lighting. I installed this plugin just to make sure the RGB is turned off.

Controller Support

The controller of the ROG handheld console will be recognized as a controller named "Asus ROG Ally Controller" in SteamOS. In the latest stable version of the system, all the front buttons of the controller, including the joysticks, triggers, and even the gyroscope, can be recognized normally. On the controller test page in the settings, a general controller pattern is displayed. However, on the game startup page, a pattern of a handheld console is displayed, which seems to be the Lenovo Legion GO S handheld console recently launched.

However, in the current latest stable version, the two back buttons of the ROG handheld console cannot be recognized. This problem was fixed in the recently updated SteamOS 3.7.9 beta version system update. To update to the latest beta version, simply change the system update channel to the beta version on the system update page, check for updates, and apply them. After the update is completed and the system is restarted, I found that the two back buttons still couldn't be recognized. But after restarting the system again, the back buttons could be recognized and were recognized as L4 and R4 in SteamOS.

It's also worth mentioning that in an earlier beta version, the two back buttons of the ROG handheld console would be recognized as the same button. In the latest stable version, the two back buttons couldn't be recognized. This problem was finally fixed in the latest beta version system. However, there are still some minor problems. If you wake the system up from sleep mode, the two back buttons will become unrecognizable again and you need to restart the system.

I don't have an ROG Ally X in my hand. But according to some people who installed SteamOS on the Ally X, the button recognition of the Ally X controller in SteamOS is messed up. To fix this problem, a newer kernel needs to be used. Since SteamOS is still quite conservative about kernel updates, it may take quite a while to fix this problem. If you own an Ally X and want to install SteamOS, it's better to wait and see, or directly install Bazzite. The Bazzite team once cooperated with some video creators who got the machine in advance and had fully adapted to this handheld console before the Ally X was officially released.

In addition, you can also install the DeckyPlumber plugin to modify the type of controller emulation of the handheld console. You can choose to emulate an Xbox controller, a DualSense controller, or a Hori controller with Steam authorization. Although the Hori controller doesn't have a vibration function in terms of hardware, the vibration of the Hori controller emulated by software can be used normally.

Based on my personal experience, I think the default controller mode has the best adaptation in SteamOS. All the buttons and the gyroscope can be recognized, and the vibration effect is also well adapted. Moreover, only in this mode can you get a delicate vibration feedback when typing on the virtual keyboard or using the joystick to simulate mouse movement. In addition, because it's natively adapted to Steam Input, even if you disable Steam Input on the game page, you can still customize the functions of the back buttons and the gyroscope.

The emulated Hori controller has most of its functions adapted similarly to the default controller, but there is no vibration feedback when typing on the virtual keyboard or using the joystick to simulate the mouse.

If you emulate a DualSense controller, although all the buttons and the gyroscope can be recognized, in some games, the button icons of the controller will be displayed as those of the DualSense controller, which some people may not be used to. If you disable Steam Input, you won't be able to customize the back buttons and the gyroscope. In addition, some games may not be adapted to the DualSense controller, resulting in inability to use it.

If you emulate an Xbox controller, the gyroscope cannot be recognized. However, most games have the best adaptation to the Xbox controller and are more likely to recognize it in the game.

Generally speaking, in terms of the system's adaptation to the functions, the default mode > the Hori controller > the DualSense controller > the Xbox controller. But each mode has its own characteristics, and you can choose according to your own needs and actual gaming situations.

In SteamOS, although the shortcut button on the left of the ROG handheld console can be used as the Xbox guide button (or more broadly speaking, the guide button), there is a small problem in the hardware design of this button, that is, it cannot recognize long presses. This makes it difficult to trigger some useful controller combination keys in SteamOS, such as Guide + X to call up the virtual keyboard and Guide + the right trigger to take a screenshot.