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-20260801-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-20260801-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-20260801-a.img.gz | documentation |
| Powkiddy Rgb10x, Powkiddy Rgb20s, Magicx Xu10, Magicx Xu Mini M, Gameconsole Eeclone, Batlexp G350, Rk3326s Gkd Pixel2 | ROCKNIX-RK3326.aarch64-20260801-b.img.gz | documentation |
| Anbernic Rg552 | ROCKNIX-RK3399.aarch64-20260801.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-20260801-Generic.img.gz | documentation |
| Powkiddy X55, Powkiddy X35s, Anbernic Rg Ds | ROCKNIX-RK3566.aarch64-20260801-Specific.img.gz | documentation |
| Anbernic Rg Vita Pro | ROCKNIX-RK3576.aarch64-20260801.img.gz | documentation |
| Gameforce Ace, Retro Lite Cm5, Retroled Cm5 | ROCKNIX-RK3588.aarch64-20260801.img.gz | documentation |
| Odroid Go Ultra, Powkiddy Rgb10 Max 3 Pro | ROCKNIX-S922X.aarch64-20260801.img.gz | documentation |
| MANGMI Air X MQ66, MANGMI Air X MQ66B, MANGMI Air X MQ65 | ROCKNIX-SM6115.aarch64-20260801.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-20260801.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, AYANEO Pocket S 1K, Retroid Pocket 6, Retroid Pocket 6 TOP-DPAD, Retroid Pocket Nova | ROCKNIX-SM8550.aarch64-20260801.img.gz | documentation |
| AYANEO Pocket S2, KONKR Pocket FIT | ROCKNIX-SM8650.aarch64-20260801.img.gz | documentation |
| AYN Odin3, KONKR Pocket FIT Elite | ROCKNIX-SM8750.aarch64-20260801.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-20260801.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, Rk3326s Gkd Pixel2 | ROCKNIX-RK3326.aarch64-20260801.tar |
| Anbernic Rg552 | ROCKNIX-RK3399.aarch64-20260801.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-20260801.tar |
| Anbernic Rg Vita Pro | ROCKNIX-RK3576.aarch64-20260801.tar |
| Gameforce Ace, Retro Lite Cm5, Retroled Cm5 | ROCKNIX-RK3588.aarch64-20260801.tar |
| Odroid Go Ultra, Powkiddy Rgb10 Max 3 Pro | ROCKNIX-S922X.aarch64-20260801.tar |
| MANGMI Air X MQ66, MANGMI Air X MQ66B, MANGMI Air X MQ65 | ROCKNIX-SM6115.aarch64-20260801.tar |
| Retroid Pocket 5, Retroid Pocket Flip2, Retroid Pocket Mini, Retroid Pocket Mini V2, AYN Thor Lite, MANGMI Pocket Max | ROCKNIX-SM8250.aarch64-20260801.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, AYANEO Pocket S 1K, Retroid Pocket 6, Retroid Pocket 6 TOP-DPAD, Retroid Pocket Nova | ROCKNIX-SM8550.aarch64-20260801.tar |
| AYANEO Pocket S2, KONKR Pocket FIT | ROCKNIX-SM8650.aarch64-20260801.tar |
| AYN Odin3, KONKR Pocket FIT Elite | ROCKNIX-SM8750.aarch64-20260801.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: 2026070...2026080
Changelog
🐧 Kernel & Boot
- linux: kernel config (github-merge-queue[bot]) (9a37ac3)
- linux: declare kernel-firmware in PKG_DEPENDS_UNPACK for SM8650/SM8750 (Patrick Hennig) (5159490)
- extra-firmware: bump for KONKR Pocket FIT Elite blobs (Patrick Hennig) (ab74054)
- rocknix-abl: bump version to v1.1.6 (spycat88) (3350239)
- rocknix-abl: bump version to v1.1.5 (spycat88) (a84e20d)
- linux: kernel config (github-merge-queue[bot]) (5dcf5a0)
- linux: kernel config (porschemad911) (da1e8c1)
- linux: kernel config (github-merge-queue[bot]) (64ac968)
- grub: set rotation at first boot (sunshineinabox) (1405c41)
- linux: kernel config (github-merge-queue[bot]) (cb9cfe3)
- grub: add Thor Lite token (sunshineinabox) (02f6798)
- linux: expose DualSense Edge Fn + back paddles as evdev buttons (Anze) (ae737a9)
- grub: device detection (sunshineinabox) (f085a79)
- rocknix-abl: bump version to v1.1.4 (spycat88) (b63b8e6)
- abl: bump abl to 1.1.3 (sunshineinabox) (b791ac7)
- linux: kernel config (github-merge-queue[bot]) (c52fe17)
- linux: kernel config (loki666) (bc03527)
- linux: bump SM8650 to 7.1.2 (Philippe Simons) (6281c50)
- linux: bump SM8550 to 7.1.2 (Philippe Simons) (aa458af)
- linux: bump SM8250 to 7.1.2 (Philippe Simons) (01cf20e)
- linux: move rocknix-joypad patch (Philippe Simons) (1af927a)
🎮 Emulators & Frontend
- armsx2-sa: replace yaps2-sa with the ARMSX2 PS2 emulator (Brian Degenhardt) (0988993)
- steam: fix orientation for RP Nova (spycat88) (02a63c2)
- yaps2-sa: fix panfrost (John Williams) (d6780aa)
- steam: update Steam runtime URL (tiopex) (d1b25da)
- yaps2-sa: fix analog controls ranges (Philippe Simons) (580a334)
- rpcs3-sa: bump to 0.0.41-19607 (Philippe Simons) (0f09bd1)
- yaps2-sa: fix savestates / memorycards dirs (John Williams) (9ff62ad)
- yaps2-sa: fix input config for S922X (John Williams) (23a2819)
- yaps2-sa: bump to dbb7eade6 (Brian Degenhardt) (7a23794)
- yaps2-sa: fix cheevos script fat-finger (John Williams) (ee604bc)
- steam: add proton-GE (tiopex) (cd24550)
- steam: bump proton cachyOS 20260702 (tiopex) (9601d4a)
- fex-emu: bump to FEX-2607 (tiopex) (aa1f3f8)
- prboom-lr: bump version, enable for doom system (John Williams) (31d4f58)
- yaps2-sa: bump to 891f3b519, build core with -O3 + LTO (Brian Degenhardt) (e68da51)
- drastic-sa: soften LCD3X subpixel mask and scanline darkening (LyohaProto) (8b5b3be)
- emulationstation: fix vulkan options filter (Philippe Simons) (ffaef00)
- yaps2-sa: rebrand from pcsx2-sa, build from github.com/yaps2/yaps2 (Brian Degenhardt) (33ae361)
- azahar-sa: bump to v2125.1.3 (John Williams) (e9ffae0)
- pcsx2-sa: bump (Philippe Simons) (5777c45)
- pcsx2-sa: bump (Philippe Simons) (41ae927)
- pcsx2-sa: bump to latest head (Philippe Simons) (85f8cf3)
- supersnes9x: bump into main branch (litania) (a10b96a)
- supersnes9x: bump recent one (force updated) (litania) (f4eaf9b)
🖥️ Graphics
- qt6: bump to v6.10.3 (John Williams) (acf288e)
- vulkan: install the layer multiarch (sunshineinabox) (d3965a8)
- libmali: fix 32 bit vulkan (sunshineinabox) (f91747b)
- qt6: fix PKG_VERSION / PKG_URL logic (John Williams) (bac4078)
- qt6: pin to v6.8.3 for Mali devices (John Williams) (cf3890c)
- libmali: g29 for rk3566/76 (sydarn) (9f57190)
🌐 Network
- rclone: safer restores, RSYNCRMDIR, drop legacy mount code (Max Engel) (e35e5e8)
- tailscale: bump package 1.98.8 (Ivan Taberas Morales) (4fc428e)
📱 Device Support
- SM8750: KONKR PFE LED color modes and battery status (Patrick Hennig) (f6a5cfa)
- SM8750: KONKR PFE analog-stick RGB control (Patrick Hennig) (0437e0c)
- SM8750: fan control — match the gpuss* thermal zones (Patrick Hennig) (c25cb90)
- SM8750: wire pmk8550 RTC set-time via SDAM nvmem offset (Patrick Hennig) (7b5eec6)
- SM8750: KONKR system buttons + stick RGB serdev driver (Patrick Hennig) (49afa3a)
- SM8750: KONKR PFE internal UFS (eUFS) (Patrick Hennig) (5a2990f)
- SM8750: KONKR PFE GPU + system firmware blobs (Patrick Hennig) (ee8bcbc)
- SM8750: add KONKR Pocket FIT Elite board (Patrick Hennig) (a7df0ba)
- SM8550: AYN Odin 2 - expose the two back buttons as gpio-keys (Edouard Durand) (d63fb9d)
- SM8550: fix spacing snafu in RP Nova DT (spycat88) (246e62c)
- SM8750: enable DisplayPort alt-mode over USB-C (André Braga) (13392fb)
- SM8750: restore dock DisplayPort output broken by the 7.1 bump (Anze) (f6a3e75)
- SM8550: add support for the Retroid Pocket Nova (spycat88) (3c3ac4f)
- SM6115: add yaps2-sa (John Williams) (1a08668)
- S922X: add yaps2-sa (John Williams) (d972c0b)
- S922X: batteryplus (John Williams) (f001b7f)
- sm8550: Fix ACD clamp (sunshineinabox) (7aa4fd0)
- SM8750: persist RTC offset in SDAM (André Braga) (2604fc6)
- SM8550: drop gfx. vote from gpucc (sunshineinabox) (e70b1d0)
- RK3326: add GKD Pixel2 support (GameKiddy) (Jacob Cook) (59d4771)
- SM8250: fix fourth analog stick LED zone control (Luke Johnson) (4d1e025)
- SM8550: fix fourth analog stick LED zone control (Luke Johnson) (90d9b55)
- SM8750: q6apm-lpass start RX port at prepare for Odin3 speakers (André Braga) (a495f0f)
- sm6115: disable OTG on shutdown (sunshineinabox) (32d648f)
- SM8750: enable the Adreno 830 (André Braga) (620baca)
- SM8750: bump to linux 7.1.3 (André Braga) (6166516)
- S922X: u-boot v2026.07 (John Williams) (f666bae)
- S922X: linux v6.18.38 (John Williams) (85a66d4)
- rk3566/67: not needed with new blobs (sunshineinabox) (e8f07f9)
- sm8650: disable sdhci-caps-mask (Philippe Simons) (b3c5b39)
- S922X: linux 7.0.14 with charger debug (John Williams) (9b84a12)
- SM8550/1K: Pocket S 1080p panel adaptation with goodix touch scaling (Philippe Simons) (bafc779)
- sm8250: autoload for MPM gamepad (sunshineinabox) (bd0eff6)
- SM8750: add the gpio-keys-paddles source to the Odin 3 composite (Anze) (6a95996)
- SM8750: fix SDL paddle label for the Edge left paddle (Anze) (497d836)
- SM8750: fix product id in the DualSense Edge RetroArch autoconfig (Anze) (e90e364)
- amd64: update to kernel 7.1.2, misc fixes (rocknix) (bcf1aa3)
- SM8750: keep emulator mappings intact for the DualSense Edge pad (Anze) (fc21904)
- SM8750: AYN Odin 3 - emulate a DualSense Edge so back paddles work (Anze) (275deef)
- SM8750: AYN Odin 3 - expose the two back paddles as gpio-keys (Anze) (0c85887)
- sm8250: prevent rp5 fan spin at shutdown (sunshineinabox) (e54f4bf)
- sm8250: match panel timings to vendor (sunshineinabox) (5ad342c)
- amd64: Sway - Treat eDP like dsi, and set HDMI res. (rocknix) (0651abc)
- amd64: add rocknix installer (rocknix) (09810c3)
- amd64: add YAPS2-SA (rocknix) (ea10e61)
- amd64: more amd64 updates (rocknix) (e93081d)
- AMD64: bring back AMD64 support, initial work (rocknix) (7c75a68)
- sm6115: remove OOT rumble driver (sunshineinabox) (947cbde)
- sm8250: package rocknix_abl (Philippe Simons) (592e178)
- h700: disable rumble (Philippe Simons) (a69c703)
- sm8650: restore Pocket Fit touchscreen (Philippe Simons) (6338951)
- sm8650: update sdhc_2 regulators (Philippe Simons) (154c539)
- SM6115: bump linux 7.1.2 (sunshineinabox) (9b9649c)
- SM8250: add support for HDMI audio, and limit HDMI output resolution (Edvard Pedersen) (705f43d)
⚙️ CI & Workflows
- CI: preserve gh-cli in update mirror sources workflow (tiopex) (3334e6f)
- CI: move freeze period check to separate workflow (tiopex) (58399f4)
- CI: reorganise PR linter workflow (spycat88) (5e923e4)
- CI: generic changelog (tiopex) (ea7e644)
- workflows: build qt6 - use bash shell (John Williams) (d36f245)
🔧 System
- inputplumber: revert to ds5 (Philippe Simons) (2f94c33)
- ncurses: Add SHA256 checksum for ncurses (tiopex) (3aa1936)
- rocknix: post-update cleanup, copy bios for armsx2 (John Williams) (43fbcff)
- inputplumber: fix boot delay on RP Nova (spycat88) (e76acf9)
- rocknix: rocknix-info - support batteryplus (John Williams) (9870fbe)
- rocknix: remove fan-poweroff service (John Williams) (e2af1bf)
- rocknix: add NDEBUG flag to HOST_CFLAGS for release builds (tiopex) (de20ce0)
- systemd: regenerate ld.so.cache when image changes (sunshineinabox) (aa21ad8)
- lib32: skip ICD manifests (sunshineinabox) (ae865d3)
- gamepadcalibration: fix detection of Retroid SM8250 device (Edvard Pedersen) (d92f1e3)
- rocknix: getshaders optimization (John Williams) (e302626)
- rocknix: fix partition table types (spycat88) (2bef26a)
- rocknix: use default cluster size (spycat88) (a19980d)
- gcc: move d/s patch out of u/s directory (spycat88) (0f745b2)
📚 Documentation
- documentation: SUPPORTED_EMULATORS_AND_CORES (porschemad911) (33e571e)
- documentation: SUPPORTED_EMULATORS_AND_CORES (github-merge-queue[bot]) (6e7a355)
- documentation: SUPPORTED_EMULATORS_AND_CORES (loki666) (0343199)
🔩 Other
- soc/qcom: defer altmode probe until mode-switch registers (Patrick Hennig) (51112fe)
- ASoC: KONKR PFE headphone jack (wcd939x) + HPH PCM mode (Patrick Hennig) (4c58580)
- ASoC: KONKR PFE speaker audio (AW88261 on MI2S) (Patrick Hennig) (b3de80f)
- input/touchscreen: add Chipone ICNL9922C TDDI (KONKR PFE) (Patrick Hennig) (cf227ee)
- input/joystick: add AYANEO MCU gamepad (KONKR PFE) (Patrick Hennig) (68e7974)
- backlight: add AW99706 driver fixes (KONKR PFE) (Patrick Hennig) (f223624)
- drm/panel: add ayaneo,ar14-144hz panel (KONKR PFE) (Patrick Hennig) (5cff2f7)
- regulator: add SGM3804 panel-bias driver (KONKR PFE) (Patrick Hennig) (335fb3c)
- bugfix: add missing serial number check to sm8550 (rocknix) (9ba93da)
- bugfix: remove uncessary boot and shutdown text (rocknix) (a5970d2)
- bugfix: fix sm8550 audio boot delay / log spam (rocknix) (5cf234d)
- rpnova: add device quirk dir (rocknix) (32a1d85)
- rpnova: fix nova left joystick axis and add trigger deadzone (rocknix) (320d8e4)
- yabasanshiro: fix input (tiopex) (b143962)
- retroarch-joypads: fix malformed rg arc config (Patrick Carey) (67b0fb8)
- yaps2: fix linker (tiopex) (8df7c70)
- doom: fix default emulator (John Williams) (fbbfb36)
- rpcs3: bump to 0.0.41-19564-700ca262 (Philippe Simons) (5933bcf)
- thor-lite: fix pwm freq (Philippe Simons) (cd7cce7)
- odin2: fix boot (Philippe Simons) (b03cdb9)
- yaps2: update BIOS path (Philippe Simons) (22665d6)
- github: prevent validation failures caused by github pr merges (spycat88) (7015127)
- github: look for merge commits when validating pull requests (spycat88) (867b09d)
- emulators: remove pcsx2-sa from RK3566/RK3576 (John Williams) (ef932b9)
- scripts/get_git: clean cached submodule dir on retry (Felix Jones) (ea0c3ad)
- Minor libmali fixes not to break old libmali devices (sydarn) (6445736)
- rp6: enable back paddle gpio's, thanks @monsterrider (rocknix) (ee03bc6)
- fix: make DirtyWave USB audio matching case-insensitive (Ryan Parsley) (7ee4d74)
- drastic: clean up lcd1x-nds-color shader comment (Cainam-git) (ba22ea7)
- drastic: add lcd1x-nds-color shader (Cainam-git) (8063331)
- gzdoom: add SAVEDIR support in .doom files (Eladio Linares) (6733667)
