ARCH R

Funcionalidades

Especificações de hardware, pilha de software e o que vem pré-instalado

Hardware

SoC          Rockchip RK3326 (4× Cortex-A35, in-order dual-issue)
CPU          1416 MHz padrão · 1512 MHz com "Enable CPU Overclock"
GPU          Mali-G31 MP2 (Bifrost), fixada em 650 MHz durante o jogo
DRAM         1 GB DDR3L @ 924 MHz
Display      640×480 MIPI DSI, painel descrito por um overlay que você gera
Audio        Codec RK817: alto-falante, jack de fone, áudio USB
Network      WiFi RK915 por SDIO em algumas placas clone; nas outras, adaptador USB
             (família Realtek RTL81xx/88x2 ou o AIC8800, como no Tenda AX300)
Battery      3200 mAh (rk817-battery + rk817-charger), aviso por LED em bateria baixa
Storage      microSD (hot-swap suportado, imagem funciona em qualquer tamanho 8 GB+)

Pilha de software

Kernel       6.12 LTS, autodetecção de placa via SARADC
GPU driver   libmali (inicia por padrão) ou Mesa Panfrost (gpu.driver no system.cfg)
              ├─ Mesa com +speed +lto, otimizado para NEON
              └─ zlib-ng para inflate/deflate via SIMD
Init         systemd
Frontend     EmulationStation
Backend      RetroArch mais os emuladores standalone listados abaixo
Shell        bash + GNU coreutils (compatibilidade total com PortMaster)
Updates      pacman, acionado pelo comando archr-update

Versões no build atual: Linux 6.12.94, Mesa 26.1.3, systemd 255.8, U-Boot v2025.10, pacman 7.0.0, iwd 3.12.

CMA: 96 MB (aumentado de 64 MB depois que um audit identificou que as alocações de V4L2/Mali estavam apertadas mesmo em idle).

ZRAM: 512 MB lzo-rle (escolhido em vez de zstd porque o Cortex-A35 in-order roda lzo-rle 3–4× mais rápido).


Emuladores pré-instalados

SNES, NES, GB/GBC/GBA, NDS, MD, MS, GG, PCE, NeoGeo, Atari (2600/5200/7800/Lynx/Jaguar),
WonderSwan, PC-FX, ColecoVision, Intellivision, Vectrex, ScummVM, DOS

PSX           pcsx_rearmed (padrão), beetle_psx_hw, swanstation, duckstation (software)
N64           Mupen64Plus standalone (GLideN64 performance / Rice como fallback)
PSP           PPSSPP standalone (frameskip 3, cap de FPS em 30, GLTHREAD on)
Dreamcast     Flycast standalone (resolução 240, renderização threaded, GLTHREAD on)
Saturn        yabasanshiro standalone (experimental no A35)
Arcade        MAME 2003+, FBNeo, FBA-CPS1/CPS2/Neogeo
NDS           DraStic (padrão), melonDS como fallback

Não incluídos no RK3326: GameCube, Wii, Wii U. O Cortex-A35 não roda esses jogos em framerates aceitáveis, então eles ficam ocultos do menu.


Painéis de display

A imagem não traz nenhum overlay de painel. Todas as placas usam a mesma interface MIPI DSI de 640x480, mas com painéis diferentes, e a diferença está na sequência de init e nos timings, que só o device tree original do próprio console conhece.

Então você monta o overlay uma vez, a partir do .dtb do seu cartão original:

  • no navegador, em /overlay-generator
  • ou com o archr-dtbo-offline.zip, o mesmo gerador como script de terminal

O resultado se chama sempre mipi-panel.dtbo e vai sempre para overlays/ na partição de boot, porque esse é o único caminho que o extlinux.conf carrega:

FDTOVERLAYS /overlays/mipi-panel.dtbo

O ArchR Flasher pode copiar o arquivo enquanto grava o cartão, ou depois, pela aba Overlay.


Funcionalidades de rede

FuncionalidadeServiçoPadrão
WiFiiwd (wifictl, iwctl)auto-ligado se houver configuração
Cabo / Ethernet USBconnmanautomático
Áudio Bluetooth + gamepadbluezhabilitado
Multiplayer localRetroArch netplaydescoberta por UDP
Multiplayer remotoTailscale / ZeroTier / WireGuardopt-in pela UI
Sincronia de ROMs/savesSyncthingopt-in
Servidor websimple-http-serveropt-in
Samba (compartilhamento de arquivos)smbd + nmbd + wsddopt-in
SSHsshdopt-in (toggle no ES)

Quatro deles são pausados automaticamente enquanto um jogo roda, para não disputar CPU com o emulador: Syncthing, Tailscale, ZeroTier e o servidor HTTP simples. O runemu.sh para esses serviços quando o jogo começa e devolve tudo ao sair.

O connman é compilado com --disable-wifi --disable-iwd --disable-bluetooth, então cuida só de conexões com fio. Tudo que envolve WiFi passa pelo wifictl e pelo iwctl, nunca pelo connmanctl.


Linha do tempo do boot

0.0 s    Início do U-Boot
0.7 s    Splash do initramfs + seleção de DTB
~7 s     Hand-off do kernel
~9 s     Target do systemd
~12 s    archr-autostart (quirks + governor + display)
~17 s    EmulationStation
~19 s    Pronto para jogar

O primeiro boot adiciona uns 10 s para o resize de partição e cria os diretórios de ROM, somente no primeiríssimo power-on depois da gravação.


O que foi ajustado para o RK3326

Pontos altos do trabalho específico para RK3326 (lista completa em Técnico):

  • GPU OPP 650 MHz turbo a 1.150 V (mesma voltagem do 600 MHz, evitando os 1.175 V do BSP original que eram instáveis em alguns chips)
  • CPU OPP 1512 MHz a 1.400 V com vdd_arm regulator-max elevado para 1.45 V (o spec do RK817 DCDC_REG2 é 1.5 V máx)
  • Patch de PM no mali_kbase: elimina os warnings de desbalanceio de regulador/clock que estavam causando estalos de áudio no Mario 64
  • Partição BOOT mantida em 256 MB FAT32 com clusters de 16 KB, de propósito abaixo do mínimo de clusters do FAT32, porque é essa a geometria contra a qual os bootloaders dos fabricantes de RK3326 são testados
  • rq_affinity=2 na fila de I/O do microSD (a IRQ pousa no core que emitiu a requisição)
  • Scheduler BFQ com low_latency=1 e read_ahead_kb=2048

On this page