ROCKNIX is a community developed Linux distribution for handheld gaming devices. Our goal is to produce an operating system that has the features and capabilities that we need, and to have fun as we develop it.
Licenses
ROCKNIX is a Linux distribution that is made up of many open-source components. Components are provided under their respective licenses. This distribution includes components licensed for non-commercial use only.
ROCKNIX Branding
ROCKNIX branding and images are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
You are free to
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
Under the following terms
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial — You may not use the material for commercial purposes.
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
ROCKNIX Software
Copyright (C) 2026 ROCKNIX (https://github.com/ROCKNIX)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Installation
- Download the latest version of ROCKNIX.
- Decompress the image.
- Write the image to an SDCARD using an imaging tool. Common imaging tools include Balena Etcher, Raspberry Pi Imager, and Win32 Disk Imager. If you're skilled with the command line, dd works fine too.
Installation Package Downloads
| Device/Platform | Download Package | Documentation |
|---|---|---|
| Anbernic Rg35xx Plus, Anbernic Rg35xx Pro, Anbernic Rg35xx H, Anbernic Rg35xx Sp, Anbernic Rg35xx 2024, Anbernic Rg40xx H, Anbernic Rg40xx V, Anbernic Rgcubexx, Anbernic Rg28xx, Anbernic Rg34xx, Anbernic Rg34xx Sp | ROCKNIX-H700.aarch64-20260701-DDR4.img.gz | documentation |
| Anbernic Rg35xx Plus, Anbernic Rg35xx Pro, Anbernic Rg35xx H, Anbernic Rg35xx Sp, Anbernic Rg35xx 2024, Anbernic Rg40xx H, Anbernic Rg40xx V, Anbernic Rgcubexx, Anbernic Rg28xx, Anbernic Rg34xx, Anbernic Rg34xx Sp | ROCKNIX-H700.aarch64-20260701-DDR3.img.gz | documentation |
| Anbernic Rg351m, Anbernic Rg351v, Gameconsole R33s, Gameconsole R36s, Magicx Xu10, Odroid Go2, Odroid Go2 V11, Odroid Go3, Powkiddy Rgb10 | ROCKNIX-RK3326.aarch64-20260701-a.img.gz | documentation |
| Powkiddy Rgb10x, Powkiddy Rgb20s, Magicx Xu10, Magicx Xu Mini M, Gameconsole Eeclone, Batlexp G350 | ROCKNIX-RK3326.aarch64-20260701-b.img.gz | documentation |
| Anbernic Rg552 | ROCKNIX-RK3399.aarch64-20260701.img.gz | documentation |
| Anbernic Rg Arc D, Anbernic Rg Arc S, Anbernic Rg353p, Anbernic Rg353ps, Anbernic Rg353v, Anbernic Rg353vs, Anbernic Rg503, Powkiddy Rgb10max3, Powkiddy Rgb20 Pro, Powkiddy Rgb20sx, Powkiddy Rgb30, Powkiddy Rk2023 | ROCKNIX-RK3566.aarch64-20260701-Generic.img.gz | documentation |
| Powkiddy X55, Powkiddy X35s, Anbernic Rg Ds | ROCKNIX-RK3566.aarch64-20260701-Specific.img.gz | documentation |
| Anbernic Rg Vita Pro | ROCKNIX-RK3576.aarch64-20260701.img.gz | documentation |
| Gameforce Ace, Retro Lite Cm5, Retroled Cm5 | ROCKNIX-RK3588.aarch64-20260701.img.gz | documentation |
| Odroid Go Ultra, Powkiddy Rgb10 Max 3 Pro | ROCKNIX-S922X.aarch64-20260701.img.gz | documentation |
| MANGMI Air X MQ66, MANGMI Air X MQ66B, MANGMI Air X MQ65 | ROCKNIX-SM6115.aarch64-20260701.img.gz | documentation |
| Retroid Pocket 5, Retroid Pocket Flip2, Retroid Pocket Mini, Retroid Pocket Mini V2, AYN Thor Lite, MANGMI Pocket Max | ROCKNIX-SM8250.aarch64-20260701.img.gz | documentation |
| AYN Odin2, AYN Odin2 Portal, AYN Odin2 Mini, AYN Thor, AYANEO Pocket ACE, AYANEO Pocket DMG, AYANEO Pocket EVO, AYANEO Pocket DS, AYANEO Pocket S 2K, Retroid Pocket 6, Retroid Pocket 6 TOP-DPAD | ROCKNIX-SM8550.aarch64-20260701.img.gz | documentation |
| AYANEO Pocket S2, KONKR Pocket FIT | ROCKNIX-SM8650.aarch64-20260701.img.gz | documentation |
| AYN Odin3 | ROCKNIX-SM8750.aarch64-20260701.img.gz | documentation |
Upgrading
- Download and install the update online via the System Settings menu.
- If you are unable to update online
- Download the latest version of ROCKNIX from Github
- Copy the update to your device over the network to your device's update share.
- Reboot the device, and the update will begin automatically.
Update Package Downloads
| Device/Platform | Download Package |
|---|---|
| Anbernic Rg35xx Plus, Anbernic Rg35xx Pro, Anbernic Rg35xx H, Anbernic Rg35xx Sp, Anbernic Rg35xx 2024, Anbernic Rg40xx H, Anbernic Rg40xx V, Anbernic Rgcubexx, Anbernic Rg28xx, Anbernic Rg34xx, Anbernic Rg34xx Sp, Anbernic Rg35xx Plus, Anbernic Rg35xx Pro, Anbernic Rg35xx H, Anbernic Rg35xx Sp, Anbernic Rg35xx 2024, Anbernic Rg40xx H, Anbernic Rg40xx V, Anbernic Rgcubexx, Anbernic Rg28xx, Anbernic Rg34xx, Anbernic Rg34xx Sp | ROCKNIX-H700.aarch64-20260701.tar |
| Anbernic Rg351m, Anbernic Rg351v, Gameconsole R33s, Gameconsole R36s, Magicx Xu10, Odroid Go2, Odroid Go2 V11, Odroid Go3, Powkiddy Rgb10, Powkiddy Rgb10x, Powkiddy Rgb20s, Magicx Xu10, Magicx Xu Mini M, Gameconsole Eeclone, Batlexp G350 | ROCKNIX-RK3326.aarch64-20260701.tar |
| Anbernic Rg552 | ROCKNIX-RK3399.aarch64-20260701.tar |
| Anbernic Rg Arc D, Anbernic Rg Arc S, Anbernic Rg353p, Anbernic Rg353ps, Anbernic Rg353v, Anbernic Rg353vs, Anbernic Rg503, Powkiddy Rgb10max3, Powkiddy Rgb20 Pro, Powkiddy Rgb20sx, Powkiddy Rgb30, Powkiddy Rk2023, Powkiddy X55, Powkiddy X35s, Anbernic Rg Ds | ROCKNIX-RK3566.aarch64-20260701.tar |
| Anbernic Rg Vita Pro | ROCKNIX-RK3576.aarch64-20260701.tar |
| Gameforce Ace, Retro Lite Cm5, Retroled Cm5 | ROCKNIX-RK3588.aarch64-20260701.tar |
| Odroid Go Ultra, Powkiddy Rgb10 Max 3 Pro | ROCKNIX-S922X.aarch64-20260701.tar |
| MANGMI Air X MQ66, MANGMI Air X MQ66B, MANGMI Air X MQ65 | ROCKNIX-SM6115.aarch64-20260701.tar |
| Retroid Pocket 5, Retroid Pocket Flip2, Retroid Pocket Mini, Retroid Pocket Mini V2, AYN Thor Lite, MANGMI Pocket Max | ROCKNIX-SM8250.aarch64-20260701.tar |
| AYN Odin2, AYN Odin2 Portal, AYN Odin2 Mini, AYN Thor, AYANEO Pocket ACE, AYANEO Pocket DMG, AYANEO Pocket EVO, AYANEO Pocket DS, AYANEO Pocket S 2K, Retroid Pocket 6, Retroid Pocket 6 TOP-DPAD | ROCKNIX-SM8550.aarch64-20260701.tar |
| AYANEO Pocket S2, KONKR Pocket FIT | ROCKNIX-SM8650.aarch64-20260701.tar |
| AYN Odin3 | ROCKNIX-SM8750.aarch64-20260701.tar |
Documentation
Contribute
- Building ROCKNIX
- Code of Conduct
- Contributing to ROCKNIX
- Modifying ROCKNIX
- Adding Hardware Quirks
- Creating Packages
- Pull Request Template
Play
- Installing ROCKNIX
- Updating ROCKNIX
- Controls
- Netplay
- Configuring Moonlight
- Device Specific Documentation
Configure
Other
Full Changelog: 2026060...2026070
Changelog
🐧 Kernel & Boot
- rocknix-abl: bump to v1.1.2 (spycat88) (a4f6829)
- abl: bump to 1.1.1 (sunshineinabox) (6419643)
- linux: kernel config (John Williams) (08cec3b)
- linux: bump to 7.0.11 (Philippe Simons) (7eec328)
- linux: drop upstreamed patches (Philippe Simons) (f4b9524)
- linux: bump kernel to 7.0.10 (Philippe Simons) (bce10f8)
- linux: enable CONFIG_INPUT_JOYDEV on all Qualcomm devices (Anze) (a1cce8f)
🎮 Emulators & Frontend
- pcsx2: bump to latest head (Philippe Simons) (7f1654e)
- pcsx2-sa: add cheevos support (rocknix) (05bfeef)
- emulationstation: merge latest ES changes (rocknix) (8881593)
- pcsx2: add for SM8250+ (Philippe Simons) (6ebef97)
- supersnes9x: change the branch for libretro (litania) (5c26137)
- drastic-sa: clean up comments and indentation (LyohaProto) (5cb8fea)
- drastic-sa: adjust sharp-shimmerless amd quilez shader code (LyohaProto) (7f17f82)
- drastic-sa: fix quilez, add sharp-shimmerless shader (LyohaProto) (2449077)
- drastic-sa: add pixel shader support via SDL2 hook (Aleksei) (ebeb4f7)
- emulationstation: bump version (sunshineinabox) (0cde37d)
- box64: v0.4.2 (John Williams) (5da916a)
- Gopher64-SA: fix input (rocknix) (e47664b)
- Gopher64-SA: fix input (rocknix) (5f11bca)
- lowerdeck: bump package (bulzipke) (68348c1)
- supersnes9x: bump more recent version (litania) (fdc0ce3)
- steam: fix incorrect timezones (tiopex) (5202ce5)
- fex-emu: update game image for fex-emu (tiopex) (d623afb)
- retroarch: update retroarch.cfg (bulzipke) (d9a7890)
- steam: add steamos-set-timezone script (tiopex) (d1a3381)
- steam: bump proton-cachyos 11.0-20260601-slr (tiopex) (cd3f4fb)
- lowerdeck: bump package (bulzipke) (d89fb2c)
- emulationstation: fake suspend toggles (John Williams) (1d80ebc)
- retroarch: bump package (bulzipke) (fcfa689)
- retroarch: fix inputplumber hotkey (Philippe Simons) (a048635)
- scummvm-sa: downgrade to 2026.1.0 (Philippe Simons) (d40d34e)
- gamecontrollerdb: fix abxy inputplumber mappings (spycat88) (b8019ff)
- hypseus-singe: fix broken controls (spycat88) (3e95cac)
- rpcs3-sa: bump to 0.0.41-19444 (Philippe Simons) (f4d96ad)
- retroarch: add supersnes9x, adapt bnses in gb (litania) (a391477)
- hypseus-singe: fix quit with hotkey (spycat88) (38ba9eb)
- emulationstation: bump package (spycat88) (9ebc2fd)
- emulationstation: bump package (spycat88) (f2c89f8)
- steam: bump proton-cachyos 11.0-20260521-slr (tiopex) (b7be1e8)
- emulationstation: bump package (spycat88) (d5cb5eb)
- PPSSPP-SA: hide web links from UI, combine qcom patch files (rocknix) (bda2e92)
- rocknix-systems: fix dreamcast / naomi bios path (John Williams) (17b8c19)
- rpcs3-sa: bump package (Philippe Simons) (623f443)
🖥️ Graphics
- gamescope: fix rotation shader cache key (sunshineinabox) (d5991e1)
- gamescope: bump version fix wlroots submodule (tiopex) (c3643b9)
- gamescope: update version 3.16.23.1 (tiopex) (134e1fb)
- mangohud: build with fex (tiopex) (866b729)
- gamescope: enable pipewire support (Gianni Spadoni) (87d68e0)
🌐 Network
- wifi: honor wifi config on boot (Philippe Simons) (107daac)
- networkmanager: ControlPortOverNL80211 to true (sunshineinabox) (1a1b206)
- networkmanager: rk3326 specific main.conf (sunshineinabox) (1c02c75)
📱 Device Support
- sm8250: watchdog for PM pad (sunshineinabox) (419266e)
- sm8250: enable rtc (sunshineinabox) (6d09b1f)
- sm8250: revert grub rotation for Pocket Max (Philippe Simons) (e4df7c2)
- SM8550: restrict SLOW to A510 little cores only (ddordie) (9dd2db4)
- SM8250 / RP5: Fix brightness adjustment causing screen to 'jump' (rocknix) (01b1b4c)
- sm8550: fix duplicated controller (bulzipke) (8446235)
- SM8650: add ChipOne ICNL9922C touchscreen support for KONKR Pocket FIT (Kevin Kreiser) (242e3d0)
- sm6115: clear stale config on update (sunshineinabox) (58e3396)
- sm6115: remove stale patch to fix build (sunshineinabox) (e52c428)
- sm6115: enable mem suspend (sunshineinabox) (1506b6c)
- sm6115: gamepad improvements (sunshineinabox) (6511e1f)
- sm6115: Touchscreen improvements (sunshineinabox) (dbb74ea)
- h700: fix rg34xx-sp-v2 rocknix-dt-id (Philippe Simons) (0ce8eb2)
- h700: add rg34xx-sp-v2 (Philippe Simons) (c783996)
- sm8250: gamepad fixes (sunshineinabox) (d43279a)
- sm8750: fix panel initialization in gamescope (tiopex) (b59f018)
- sm8550/ayaneo: add displayport audio support (JS Deck) (fea700c)
- sm8250: fixed regulator rumble (sunshineinabox) (5418491)
- sm8550: add cpuidle quirk (Philippe Simons) (6ec6e66)
- sm8250: Charger driver (sunshineinabox) (9ffcf10)
- sm8250: enable rumble (sunshineinabox) (7601e36)
- sm8250: update update.sh (Philippe Simons) (2e7f18b)
- sm8250: merge pm driver (sunshineinabox) (5868d2c)
- sm6115: add gamepadtester and qterminal (Philippe Simons) (8177a1a)
- h700: subdevices (Philippe Simons) (2e825af)
- sm8250: Mangmi Pocket Max (sunshineinabox) (cac6b82)
- S922X: linux 7.0.11 (John Williams) (d952bf8)
- sm8750: drop upstreamed patches (Philippe Simons) (2ea3b5c)
- RK3576: Add DP Alt Mode display management (Paul V. Gratz) (9f77f85)
- S922X: mainline u-boot (John Williams) (a66f9b9)
- sm8250: fix RP5 display (Philippe Simons) (0c284c4)
- sm6115: enable USB PD 3.0 (sunshineinabox) (f35d104)
- sm6115: Match android emmc and sdcard (sunshineinabox) (f2999c1)
- sm6115: Wire DMIC and Headset Mic (sunshineinabox) (ab13166)
- SM6115: GPU max clock speed limiting (John Williams) (8138586)
- SM8550: Home key mapping for AYN button on Thor (bulzipke) (9016ae4)
⚙️ CI & Workflows
- CI: Add changelog to official release (tiopex) (1a839af)
- CI: use softprops/action-gh-release@v3 and gh cli for release (tiopex) (93b1245)
- CI: run validate-commit job on self-hosted runner (tiopex) (a0a5911)
- CI: update commit title length check to 72 characters (tiopex) (4d8dc15)
- CI: disable check AI usage (tiopex) (2f61add)
- validate-commit: allow _*./- in package name (spycat88) (f1ac6d8)
- workflows: update commit messages (John Williams) (a9fba25)
- CI: add workflow for aarch64 rust build process (tiopex) (01b51b0)
- ci: update maximize build space action (tiopex) (36660be)
- CI: skip commit lint for merge_group event (tiopex) (67aea95)
- CI: enhance commit message validation checks (tiopex) (fc74f24)
🔧 System
- rocknix: update SDL3 (rocknix) (204e544)
- ROCKNIX: Update graphics / display packages (rocknix) (a9e4642)
- ROCKNIX: Add SDL2 notification system. (rocknix) (e01e7be)
- ROCKNIX: Add SDL2 notification system. (rocknix) (299300c)
- rocknix: settings for community builds (Philippe Simons) (f671d6c)
- rocknix: fix build branch detection (Philippe Simons) (0ea4a28)
- systemd: add timedatectl (tiopex) (83cf95a)
- rocknix-fake-suspend: unfreeze before shutdown (John Williams) (8fcba31)
- rocknixinfo: prevent SN hang (sunshineinabox) (4417483)
- panel: unify regulators (sunshineinabox) (32c12dc)
- usbgadget: USB mode mismatch correction (sunshineinabox) (2e4619b)
- options: use zstd compression (Philippe Simons) (76229d4)
- updateabl: run partprobe first (spycat88) (ab76380)
- systemd-machine-id-setup: fix getting soc serial (spycat88) (61ff107)
- deviceinfo: hide blank line (sunshineinabox) (60d300c)
- deviceinfo: show serial number (sunshineinabox) (375ba08)
- build: add misc-packages in base only build (sunshineinabox) (6dd2395)
- lib32: add 32-bit Vulkan ICD manifests (sunshineinabox) (1a7714a)
- busybox: enable cmp for target, needed during Steam install (spycat88) (363f43c)
- Install Steam: implement error handling (spycat88) (d50674f)
- post-update: cleanup (John Williams) (04019a8)
- input_sense: filter events using grep (Philippe Simons) (36b5c90)
📚 Documentation
- documentation: SUPPORTED_EMULATORS_AND_CORES (John Williams) (4fce8fb)
🔩 Other
- thor: fix volume up by splitting AYN key into separate gpio-keys node (bulzipke) (1cd4b07)
- thor-lite: disable bottom touchscreen (Philippe Simons) (c9a7b71)
- emulators: add pcsx2 to RK3566 & RK3576 (Philippe Simons) (1a590f8)
- thor: enable bottom touchscreen when secondary window appears (bulzipke) (13555ff)
- thor-lite: fix touchscreen input focus (Philippe Simons) (196c725)
- thor: reinforce focus prevention in ES using fake click (bulzipke) (5e91063)
- thor: disable bottom touchscreen in ES to prevent focus stealing (bulzipke) (d0416bd)
- bugfix: set pcsx2-sa build version for hardcore retro achievements (rocknix) (f06c3e5)
- scripts/get_env: fix to not overwrite PATH from current system (sydarn) (154002e)
- thor: split lid into a separate input device (9cXndy) (06b9a31)
- ch13726a: add mipi_dsi_msleep(120) after exit_sleep_mode (Ed Kozuto) (73dac49)
- Fix ROCKNIX INFO (rocknix) (433783f)
- SM*/update.sh: call updateabl, don't source it (spycat88) (18d890d)
- Update Dolphin-SA & Xemu-SA (rocknix) (475aed1)
- Update Mesa to 26.1.2 (rocknix) (c9f0fc7)
- Update ARES-SA and add initial support for SM8750 and SM8650 (rocknix) (7029cfc)
- Make sure PPSSPP conf dir exists when launching from tools (rocknix) (565ee9e)
- Update kernel configs (github-merge-queue[bot]) (efae8a5)
- Enable NTSync + SM6115 match with S922X (sunshineinabox) (30c6424)
- apps: qterminal terminal-friendly keyboard + dedicated workspace (André Braga) (8135add)
