Repository navigation
Releases: hashtagbasit/SteamOS-ARM-Port
Release list
v1.3.1: Small fixes
A quick fix update for the 8 Elite (AYN Odin 3, KONKR Pocket FIT Elite). 8 Gen 3 and 8 Gen 2 updates will be added to this release once they're ready.
Install
On 1.3.0, go to Settings > System > Check for updates and install it, then restart. No need to reflash.
Offline: download steamos-arm-sm8750-1.3.1.sau below, put it in Downloads or on a microSD card / USB drive, then Check for updates.
New installs use the 1.3.0 image from v1.3.0 and update to 1.3.1 from there.
Changelog
-
8 Elite
- Fixed the fan service crashing on start, which left the fan stuck at one speed and Handheld Control unable to change profiles or fan settings (thanks @Chazmus)
- Added Lossless Scaling frame generation, the same as on 8 Gen 3 and 8 Gen 2, set up in Quick Access with the lsfg-vk plugin
-
All chips (comes later with each chip's update)
- Fixed the Desktop starting upside down on the AYN Odin 2 Portal and similar screens
- Bottom screen on the AYN Thor and AYANEO Pocket DS: a Settings tile is back on the home screen, and the buttons above the dashboard are bigger
Unofficial community port, not affiliated with or endorsed by Valve.
v1.3: Stable on Every Soc, Major Changes
1.3 is out as a stable release for all three socs (8 Elite, 8 Gen 3 and 8 Gen 2), rebased on the latest SteamOS ARM from the Steam Frame. You need to flash it once, after that future updates can be done through the updater. Thanks to everyone who tested the betas and sent logs, photos and fixes, most of what's below started as one of your reports.
Download
| Your device | Image |
|---|---|
| AYN Odin 3, KONKR Pocket FIT Elite | steamos-arm-port-sm8750-v1.3.0.7z.001 to .003 |
| KONKR Pocket FIT, AYANEO Pocket S2 / S2 Pro | steamos-arm-port-sm8650-v1.3.0.7z.001 to .003 |
| AYN Odin 2 / Mini / Portal / Thor, AYANEO Pocket ACE / DMG / DS / EVO / S 1K / S 2K, Retroid Pocket 6 / Nova | steamos-arm-port-sm8550-v1.3.0.7z.001 to .003 |
Each image comes in three .7z parts. Download all three for your device and extract the .001 one with 7-Zip or WinRAR to get the .img. Checksums are in SHA256SUMS.
Install
Everyone installs 1.3 fresh, including people on 1.2 or a beta.
- Flash the
.imgto a microSD card (32 GB or bigger) with balenaEtcher or Rufus. - The image brings ROCKNIX ABL 1.2 for your chip. If you don't have it yet, boot Android, copy the
rocknix_ablfolder from the card's BOOT drive to internal storage and runflash_abl.shfrom your chip's folder with the device's root script tool. It backs up your current ABL first. - Turn the device on holding Volume Down, pick your device in Set device model, set boot mode to Linux and hit START.
First boot takes a couple of minutes. The full guide is on the website.
Changelog
-
Updates through Steam
- Settings > System > Check for updates now installs new versions in place, no reflashing
- Updates are signed and only include what changed. If one fails it rolls back
- Offline updates work by putting the
.saufile in Downloads or on a microSD card / USB drive
-
Loadout (beta)
- New store for emulators, game launchers and apps, picked for your device and the games you have
- Includes Heroic for ARM64, so Epic, GOG and Amazon games can be installed and played from Game Mode
- Installed apps show up in your Steam library with artwork
- Installing takes a lot of disk and CPU, so expect some lag in Game Mode while it runs. Please install apps one at a time for now instead of whole packs, this gets better in a later update
-
Sleep and battery
- Sleep now uses real suspend on every chip
- Fans, Wi-Fi and stick lights come back properly after waking, and Wi-Fi reconnects in about a second
- Fans don't spin up on wake or on short load spikes anymore, and follow the whole chip instead of its hottest core
- Steam's performance profile, TDP, charge limit and bypass charging controls work
- Steam shows the real charging power and time until full
-
Install to internal storage
- SteamOS can be moved from the microSD card to internal storage with Easy UFS Installer in Desktop Mode, Android keeps working next to it
- Tested on the 8 Gen 3 and 8 Gen 2 handhelds, still needs testing on the 8 Elite
-
Performance and games
- Fixed Steam's frame limiter, it only lists rates your screen supports and 30/40/60 stay smooth
- Fixed frame generation, it runs in performance mode now so it actually adds frames
- Added hardware video decoding for Firefox, Moonlight, Chiaki and other video apps
- The performance overlay shows real GPU usage, clock and VRAM
- Per-game fan curves in Handheld Control
-
Bottom screen (AYN Thor, AYANEO Pocket DS)
- New launcher home and dashboard with themes, game art and a play log
- Trackpad and keyboard with autocorrect for the top screen
- Lower Deck panel in Quick Access to control the bottom screen
-
Devices
- KONKR Pocket FIT: the KONKR and Performance buttons can be remapped in Handheld Control (next profile, stick lights, fan boost, or a game button you bind in Steam). LC/RC work as back buttons, and sound works over HDMI/DisplayPort (Pocket S2 too)
- AYN Odin 3: default controller mapping, UI scaling, fan control and power button sleep (thanks @Chazmus), performance overlay works
- AYN Odin 2: A/B are the right way round again on the new kernel
- AYANEO Pocket DMG: touchscreen should work now
- AYANEO Pocket S: volume rocker fixed
- AYANEO Pockets: show up as one controller instead of two, volume keys work in Game Mode
- AYN Thor: touches don't get stuck anymore, bottom screen brightness uses the full range
- Retroid Pocket Nova: no white flash on wake or when switching to Desktop
-
Desktop Mode
- Scaled for your screen, with a touch keyboard on every chip
- Steam's right-stick mouse moves the pointer
-
System
- Fixed a startup hang that could leave Game Mode on a black screen
- microSD cards can be formatted and mounted from Steam, and Steam no longer offers to format the system card
- Decky plugins keep working after Decky updates itself
- Debug logs now include GPU hang dumps and clock speeds while playing
-
Updated SteamOS ARM (Steam Frame) to 20261002 (0.5.3), the kernel to 7.2.8 on 8 Gen 3 and 8 Gen 2, Mesa to 26.2.3, Gamescope to 3.16.30 and Decky Loader to 3.2.10
Something not working?
Make an empty file called debug on the card's BOOT drive, boot and wait 3 minutes (or play a bit if it's a performance problem), then send me the debug-logs folder on Discord or in a GitHub issue.
Supporting the project
Any amount raised will be used to buy devices to support and boost development, a star helps too!
Have a device you'd like to see supported? Sending one over for long term development is the fastest way to get it there, message me on Discord.
Unofficial community port, not affiliated with or endorsed by Valve.
v1.3 beta 10: new bottom screen, real sleep and a lot of fixes
Beta 10 is the last 8 Gen 2 beta before v1.3 stable, so it's packed. Thanks to everyone who sent logs and photos, almost every fix below came from one of your reports!
What's new
- SD cards run at full speed. The new kernel had them stuck in the slowest mode, which made loading, downloads and the whole system a lot slower than it should be.
- AYANEO Pocket S 2K: black screen fixed, should work as expected.
- Buttons: A/B are right on the Odin 2 Mini and Portal again (beta 9 flipped them), and the AYANEO Pockets should show up as one controller instead of two, so A/B don't swap around anymore.
- Retroid Pocket 6: Volume Up should work again, and the touchscreen should respond at the full 120 Hz instead of around 28 Hz.
- New bottom screen for the AYN Thor and AYANEO Pocket DS: a stats page (frame rate graph, temperatures, clocks, power, battery time left), controls (performance profile, fan, brightness, volume, stick lights on the Thor), and a trackpad and keyboard for the top screen. Apps you open on the bottom screen get their own keyboard. It's also sized properly now and doesn't flicker anymore.
- AYN Thor: Steam's brightness slider should now control both screens, instead of dimming only the bottom one. The bottom screen's brightness can be set on its own from the new Controls page.
- Real sleep (experimental): make an empty file called
s2idleon the BOOT drive to use real sleep instead of standby. It should use a lot less battery overnight. If you try it, send me the output ofjournalctl -b | grep "s2idle report", and delete the file if your device doesn't wake up properly. - Standby uses less battery: the controller input service now pauses in standby too.
- Games that minimize themselves behind Quick Access (GTA IV and other fullscreen games) come back when you close it, instead of a black screen or a tiny frozen picture.
- Charging: if the charger was plugged in while booting, it could get stuck on slow charging until you replugged it. It now fixes itself a few seconds after boot.
- Wi-Fi reconnects faster after booting or waking up, it was taking 4 to 8 seconds before, should be much faster now.
- Settings stick: anything you turn on in Desktop Mode (like SSH) actually starts after a reboot now.
- Decky: updated to 3.2.10, so plugins that broke on 3.2.9 load again, and Decky waits for the network before starting plugins.
- Games run without the Steam Frame's remaining VR layers (headset-only rendering tweaks that Steam added to every game).
- Smoother 1% lows on the 8 Gen 2, and the fan doesn't spin up to full when you shut down.
- Debug logs now record CPU/GPU speeds while you play, so performance reports are much easier to look into.
Known issues
- Some games might still run slower, make sure to share the debug log which now include the new performance metrics.
Download
Download the three .7z parts below and extract the .001 one with 7-Zip or WinRAR, that gives you the .img. SHA256s are in SHA256SUMS.
Installing
- Flash ROCKNIX ABL 1.1.8 or newer for SM8550 to
abl_aandabl_b. - Flash the
.imgto a microSD card (32GB+) with balenaEtcher or Rufus. - Hold Volume Down while turning it on, pick your device in Set device model, set boot mode to Linux and hit START.
First boot takes a couple of minutes.
Still not booting or something broken? Make a text file called debug on the SD card's BOOT drive, boot and wait 3 minutes (or play a bit if it's a performance problem), then send the debug-logs folder on discord.
Supporting the project
any amount raised will be used to buy devices to support and boost development, a star helps too!
Unofficial community port, not affiliated with or endorsed by Valve.
v1.3 8 Elite beta 2: AYN Odin 3 and KONKR Pocket FIT Elite
Second beta for the Snapdragon 8 Elite: the AYN Odin 3, and now the KONKR Pocket FIT Elite too, both on the same image!
Big thanks to @FearlessSpiff and @Chazmus for the help.
What's new
- Switch to Desktop works, and so does Steam's update check (no more "Update Error").
- Performance overlay is back
- KONKR Pocket FIT Elite: sound (speakers and headphones) and the stick lights should work now, let me know if they do on yours.
- Games that minimize themselves behind Quick Access come back when you close it, instead of a black screen.
- Wi-Fi reconnects faster after booting or waking up.
- Sleep should use less battery and wake up more reliably, with a batch of kernel sleep fixes.
- Settings stick: anything you turn on in Desktop Mode (like SSH) actually starts after a reboot now.
- Decky: updated to 3.2.10, so plugins that broke on 3.2.9 load again.
- Games run without the Steam Frame's VR layers from steam frame (headset-only rendering tweaks Steam added to every game).
Known issues
- The frame limiter may not work.
Download
Download the .7z parts below and extract the .001 one with 7-Zip or WinRAR, that gives you the .img. SHA256s are in SHA256SUMS.
Installing
- Flash ROCKNIX ABL for SM8750 to
abl_aandabl_b. Back up your stock ABL first, the steps for both are in the Odin 3 guide. - Flash the
.imgto a microSD card (32GB+) with balenaEtcher or Rufus. - Hold Volume Down while turning it on, set Boot Mode to Linux and hit START.
First boot takes a couple of minutes.
Not booting or something broken? Make a text file called debug on the SD card's BOOT drive, boot and wait 3 minutes, then send the debug-logs folder on discord.
Supporting the project
anything raised will be used to buy devices to support and boost development, a star helps too!
Unofficial community port, not affiliated with or endorsed by Valve.
v1.2.1: Hotfix for v1.2 (games flickering below 1080p)
Installing for the first time? This isn't a new image. Download v1.2 and follow the install steps there, then come back and run the fix below.
This is a quick fix for anyone already running v1.2. No reflash, no reinstall, and your games and saves aren't touched. It takes about a minute. If you're still on v1.1 or older, update to v1.2 first.
What's fixed
Games flickering below 1080p. Lowering a game's resolution made the picture jump between full screen and the top-left corner, nonstop. The game and gamescope were fighting over the window size dozens of times a second. Now gamescope simply scales the game up to fill the screen, like on the Steam Deck, and as a bonus you get a nice FPS boost at lower resolutions. Thanks to everyone who reported it!
How to apply
- Switch to Desktop Mode and open Konsole.
- Paste this and press Enter:
curl -fsSL https://raw.githubusercontent.com/hashtagbasit/SteamOS-ARM-Handhelds/main/hotfixes/v1.2-lowres-flicker.sh | bash - Type your password when it asks. If you never set one, run
passwdfirst and then paste the command again. - Switch back to Game Mode. That's it.
Prefer not to paste commands from the internet? The same script is attached below. Download it, read it (it's short), and run bash v1.2-lowres-flicker.sh. Running it twice does no harm, and it keeps a backup of the original file in case you want to undo it.
v1.3 will have this built in, so you won't need to do anything after that.
Supporting the project
If you're enjoying this and want to help me keep going:
Any funds collected will be used to buy devices of different socs for further development and research. If you can't donate, a star helps too!
Unofficial community port, not affiliated with or endorsed by Valve.
v1.2: Native ARM frame gen + one-tap internal install
Already installed v1.2? Grab the v1.2.1 hotfix. It fixes games flickering when you lower their resolution below 1080p, takes a minute and needs no reflash. New installs: flash the image below first, then apply it.
Frame gen now runs natively on ARM, SteamOS can move to internal storage in a few taps, and from now on updates install over your current system instead of a reflash. Plus fixes for pretty much everything you reported. Grab it, have fun, and let me know what breaks.
What's new
Frame gen, native on ARM
- Lossless Scaling frame gen is on LSFG 2.0 now, with an ARM64 build for ARM64 games next to the plugin's x86 one for games running through FEX.
- The Decky plugin comes preinstalled and its Install button actually works now. You still need to own Lossless Scaling on Steam.
- The ARM64 layer is lsfg-vk 2.0 by PancakeTAS, built from the official source with no code changes and shared under its CC BY-NC-ND 4.0 license.
Install to internal storage
- New Easy UFS Installer app in Desktop Mode. Pick how much space Android keeps and it does the rest. Android stays, and you pick which one to boot in the ABL menu.
- It backs up your partition table to the SD card first, so you can always go back.
No more reflashing
- New SteamOS Update app. Future versions install over your current system and keep your games, saves, accounts and Wi-Fi. If an update gets cut off halfway, it rolls back on the next boot.
- v1.1 doesn't have the updater yet, so this is the last reflash.
AYANEO Pocket S2 and S2 Pro
- Initial support is in. Same chip and screen, so both run the same setup (on the Pro, pick AYANEO Pocket S2 as the device model in the ABL). I don't have one, so if you do, please try it and tell me what works.
Controls
- Right stick no longer moves the triggers, and the menu buttons no longer act like a right-click.
- The controller service was quietly using a whole CPU core in the background. Fixed, so a bit more battery and a bit less heat.
Everything else
- Newer gamescope, so the Steam UI runs at 144Hz and touch feels snappier.
- Updated to the newest Steam Frame SteamOS base.
- Play Store sign-in no longer gets blocked.
- Switching to Desktop Mode takes about 3 seconds now, and Wi-Fi stays connected when you come back to Game Mode.
- Fixed fan speed no longer jumps between your setting and 100%.
- Speakers sound cleaner and don't distort at max volume.
- Desktop Mode has the Steam splash again, and Discover installs apps properly.
- Hardware video decoding works.
- SSH is off by default now. To turn it on, set a password with
passwdin Konsole, then runsudo systemctl enable --now sshd.
Install
- Download the
steamos-arm-handhelds-v1.2.7zparts into the same folder. - Open the
.7z.001one with 7-Zip or WinRAR (Windows) or Keka (Mac) and extract it. You get one.imgfile. - Flash the
.imgto a microSD card (32GB or bigger) with balenaEtcher. - If you've never done this before, flash ROCKNIX ABL 1.1.8 or newer first (once is enough).
- Put the card in, hold Volume Down while powering on, set device model to KONKR Pocket FIT (or AYANEO Pocket S2), boot mode Linux, then START.
First boot takes a couple of minutes, then sign in to Steam and you're good to go.
Internal storage: once it's running from the SD card, open Easy UFS Installer in Desktop Mode. When it's done, set Boot source to Internal in the ABL menu. If you installed v1.1 to internal before, run UNINSTALL CFW in the ABL menu first.
Updating later: the SteamOS Update app is already on v1.2. When the next version comes out, its release will have an update package you can install straight from there, no reflash needed.
Known issues
- Games flicker below 1080p (picture jumps between full screen and the top-left corner). Fixed by the v1.2.1 hotfix.
Found something else? Tell me and I'll keep this list updated.
Supporting the project
If you're enjoying this and want to help me keep going:
Any funds collected will be used to buy devices of different socs for further development and research. If you can't donate, a star helps too!
v1.1: Android Arrives
Android apps on your Pocket FIT, right inside SteamOS! Plus a big pile of fixes. Android support is still in beta: most apps and games I tried run great, a few still don't. Grab it, have fun, and let me know what breaks.
What's new
Android, built in (beta)
- Google Play Store comes preinstalled. It's sitting in your Steam library after you sign in, just hit Play.
- Every app or game you install gets its own tile in your library with its real name and icon. Install from the Play Store and it just appears, like any other game.
- Got an
.apk,.apkm,.xapkor.apks? Double click it in Desktop Mode, or drop it in~/Android/Inbox, and it installs and gets a tile too. - Controller, touchscreen, swipes, pinch zoom and a touch keyboard all work. Back, Home and Recents work from Android's nav bar.
- Steam → Exit Game closes the app properly.
Install to internal storage
- It can now boot from the Pocket FIT's internal storage instead of the microSD card, and it's way snappier that way. See the note below.
Everything else
- Decky Loader and the KONKR Control plugin are preinstalled and actually there this time (a lot of you didn't have them on v1.0, so no keys fix either. Sorry about that!)
- Press the KONKR button and you get a Silent / Balanced / Turbo popup on screen, like on Android. No more digging through the QAM to see which mode you're in.
- Louder speakers, and the crackling in games is gone.
- QAM button works again.
- Desktop Mode has its app menu back and the on-screen keyboard pops up when you tap a text box.
- Discover installs are a bit quicker.
Install (microSD)
- Download the three
.7zfiles into the same folder. - Open the
.7z.001one with 7-Zip or WinRAR (Windows) or Keka (Mac) and extract it. You get one.imgfile. - Flash the
.imgto a microSD card (32GB or bigger) with balenaEtcher. - If you've never done this before, flash ROCKNIX ABL 1.1.8 or newer first (once is enough).
- Put the card in, hold Volume Down while powering on, set device model to KONKR Pocket FIT, boot mode Linux, then START.
First boot takes a couple of minutes, then it's the normal Steam setup. Done!
Internal storage
The system can boot from internal storage now (in the ABL menu, set Boot source to Internal). Installing to internal means repartitioning it, which wipes Android's data, so I don't want anyone doing that by hand. A simple installer and a proper guide are coming in the next update.
Android beta, good to know
- The first time you open the Play Store it downloads Lepton (Valve's Android layer) through Steam. Be online and give it a few minutes.
- The Play Store tile can take a minute to appear after your first Steam sign in.
- Games with anti-cheat that blocks emulators won't run, and a few other apps still crash. Working on it.
- It's Android 11 without Google certification, so the odd app may complain.
Known issues
- Real sleep doesn't wake up reliably yet, so standby is the default. It still sips about 1W.
- It gets warm in heavy games. Silent mode or a frame limit helps.
- The first app you install from Discover also downloads about 1GB of shared stuff, so that one takes a while.
Supporting the project
If you're enjoying this and want to help me keep going:
Can't donate? No worries at all, a ⭐ on the repo helps a ton too. Thanks!
v1.0
First release of SteamOS ARM for the KONKR Pocket FIT.
It's Valve's SteamOS for ARM with the Pocket FIT kernel from ROCKNIX (Linux 7.1.2), plus everything from the README: working standby, fan curve, 60/90/120/144Hz, lsfg frame gen on ARM, the performance overlay, Decky with the KONKR Control plugin, and the desktop fixes.
Download
The image is split into three parts because GitHub only allows 2GB per file.
- Download all three
.7zfiles into the same folder. - Open
steamos-sm8650-konkr-pocketfit.7z.001with 7-Zip or WinRAR (Windows), or Keka / The Unarchiver (Mac), and extract it. You'll getsteamos-sm8650-konkr-pocketfit.img. - Flash that
.imgto a microSD card (32GB or bigger) with balenaEtcher or Rufus.
SHA256SUMS is there if you want to check the download.
Install
- Flash ROCKNIX ABL 1.1.8 or newer to
abl_aandabl_bif you haven't already. - Put the card in, hold Volume Down while turning it on, Set device model → KONKR Pocket FIT, boot mode Linux, START.
- First boot takes a couple of minutes. After that it's the normal Steam setup.
Known issues
- Real kernel sleep doesn't wake up reliably yet, so standby is the default. It still gets it down to about 1W.
- It runs hot in heavy games. Silent profile or a frame limit helps.
- AYANEO Pocket S2 is in there but untested.
If you want to support the project: