github archr-linux/Arch-R v1.0-beta2
Arch R v1.0 Beta 2

latest releases: v2.0-rc2, v2.0-rc1
one month ago

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-dsi driver built-in with archr,generic-dsi compatible

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 apply in 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 && sync

Supported 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

Don't miss a new Arch-R release

NewReleases is sending notifications on new releases.