mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-07-12 18:19:42 -07:00
readme: reposition the project as an Arch Linux distribution
Arch R stopped being a ROCKNIX fork a long time ago: the OS is Arch Linux ARM with pacman and the built-in updater (SteamOS-like model), and only the image build tooling descends from the LibreELEC family through JELOS/ROCKNIX. Refresh the outdated claims along the way: the GPU stack ships libmali (Panfrost is not exposed), images are gzip not xz, the board table now matches config.xml, DDR trains at 666MHz, and the update, sleep and power LED features from 2.1 are documented.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<strong>Arch Linux-based gaming distribution for handheld devices.</strong>
|
||||
<strong>Arch Linux gaming distribution for handheld devices.</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -14,17 +14,22 @@
|
||||
|
||||
---
|
||||
|
||||
Arch R is a custom Linux distribution for the **R36S** handheld gaming console and all its variants, built on top of [ROCKNIX](https://github.com/ROCKNIX/distribution) with an **Arch Linux-based** build environment. It supports **16 board profiles** and **20 display panels** across original and clone hardware.
|
||||
Arch R is an **Arch Linux** distribution for the **R36S** handheld gaming console and its many variants. In the same spirit as SteamOS, it pairs a genuine Arch userland (pacman, systemd, up-to-date packages) with a curated console experience: flash it, turn the device on, play. System updates are delivered through the built-in updater, kernel included; reflashing is only needed for a fresh install or recovery.
|
||||
|
||||
The image build pipeline descends from the LibreELEC family of embedded build systems (through JELOS and ROCKNIX), but the operating system it assembles is Arch Linux ARM, not a JELOS derivative.
|
||||
|
||||
## Features
|
||||
|
||||
- Arch Linux-based build system with Docker support.
|
||||
- Kernel 6.12 LTS with board auto-detection via SARADC.
|
||||
- Mesa Panfrost open-source GPU driver (GLES 3.1, no proprietary blobs).
|
||||
- EmulationStation frontend with RetroArch and 18+ cores pre-installed.
|
||||
- Full audio support with speaker/headphone auto-switch.
|
||||
- Battery monitoring with capacity reporting and LED warning.
|
||||
- MIPI panel overlays for every known motherboard revision, generated on demand by the online overlay generator at https://arch-r.io/overlay-generator/ (or during flashing by the Arch R Flasher).
|
||||
- Genuine Arch Linux ARM base with pacman and signed package repositories (stable, next and dev channels).
|
||||
- Built-in system updater in EmulationStation; kernel and device trees update through it too, with checksum-verified writes to the boot partition.
|
||||
- Mainline kernel 6.12 LTS with board auto-detection via SARADC.
|
||||
- Memory clock trained at 666MHz from boot (twice the BSP-era default) and tuned Mali-G31 graphics.
|
||||
- EmulationStation frontend with RetroArch and 18+ cores pre-installed, plus PortMaster.
|
||||
- Full audio support with speaker/headphone auto-switch across board revisions.
|
||||
- Power button light sleep: screen and backlight fully off, instant wake.
|
||||
- Power LED control (on, off, heartbeat) on every supported family.
|
||||
- USB WiFi dongle support, including the common RTL8188EUS family (TP-Link, Edimax).
|
||||
- MIPI panel overlays for every known motherboard revision, generated on demand by the online overlay generator at https://arch-r.io/overlay-generator/ (or during flashing by the Arch R Flasher). The generator also extracts board-specific wiring (audio amplifier, jack detect, LEDs, PMIC interrupt) from your stock DTB.
|
||||
- Separate images for original and clone boards, both with hardware auto-detection.
|
||||
- Integrated cross-device local and remote network play.
|
||||
- Fine-grained control for battery life and performance.
|
||||
@@ -40,13 +45,12 @@ Arch R is a custom Linux distribution for the **R36S** handheld gaming console a
|
||||
|
||||
| Board | Image |
|
||||
|-------|-------|
|
||||
| R36S (original), R33S | Original |
|
||||
| R36S (original), R33S, R36S Soysauce | Original |
|
||||
| Odroid Go Advance / v1.1 / Super | Original |
|
||||
| Anbernic RG351V / RG351M | Original |
|
||||
| GameForce Chi, MagicX XU10 | Original |
|
||||
| K36 / R36S clones / EE Clone | Clone |
|
||||
| Powkiddy RGB10 / RGB10X / RGB20S | Clone |
|
||||
| MagicX XU-Mini-M, BatLexp G350 | Clone |
|
||||
| GameForce Chi, MagicX XU10, Powkiddy RGB10 | Original |
|
||||
| K36 / R36S V20 clones / EE Clone | Clone |
|
||||
| Powkiddy RGB10X, MagicX XU-Mini-M | Clone |
|
||||
|
||||
### Display Panels
|
||||
|
||||
@@ -59,15 +63,22 @@ Download the latest images from [Releases](https://github.com/archr-linux/Arch-R
|
||||
- **Original image** -- for genuine R36S and compatible boards.
|
||||
- **Clone image** -- for K36 clones and compatible boards.
|
||||
|
||||
Flash to a MicroSD card:
|
||||
The easiest path is the [Arch R Flasher](https://github.com/archr-linux/archr-flasher), which downloads, verifies, flashes and installs your panel overlay in one go. Manual flashing works too:
|
||||
|
||||
```bash
|
||||
xz -d ArchR-R36S-*.img.xz
|
||||
gzip -d ArchR-R36S-*.img.gz
|
||||
sudo dd if=ArchR-R36S-*.img of=/dev/sdX bs=4M status=progress
|
||||
sync
|
||||
```
|
||||
|
||||
Insert the SD card and power on. The correct board DTB is selected automatically.
|
||||
Always verify the download against the published `SHA256SUMS` before flashing. Insert the SD card and power on; the correct board DTB is selected automatically.
|
||||
|
||||
## Updates
|
||||
|
||||
- **In place (default after install)**: EmulationStation > Updates, or `archr-update` over SSH. Updates come from the signed pacman repository; after each transaction the boot partition is synchronized automatically, so kernel and device-tree fixes arrive without reflashing. User overlays and configuration are never touched.
|
||||
- **Reflash**: for fresh installs, recovery, or the rare low-level bootloader change (TPL/U-Boot, e.g. a DDR frequency change), which lives outside the filesystem.
|
||||
|
||||
Release channel is configurable (stable, next, dev) under updates settings.
|
||||
|
||||
## Building from Source
|
||||
|
||||
@@ -90,7 +101,7 @@ make docker-image-build
|
||||
make docker-RK3326
|
||||
```
|
||||
|
||||
Output images are generated in `target/`.
|
||||
Output images are generated in `target/`. Add `OFFICIAL=yes` for release-stamped images.
|
||||
|
||||
### Build Commands
|
||||
|
||||
@@ -105,23 +116,23 @@ Output images are generated in `target/`.
|
||||
|
||||
Arch R separates **board configuration** from **panel configuration**:
|
||||
|
||||
- **Board DTB** = hardware profile (GPIOs, PMIC, joypad, audio codec). Selected automatically by U-Boot via SARADC.
|
||||
- **Panel overlay** = display init sequence and timings. Applied on top of the board DTB at boot time.
|
||||
- **Board DTB** = hardware profile (GPIOs, PMIC, joypad, audio codec). Selected automatically by U-Boot via SARADC. One generic DTB per hardware family; board-revision differences are carried by the overlay.
|
||||
- **Panel overlay** = display init sequence, timings and board-specific wiring extracted from the stock DTB. Applied on top of the board DTB at boot time.
|
||||
|
||||
This means the same image works on all boards of a variant. Only the panel overlay needs to match the specific display.
|
||||
This means the same image works on all boards of a variant. Only the overlay needs to match the specific device.
|
||||
|
||||
### Boot Flow
|
||||
|
||||
```
|
||||
Power On
|
||||
U-Boot (BSP or mainline)
|
||||
boot.scr: read SARADC hwrev, select board DTB
|
||||
U-Boot (mainline, legacy BSP loader for clone boards)
|
||||
boot script: read SARADC hwrev, select board DTB
|
||||
sysboot: load kernel + DTB + overlay from extlinux.conf
|
||||
Kernel 6.12 + initramfs
|
||||
mount root (ext4) + storage
|
||||
mount root (ext4) + storage, resolved by partition label
|
||||
switch_root to systemd
|
||||
systemd
|
||||
archr-autostart (quirks, governors, audio)
|
||||
archr-autostart (quirks by device-tree model, governors, audio)
|
||||
EmulationStation
|
||||
```
|
||||
|
||||
@@ -130,7 +141,7 @@ Power On
|
||||
| Partition | Filesystem | Label | Purpose |
|
||||
|-----------|-----------|-------|---------|
|
||||
| 1 | FAT32 | ARCHR | Boot (kernel, DTBs, overlays, boot.scr) |
|
||||
| 2 | ext4 | ARCHR_ROOT | Root filesystem |
|
||||
| 2 | ext4 | ARCHR_ROOT | Root filesystem (Arch Linux ARM) |
|
||||
| 3 | ext4 | STORAGE | User data, ROMs, configs |
|
||||
|
||||
## Community
|
||||
@@ -139,7 +150,7 @@ Contributions are welcome. Please open issues or pull requests on [GitHub](https
|
||||
|
||||
## Licenses
|
||||
|
||||
**Arch R** is a fork of [ROCKNIX](https://github.com/ROCKNIX/distribution), which is a fork of [JELOS](https://github.com/JustEnoughLinuxOS/distribution/). All upstream licenses apply.
|
||||
The Arch R operating system is Arch Linux ARM plus original Arch R software. The image build tooling in this repository descends from [ROCKNIX](https://github.com/ROCKNIX/distribution) and [JELOS](https://github.com/JustEnoughLinuxOS/distribution/); the licenses of that inherited tooling continue to apply to the portions derived from it.
|
||||
|
||||
You are free to:
|
||||
|
||||
@@ -168,12 +179,12 @@ Like any Linux distribution, this project is not the work of one person. It is t
|
||||
|
||||
Special thanks to:
|
||||
|
||||
- **[ROCKNIX](https://github.com/ROCKNIX/distribution)** -- the upstream distribution that Arch R is forked from. ROCKNIX provided the complete build system, device support, EmulationStation integration, and the foundation for handheld gaming on Linux.
|
||||
- **[JELOS](https://github.com/JustEnoughLinuxOS/distribution/)** -- the project that ROCKNIX was originally forked from.
|
||||
- **[CoreELEC](https://coreelec.org/)** and **[LibreELEC](https://libreelec.tv/)** -- the embedded Linux distributions whose build system forms the backbone of this project.
|
||||
- **[Arch Linux](https://archlinux.org/)** and **[Arch Linux ARM](https://archlinuxarm.org/)** -- the operating system Arch R is built on.
|
||||
- **[ROCKNIX](https://github.com/ROCKNIX/distribution)** and **[JELOS](https://github.com/JustEnoughLinuxOS/distribution/)** -- the projects whose build tooling and RK3326 device knowledge Arch R inherited and still learns from.
|
||||
- **[CoreELEC](https://coreelec.org/)** and **[LibreELEC](https://libreelec.tv/)** -- the embedded Linux distributions whose build system forms the backbone of the image pipeline.
|
||||
- **[Hardkernel](https://www.hardkernel.com/)** -- for the Odroid Go Advance BSP U-Boot and kernel device trees.
|
||||
- **[Rockchip](https://www.rock-chips.com/)** -- for the RK3326 SoC and rkbin firmware.
|
||||
- **[Mesa](https://mesa3d.org/)** -- for the Panfrost open-source GPU driver.
|
||||
- **[Rockchip](https://www.rock-chips.com/)** -- for the RK3326 SoC, rkbin firmware and the libmali GPU driver.
|
||||
- **[Mesa](https://mesa3d.org/)** -- for the open-source graphics stack.
|
||||
- **[RetroArch](https://www.retroarch.com/)** and **[Libretro](https://www.libretro.com/)** -- for the emulation framework and cores.
|
||||
- **[EmulationStation](https://emulationstation.org/)** -- for the frontend.
|
||||
- All developers and contributors across the open-source community who made this possible.
|
||||
|
||||
Reference in New Issue
Block a user