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, Anbernic Rg Sp | ROCKNIX-H700.aarch64-20261101-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, Anbernic Rg Sp | ROCKNIX-H700.aarch64-20261101-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-20261101-a.img.gz | documentation |
| Powkiddy Rgb10x, Powkiddy Rgb20s, Magicx Xu10, Magicx Xu Mini M, Gameconsole Eeclone, Batlexp G350, Rk3326s Gkd Pixel2 | ROCKNIX-RK3326.aarch64-20261101-b.img.gz | documentation |
| Anbernic Rg552 | ROCKNIX-RK3399.aarch64-20261101.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-20261101-Generic.img.gz | documentation |
| Powkiddy X55, Powkiddy X35s, Anbernic Rg Ds, Anbernic Rg Ds Plus | ROCKNIX-RK3566.aarch64-20261101-Specific.img.gz | documentation |
| Anbernic Rg Vita Pro | ROCKNIX-RK3576.aarch64-20261101.img.gz | documentation |
| Gameforce Ace, Retro Lite Cm5, Retroled Cm5 | ROCKNIX-RK3588.aarch64-20261101.img.gz | documentation |
| Odroid Go Ultra, Powkiddy Rgb10 Max 3 Pro | ROCKNIX-S922X.aarch64-20261101.img.gz | documentation |
| Sdm845 Ayn Odin M0, Sdm845 Ayn Odin M2 | ROCKNIX-SDM845.aarch64-20261101.img.gz | documentation |
| Anbernic Rg55g1, Retroid Pocket Classic, Retroid Pocket Classic Revq, Retroid Pocket Classic 6 Revq | ROCKNIX-SM4450.aarch64-20261101.img.gz | documentation |
| Mangmi Air X Mq66, Mangmi Air X Mq66b, Mangmi Air X Mq65, Mangmi Air Y, Retroid Pocket Duo Lite | ROCKNIX-SM6115.aarch64-20261101.img.gz | documentation |
| Retroidpocket Rp5, Retroidpocket Rp5 Visionox, Retroidpocket Flip2, Retroidpocket Flip2 Visionox, Retroidpocket Rpmini, Retroidpocket Rpminiv2, Ayn Thorlite, Mangmi Pocket Max, Mangmi Air Y Pro | ROCKNIX-SM8250.aarch64-20261101.img.gz | documentation |
| Ayn Odin2, Ayn Odin2portal, Ayn Odin2mini, Ayn Thor, Ayaneo Pocketace, Ayaneo Pocketdmg, Ayaneo Pocketevo, Ayaneo Pocketds, Ayaneo Pocketsmini, Ayaneo Pockets2k, Ayaneo Pockets1k, Retroidpocket Rp6, Retroidpocket Rp6 Top Dpad, Retroidpocket Rpnova | ROCKNIX-SM8550.aarch64-20261101.img.gz | documentation |
| Ayaneo Ps2, Konkr Pf | ROCKNIX-SM8650.aarch64-20261101.img.gz | documentation |
| Ayn Odin3, Konkr Pf Elite | ROCKNIX-SM8750.aarch64-20261101.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 Rg 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, Anbernic Rg Sp | ROCKNIX-H700.aarch64-20261101.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-20261101.tar |
| Anbernic Rg552 | ROCKNIX-RK3399.aarch64-20261101.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, Anbernic Rg Ds Plus | ROCKNIX-RK3566.aarch64-20261101.tar |
| Anbernic Rg Vita Pro | ROCKNIX-RK3576.aarch64-20261101.tar |
| Gameforce Ace, Retro Lite Cm5, Retroled Cm5 | ROCKNIX-RK3588.aarch64-20261101.tar |
| Odroid Go Ultra, Powkiddy Rgb10 Max 3 Pro | ROCKNIX-S922X.aarch64-20261101.tar |
| Sdm845 Ayn Odin M0, Sdm845 Ayn Odin M2 | ROCKNIX-SDM845.aarch64-20261101.tar |
| Anbernic Rg55g1, Retroid Pocket Classic, Retroid Pocket Classic Revq, Retroid Pocket Classic 6 Revq | ROCKNIX-SM4450.aarch64-20261101.tar |
| Mangmi Air X Mq66, Mangmi Air X Mq66b, Mangmi Air X Mq65, Mangmi Air Y, Retroid Pocket Duo Lite | ROCKNIX-SM6115.aarch64-20261101.tar |
| Retroidpocket Rp5, Retroidpocket Rp5 Visionox, Retroidpocket Flip2, Retroidpocket Flip2 Visionox, Retroidpocket Rpmini, Retroidpocket Rpminiv2, Ayn Thorlite, Mangmi Pocket Max, Mangmi Air Y Pro | ROCKNIX-SM8250.aarch64-20261101.tar |
| Ayn Odin2, Ayn Odin2portal, Ayn Odin2mini, Ayn Thor, Ayaneo Pocketace, Ayaneo Pocketdmg, Ayaneo Pocketevo, Ayaneo Pocketds, Ayaneo Pocketsmini, Ayaneo Pockets2k, Ayaneo Pockets1k, Retroidpocket Rp6, Retroidpocket Rp6 Top Dpad, Retroidpocket Rpnova | ROCKNIX-SM8550.aarch64-20261101.tar |
| Ayaneo Ps2, Konkr Pf | ROCKNIX-SM8650.aarch64-20261101.tar |
| Ayn Odin3, Konkr Pf Elite | ROCKNIX-SM8750.aarch64-20261101.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: 2026100...2026110
Changelog
🐧 Kernel & Boot
- kernel-firmware: S922X hwdec (@porschemad911) (827ab88)
- linux: kernel config (@github-merge-queue[bot]) (ee5afa2)
- mali-bifrost: patch workqueue type for 7.x compat (@beebono) (cd5d66e)
- linux: kernel config (@github-merge-queue[bot]) (df57946)
- openabl: bump version to v1.2 (@spycat88) (73ffb8e)
- linux: kernel config (@spycat88) (dcafa74)
- linux: S922X: MIPI DSI clock rate (@porschemad911) (5e126e8)
- linux: dts: RG 55G1: backlight brightness (@porschemad911) (532a211)
- openabl: bump to v1.1 (@sunshineinabox) (a5d0dd4)
- linux: kernel config (@github-merge-queue[bot]) (6fbefc4)
- linux: RK35x6/S922X: v7.2.11 (@porschemad911) (c803640)
- u-boot: S922X: limit eMMC to 26MHz (@porschemad911) (bc666d1)
- u-boot: S922X: u-boot v2026.10 (@porschemad911) (0deba47)
- u-boot: S922X: add PKG_SHA256 (@porschemad911) (eead218)
- linux: provide height preload for rotation (@sunshineinabox) (3efc06f)
- openabl: introduce package (@spycat88) (71d8932)
- linux: clk: qcom: blank DSI panels before dispcc parks boot clocks (@tiopex) (86d6ef9)
🎮 Emulators & Frontend
- yabasanshiro-sa: notify user of removing emulator (@sydarn) (b01bf7a)
- swanstation-lr: bump ancient core (@sydarn) (95d8482)
- ppsspp-sa: remove the guide and misc swap patch (@MagnominusGit) (3df0594)
- emulationstation: batteryplus calibration reset (@porschemad911) (a94a2e0)
- dsperate-sa: S922X: use 'renderer' sink (@porschemad911) (62da3f7)
- emulationstation: hide cursor setting (@porschemad911) (b011b51)
- dsperate-sa: bump to v3.0.5 (@beebono) (d91679a)
- armsx2-sa: add patch to fix Vulkan backend on mali (@beebono) (abcb61e)
- emulationstation: batteryplus service restart (@porschemad911) (4cc7300)
- heroic: upgrade to 2.22.4 (@trescenzi) (ace187c)
- dsperate-sa: bump to v3.0.4 (@beebono) (ac84438)
- emulationstation: bump package (@MagnominusGit) (482fe3c)
- melonds-sa: fix broken launch script (libmali) (@porschemad911) (2e85dcd)
- mame-lr: don't depend on retroarch (@sydarn) (aca36db)
🖥️ Graphics
- vulkan-wsi-layer: allocate RK3566 swapchains from the system heap (@sunshineinabox) (98a9f5c)
📦 Multimedia
- vlc: rebuild when FFmpeg changes (@ksokolowski) (ea7c146)
🔊 Audio
📱 Device Support
- rk3566: increase cma (@sydarn) (bc486ad)
- S922X: disable batteryplus (@porschemad911) (e1dc2f7)
- sm6115: dumped regs for a610 and fix increased bw requests (@sunshineinabox) (90cd581)
- sm4450: enable SD card UHS on the Anbernic RG 55G1 (@sunshineinabox) (394e94a)
- S922X: enable s2idle suspend (@porschemad911) (b48d63c)
- SM8650: enable NTSync on SM8650 (@Horcruxes) (9f876ec)
- rk3566: anbernic change F button to emit KeyF1 (@sydarn) (aa410c5)
- rk3576: afbc, panvk, inline with rk3566 (@sydarn) (a67cd08)
- rk3566: enable panvk (@sydarn) (e48ea0f)
- sm4450: rg55g1 follow panel for power (@sunshineinabox) (493c32f)
- sm4450: allow backlight off with suspend and user regulator (@sunshineinabox) (279479e)
- rk3566-inputplumber: fix inverted x35 Y axes (@beebono) (349bce4)
- S922X: libmali AFBC / GBM tweaks (@porschemad911) (e80b64f)
- S922X: linux: dts: odroid-go-ultra: read the time from the RK818 RTC (@porschemad911) (13764d8)
- rk3566-inputplumber: add device id tags to cap. maps (@beebono) (08363ca)
- rk3566-inputplumber: fix Powkiddy x-series (@sydarn) (3cb6bf4)
- rk3566: fix some inputplumber issues (@sydarn) (38cc9c7)
- SM8250: add RP5 and Flip 2 Visionox display refresh rate calibration (@MagnominusGit) (b766ccd)
- sm4450: fix touchscreen suspend on the Retroid Pocket Classic Rev Q (@MagnominusGit) (aeab317)
- s922x: remove 32bit yabadabadoo (@sydarn) (bb8d0aa)
- sm4450: enable SD card UHS on the Retroid Pocket Classic (@MagnominusGit) (c2c9606)
- sm4450: add second variant (@sunshineinabox) (2d88f11)
- sm8550: rotator: fix the AYN Thor bottom screen rotation (@MagnominusGit) (db9501d)
- SM8550: add AYN Thor display refresh rate calibration (@MagnominusGit) (56e5c48)
- sm4450: use digital triggers on the Retroid Pocket Classic (@MagnominusGit) (0dac255)
- sm4450: add Retroid Pocket Classic 6 Rev Q (@MagnominusGit) (8c8800d)
- RK3326: reduce CMA to 32 MB (@sunshineinabox) (0a65601)
- RK3566: reduce CMA to 32 MB (@sunshineinabox) (636c3f9)
- rk3566: RG DS: keep pad input in ES after touching the bottom screen (@cobanov) (f0a8eb7)
- rk3326: pass BSP DRAM settings (@sunshineinabox) (fac06b6)
- H700: Fix alsa-ucm-conf patch for upstream H616 files (@tiopex) (382c374)
- rk3566: port to inputplumber (@sydarn) (a1ea794)
- SM8550/SM8750: add RP6 and Odin 3 display refresh rate calibration (@MagnominusGit) (abfdcfb)
⚙️ CI & Workflows
🔧 System
- rocknix: runemu: fix misleading hide_cursor log (@porschemad911) (01c003c)
- rocknix: system.cfg: rocknix.sway.hide_cursor default (@porschemad911) (7673f8a)
- modules: escape the ampersand in touchHLE's gamelist entry (@ksokolowski) (d4e0d86)
- inputplumber: fix the path of the dropped upstream device configs (@sunshineinabox) (1dd0668)
- installtointernal: allow RG55G1 in SM4450 (@beebono) (2d3f874)
- inputplumber: drop some upstream qcom device yamls (@sydarn) (60d3768)
- inputplumber: bump to 0.82 (@sydarn) (3d20701)
- gamepadtester: move most devices to rocknix source (@sydarn) (ff9a687)
- inputplumber: build from source, support muxed adc (@sydarn) (40176d2)
- rocknix: set default wifi country (@spycat88) (cb4b9e8)
- rocknix-splash: bump package (@spycat88) (bac971f)
📚 Documentation
- documentation: SUPPORTED_EMULATORS_AND_CORES (@github-merge-queue[bot]) (6da2abf)
- documentation: SUPPORTED_EMULATORS_AND_CORES (@spycat88) (8cf29e1)
- documentation: SUPPORTED_EMULATORS_AND_CORES (@github-merge-queue[bot]) (727969b)
🔩 Other
- rgds-dts: fix rgdsplus outputting right stick (@beebono) (d688f0a)
- rgdsplus: update aw88166 patch (@beebono) (bfb567e)
- rgdsplus: patches to fix pll lock and other errors (@beebono) (0f9c604)
- PANVK: fix envvar rk3566/76 (@sydarn) (9f76176)
- SDM845: re-add the AYN Odin (@MagnominusGit) (3cb254b)
- yabadabadoo: bump package (@sydarn) (bae4b28)
- sway: hide_cursor fixes (@porschemad911) (1ec936c)
- devices: remove verbose comments (@MagnominusGit) (2af82cb)
- ppsspp: change menu button combo (@sydarn) (861c9ce)
- batteryplus: snap the visible percent on resume in PMIC mode (@porschemad911) (5b562ad)
- batteryplus: bump to v1.2.1 (@porschemad911) (5f2c7c5)
- sway: remove hide_cursor to fix gptokeyb (@porschemad911) (8f86472)
- Qualcomm: change from boot.img to Boot Loader Spec for booting (@spycat88) (cafbb16)
- Qualcomm: cleanup unused update case (@agvxov) (7842b3b)
- devices: cleanup HW_CPU variable (@agvxov) (471a271)
- mkimage: cleanup unused qualcomm uboot support (@agvxov) (05fc864)
- package: cleanup unused grub support (@agvxov) (e6da8da)
- rk356x: higher cpu opp to 6.12 voltage level (@sydarn) (1598dcb)
- aethersx2: drop package due to licensing concern (@sunshineinabox) (c4d3534)
- sway: fix gptokeyb input on the Retroid Pocket Duo Lite (@sunshineinabox) (3ebefb6)
- yabadabadoo: add new Saturn emulator for low end platforms (@sydarn) (8704add)
- RG55G1: fix touch mapping via inverted-x/y props (@beebono) (6211bb9)
- RG55G1: add ufs support via patch and dts (@beebono) (15558d3)
- dts/inputplumber: move vibrator to shared dtsi, enable it for rgdsplus (@beebono) (e901f3b)
- rgdplus: fix inputplumber (@sydarn) (fdecfa9)
↩️ Reverts
-
175 commits omitted
-
Full changelog: 2026100...2026110
