Arch R v1.0 Beta 2
The biggest Arch R update yet. Kernel fully migrated to mainline, new board + overlay architecture, and the entire build pipeline rewritten from scratch.
Mainline Kernel 6.12.61 LTS
Moved from BSP kernel 6.6 (proprietary fork) to Linux 6.12.61 mainline LTS. Cross-compiles directly from x86 host — no more ARM chroot needed to build the kernel.
- 8 device patches (panel, input, wifi, USB, DTS)
- 7 Panfrost patches (performance counters, BO labelling)
- ntsync patch (future Wine/Proton support)
panel-generic-dsidriver built-in witharchr,generic-dsicompatible
Board + Overlay Architecture
Fundamental change in how hardware is detected:
- Board DTB = hardware profile (GPIOs, PMIC, joypad, audio). 16 boards supported. Auto-selected by U-Boot via ADC reading (SARADC ch0).
- Panel Overlay = display init sequence. 20 panels supported. Applied at boot via
fdt applyin boot.ini. - Two images: Original (R36S, OGA, OGS, RG351V/M, Chi, R33S, XU10) and Clone (K36, RGB20S, RGB10X, XU-Mini-M, R36Max, EE clone, G350).
- Same image works on all boards of a variant — only the panel overlay needs to match your display.
Initramfs Boot Splash
SVG splash rendered directly to framebuffer at ~0.7s after power-on, before systemd starts. Static aarch64 binary embedded in the kernel initramfs.
System Scripts
- Hotkeys: volume and brightness via gamepad (FN + D-pad)
- Automount: SD/USB auto-detection via udev
- Bluetooth agent: pairing without terminal
- Memory manager: OOM prevention
- Sleep/Suspend: deep sleep and freeze modes
- USB gadget: file transfer mode
- Save-config: settings persistence
- gptokeyb: gamepad-to-keyboard mapper via uinput
ES Tools (WIP)
Interactive scripts in EmulationStation's OPTIONS menu: System Info, WiFi, Bluetooth, Performance Mode, Sleep Mode, USB Mode, Factory Reset. Uses fbcon + gptokeyb for gamepad navigation. Still being tested.
Build Pipeline
Full build rewritten with cross-compilation:
build-all.sh
├── build-initramfs.sh # Boot splash SVG
├── build-kernel.sh # Kernel 6.12.61 cross-compile (~10 min)
├── build-rootfs.sh # Arch Linux ARM chroot (~45 min)
├── build-mesa.sh # Mesa 26 Panfrost
├── build-emulationstation.sh # ES-fcamod
├── build-retroarch.sh # RetroArch + cores
├── generate-panel-dtbos.sh # 20 panel overlays
├── build-uboot.sh # BSP U-Boot (original)
├── build-uboot-clone.sh # Mainline U-Boot (clone)
└── build-image.sh # SD card image (×2 variants)
Panel Selection
Use the Arch R Flasher (v1.0.0) to flash and select your panel automatically. Or manually:
# Mount BOOT partition
sudo mount /dev/sdX1 /mnt
# Copy your panel overlay (example: Panel 4 V22, the most common)
sudo cp /mnt/overlays/panel4-v22.dtbo /mnt/overlays/mipi-panel.dtbo
sudo umount /mnt && syncSupported Boards
| Board | DTB | Image |
|---|---|---|
| R36S (original) | rk3326-gameconsole-r36s | Original |
| Odroid Go Advance | rk3326-odroid-go2 | Original |
| Odroid Go Advance v1.1 | rk3326-odroid-go2-v11 | Original |
| Odroid Go Super | rk3326-odroid-go3 | Original |
| Anbernic RG351V | rk3326-anbernic-rg351v | Original |
| Anbernic RG351M | rk3326-anbernic-rg351m | Original |
| GameForce Chi | rk3326-gameforce-chi | Original |
| R33S | rk3326-gameconsole-r33s | Original |
| MagicX XU10 | rk3326-magicx-xu10 | Original |
| K36 / R36S clone | rk3326-gameconsole-r36max | Clone |
| EE clone | rk3326-gameconsole-eeclone | Clone |
| Powkiddy RGB10 | rk3326-powkiddy-rgb10 | Clone |
| Powkiddy RGB10X | rk3326-powkiddy-rgb10x | Clone |
| Powkiddy RGB20S | rk3326-powkiddy-rgb20s | Clone |
| MagicX XU-Mini-M | rk3326-magicx-xu-mini-m | Clone |
| BatLexp G350 | rk3326-batlexp-g350 | Clone |
Full changelog: v1.0-beta1.3...v1.0-beta2