Skip to content

Arch R v2.0

Latest

Choose a tag to compare

@dgateles dgateles released this 30 Jun 18:51

ArchR Linux 2.0

ArchR Linux 2.0: Release Notes

Open-source Linux distribution for the R36S and RK3326-based clones.
Kernel 6.12 LTS, Mesa 26 Panfrost, CPU 1.4 GHz default (optional 1.5 GHz overclock), 43 supported panels.

Highlights

  • Pacman as a real update mechanism: future updates become pacman -Syu instead of reflashing the SD card, with signed repositories and the ArchR master key embedded in archr-keyring.
  • Audio fixed across all three families: R36S Original, R36S Clone (V20/V21/V22, GR36, G80C/D) and Y3506 Soysauce (V03/V04/V05).
  • WiFi finally reliable: passwords with special characters ($%#@&!*()-_=+ç etc.) connect; a new out-of-tree RTL8188EUS driver fixes the authentication failure on the TP-Link/RTL8188EUS chip. WiFi also reconnects to the saved network automatically at boot.
  • Two inserted SD cards no longer break boot: boot.ini uses LABEL= instead of /dev/mmcblk${devnum}p1, eliminating the mismatch between the U-Boot devnum and the kernel mmcblk enumeration.
  • Overlay generation moves out of the OS build and into the online generator: https://arch-r.io/overlay-generator/. The /flash/overlays/ folder now carries only a multilingual README.txt explaining how to generate the mipi-panel.dtbo on the site.
  • USB WiFi dongle works on the Soysauce and clones: the overlay generator now translates the vbus power supply of the OTG port from the stock DTB (the vcc_host+GPIO regulator in the R36S style, or the rk817 PMIC OTG_SWITCH on the Soysauce), tied as the vbus-supply of &usb20_otg. The 6.12 dwc2 enables the regulator on demand when entering host mode (USB set to "disabled"), with no coil whine.
  • PortMaster/CFW compatibility layer: the Debian 11/darkOS SONAMEs that ports expect (libjpeg.so.62, libcodec2.so.0.9, libx264.so.160, libx265.so.192, libtheoradec.so.1) now resolve, and sudo, vmstat and perf (with perf_event_paranoid=1) are present per the official guide.

By category

Pacman as a real update client

  • gen-pacman-repo fixed for the pacman 7 layout (signing only the db, not per package).
  • repo-stable and repo-dev repositories on GitHub Releases.
  • archr-keyring carries the ArchR production public master key.
  • pacman installed with /var/lib/pacman as a symlink (compatible with read-only squashfs + /storage overlay).
  • /usr/sbin/bash shebangs rewritten to /usr/bin/bash (issue #36).
  • GnuPG bumped to 2.4.8 with updated libksba/npth/pinentry.

Bootloader and partitioning

  • clone_boot.ini and original_boot.ini now use root=LABEL=@DISTRO_BOOTLABEL@ instead of /dev/mmcblk${devnum}p1. Inserting a second SD card in any order no longer breaks boot (issue #34).
  • The busybox init resolves LABEL=/UUID= via util-linux blkid scanning /proc/partitions (with a mknod fallback), because busybox volume_id does not read FAT32 labels (symptom: "Unable to find LABEL=ARCHR, powering off"). mount/umount/findfs are symlinked to busybox and PATH is exported at the top of init.
  • R36S Clone DTS (eeclone) aligned with the clean config of the other variants: &emmc disabled (the board has no eMMC chip; the controller kept recycling init for an absent card: "Timeout sending command" / "Failed to initialize a non-removable card") and &uart5 (console ttyS2) muxed with only uart5_xfer (the uart5_cts on gpio3 RK_PA3 conflicted and the kernel reverted the whole group).
  • The FAT partition keeps BOOT_SIZE=256, mkfs.vfat -s 32, fsck.fat -n. Cosmetic dosfsck warnings are deliberately ignored (they previously caused a boot loop when "fixed").

Base system, systemd and FHS

  • New tmpfiles.d/z_02_archr-fhs-bridges.conf creates /var → /storage bridges via systemd-tmpfiles, eliminating refs inherited from ROCKNIX/JELOS.
  • 001-functions and archr-automount revised: inherited refs pointing to Batocera/JELOS paths were corrected.
  • systemd units fixed: zero warnings in systemd-analyze.
  • Symlink renamed: rocknix-report-stats.timer now points to archr-report-stats.timer.

Network drivers

  • RTL8188EUS (aircrack-ng/rtl8188eus): new out-of-tree package at projects/ArchR/packages/linux-drivers/RTL8188EUS/ to fix the WiFi authentication failure on RTL8188EUS adapters when the upstream rtl8xxxu driver does not complete the handshake (issue #19).
  • wifictl gained:
    • encode_iwd_name(): encodes non-alphanumeric chars as =XX in the profile name, the standard iwd requires.
    • WPA-PSK validation (8-63 printable bytes or 64 hex).
    • umask 077 before writing profiles (no key leak to other users).
    • Cleanup of old profiles before creating a new one (no profile leak).
  • Auto-reconnect at boot: when WiFi is enabled, the saved network is reconnected automatically at boot. Previously a unit rebooted with WiFi on came back with the toggle showing active but no connection, until the user toggled it off and on.

Security

  • setrootpass: replaces the SHA-256 fingerprint file with sha512crypt salt comparison, reusing the existing entry in /storage/.cache/shadow. No new sensitive artifact on disk.
  • WiFi profile permissions with umask 077.

Audio

  • A new SDCLONE flag in the web generator forces the rk817-sound-amplified fallback when the clone DTB does not expose the amplifier GPIO. Fixes the "no soundcards" result in aplay -l on R36S Clone V20/V21/V22, GR36, G80C/D (issue #35).
  • Y3506 Soysauce (V03/V04/V05) loudspeaker is on the analog headphone output (HPOL/HPOR) behind an external amplifier gated by the rk817 codec's spk-ctl-gpios. A new kernel patch adds rk817 use_ext_amplifier support: it routes the speaker mux through the headphone DACs and toggles spk-ctl-gpios via a DAPM event. The web overlay generator now keeps the base rk817-sound card enabled for the Soysauce (the NAm flag means "keep the base card"). It no longer swaps to rk817-sound-spko-direct, which on the Soysauce base produced an empty card and a silent speaker (issue #29).

Controls / joypad (Soysauce / Y3506)

  • es_input.cfg now ships a GO-Super Gamepad entry so both analog sticks navigate the EmulationStation menu (mapped as leftanalog/rightanalog). This fixes the previous behavior where the right stick changed the volume and the left stick did nothing (the auto-generated entry mapped them as joystick1/joystick2, and joystick2 is hardcoded to volume in ES).
  • The RetroArch GO-Super Gamepad autoconfig button layout was corrected (select, start and D-pad indices were on the RGB20S layout; now on the R36S layout). This fixes in-game Start, Select and the exit-game hotkey combo.
  • Analog stick sensitivity tuned for the Y3506 potentiometers (the sticks only reached about 76 percent of range; the gain was raised so full deflection saturates the axis and menu navigation is responsive).

PortMaster / CFW: compatibility layer

  • Per-SONAME compat libs: ports built against Debian 11/darkOS expect SONAMEs that ArchR does not ship by default. New packages compat-codec2 (libcodec2.so.0.9), compat-x264 (libx264.so.160), compat-x265 (libx265.so.192) and compat-libjpeg62 (libjpeg.so.62, IJG v6b ABI via libjpeg-turbo with WITH_JPEG8=OFF) install into /usr/lib/compat.
  • archr-compat-libs.service: since ArchR has no ld.so.cache, the service symlinks the *.so* from /usr/lib/compat to the linker's default path at boot, resolving the missing libtheoradec.so.1 for LÖVE runtimes (46 SONAMEs linked, without shadowing libogg).
  • sudo shim: the guide lists sudo/doas as required; ArchR is single-user root, so the shim strips the sudo options and runs the command directly (the ROCKNIX/dArkOS pattern).
  • vmstat added to procps-ng, and perf enabled for profiling with kernel.perf_event_paranoid = 1 (userspace CPU sampling without full root context).
  • ltrace is the only nice-to-have item from the guide intentionally absent: the maintained fork fails autoreconf on the ArchR toolchain; ports use gdb or perf trace.

EmulationStation: System Information and quirks

  • The archr-info quirks chain fixed: the word-splitting bug on "Game Console R36S" (with spaces) broke for QDIR in ${QUIRK_DIRS}. Replaced with a bash array.
  • Temperature in System Information on Clone and Soysauce: the quirks loader matches the quirks/devices/<name> folder against the exact model string, and folders for "R36S Clone" and "Game Console R36S Soysauce" were missing, so DEVICE_TEMP_SENSOR was empty and only the Original showed temperature. Added folders with the thermal_zone0 (CPU) and thermal_zone1 (GPU) sensors. The DTBs/tsadc of the three variants are identical and worked: the gap was only per-device config in userspace.
  • Mesa version, Arch and full kernel string appear in System Information.
  • archr-config: Batocera paths replaced with the ArchR equivalents in the audio output selection command.
  • ES fork: getArchString() reads HW_DEVICE from the env, scripts are also searched in /run/emulationstation/scripts, locale .mo loaded from /usr/config/locale.

Performance and CPU

  • CPU default is 1.4 GHz; the 1.5 GHz turbo OPP is opt-in via the EmulationStation "Enable CPU Overclock" switch (off by default to favor thermals and battery; gameplay still uses the performance governor).
  • Inherited JELOS bugs in the boot path fixed.
  • Cleanups in Emulators and PortMaster scripts (broken links, divergent paths).

Strategy: overlay generator leaves the OS build

  • config/mipi-generator/ (generator.sh + archr-dtbo.py) and config/archr-dts/ (23 DTSes and ~120 vendor DTBs) removed from the tree. Net: -8,503 LOC + ~120 binaries.
  • u-boot/package.mk no longer calls generator.sh; no longer installs overlays_{original,clone,soysauce}/.
  • bootloader/mkimage simplified: the RK3326 branch dropped the per-SUBDEVICE copy.
  • The /flash/overlays/ folder now carries only a multilingual README.txt (pt-BR, en, fr, es, zh, ru) explaining: "Generate your mipi-panel.dtbo at https://arch-r.io/overlay-generator/ and paste it here."
  • The online generator now compares the user's DTB with the corresponding ArchR base DTB (anti-gap mirror), surgically mirroring each diverging property. In real tests with an R36S Clone, this closed 10 additional gaps (button-adc-scale, poll-interval, 8 stick tunings) that were previously lost.
  • USB port vbus translation (mirror_vbus): the generator translates the whole OTG port power subtree from the stock DTB into the overlay (regulator, vin-supply chain and pinctrl group), anchoring by name on the labels the base exposes (usb20_otg, rk817, u2phy, gpio*, pinctrl, pcfg_*). For the Soysauce, it instantiates the rk817 OTG_SWITCH on demand (never always-on: it is a boost and would whine with no load). Validated on hardware: an external WiFi dongle enumerates with USB in host mode. Fixed in passing a bug that dropped boolean properties (regulator-always-on, enable-active-high).

Closed issues

# Title Resolution
#19 RTL8188EUS WiFi auth fail Out-of-tree driver aircrack-ng/rtl8188eus.
#29 Soysauce no audio rk817 use_ext_amplifier kernel patch drives the external amp via spk-ctl-gpios; generator keeps the base rk817-sound card.
#31 Clone boot fail (two SDs) Boot.ini uses LABEL= instead of /dev/mmcblkN.
#34 Two SD cards prevent boot Same fix as #31.
#35 R36S Clone V20 no audio SDCLONE flag forces the amplified fallback in the generator.
#36 Pacman /usr/sbin conflict Shebangs rewritten to /usr/bin/bash.

Breaking changes (heads up)

  • 2.0 images no longer embed panel overlays. Users of boards where the bootloader default overlay does not work need to generate the mipi-panel.dtbo in the online generator before flashing (or at flash time, via the 2.0 flasher).
  • /flash/overlays/ before flashing contains only README.txt. Manual replacements must use an overlay produced by the generator.

How to build

cd /media/disco-local/ArchR/distribution
make docker-RK3326

A native build (make RK3326) fails on hosts where checkdeps does not pass (CachyOS is the known case). The docker build is the supported path.

The original image accepts original R36S boards, R33S, Odroid Go variants, Anbernic RG351V/M, GameForce Chi, MagicX XU10 and Y3506 Soysauce. The clone image covers EE clones, RGB10/10X/20S, MagicX XU-Mini-M and BatLexp G350.


Credits

ArchR is built on the ROCKNIX base, with a build environment derived from LibreELEC. Thanks to the R36S community for reporting bugs across the 44 distinct boards that were instrumental in closing the audio, panel and joypad gaps in this release.


ArchR Linux 2.0: Notas da Versão

Distribuição Linux open-source para o R36S e clones baseados em RK3326.
Kernel 6.12 LTS, Mesa 26 Panfrost, CPU 1.4 GHz por padrão (overclock opcional de 1.5 GHz), 43 painéis suportados.

Destaques

  • Pacman como mecanismo de atualização real: atualizações futuras viram pacman -Syu em vez de reflash do cartão SD, com repositórios assinados e chave-mestra ArchR embarcada no archr-keyring.
  • Áudio resolvido nas três famílias: R36S Original, R36S Clone (V20/V21/V22, GR36, G80C/D) e Y3506 Soysauce (V03/V04/V05).
  • WiFi finalmente confiável: senhas com caracteres especiais ($%#@&!*()-_=+ç etc.) conectam; novo driver out-of-tree RTL8188EUS resolve a falha de autenticação no chip TP-Link/RTL8188EUS. O WiFi também reconecta à rede salva automaticamente no boot.
  • Dois cartões SD inseridos não derrubam mais o boot: boot.ini usa LABEL= em vez de /dev/mmcblk${devnum}p1, eliminando o mismatch entre devnum do U-Boot e a enumeração mmcblk do kernel.
  • Geração de overlay sai do build do SO e migra para o gerador on-line: https://arch-r.io/overlay-generator/. A pasta /flash/overlays/ agora carrega apenas um README.txt multilíngue explicando como gerar o mipi-panel.dtbo no site.
  • Dongle USB WiFi funciona no Soysauce e clones: o gerador de overlay passou a traduzir a alimentação vbus da porta OTG do DTB stock (regulador vcc_host+GPIO no estilo R36S, ou OTG_SWITCH do PMIC rk817 no Soysauce), amarrada como vbus-supply do &usb20_otg. O dwc2 do 6.12 liga o regulador sob demanda ao entrar em host mode (USB em "disabled"), sem coil whine.
  • Camada de compatibilidade PortMaster/CFW: SONAMEs Debian 11/darkOS que portes esperam (libjpeg.so.62, libcodec2.so.0.9, libx264.so.160, libx265.so.192, libtheoradec.so.1) agora resolvem, e sudo, vmstat e perf (com perf_event_paranoid=1) estão presentes conforme o guia oficial.

Por categoria

Pacman como cliente de atualização real

  • gen-pacman-repo corrigido para layout pacman 7 (assinatura só do db, não por pacote).
  • Repositórios repo-stable e repo-dev no GitHub Releases.
  • archr-keyring carrega a chave-mestra pública de produção do ArchR.
  • pacman instalado com /var/lib/pacman como symlink (compatível com squashfs RO + overlay /storage).
  • Shebangs /usr/sbin/bash reescritos para /usr/bin/bash (issue #36).
  • GnuPG bumped para 2.4.8 com libksba/npth/pinentry atualizados.

Bootloader e particionamento

  • clone_boot.ini e original_boot.ini agora usam root=LABEL=@DISTRO_BOOTLABEL@ em vez de /dev/mmcblk${devnum}p1. Inserir um segundo cartão SD em qualquer ordem não derruba o boot (issue #34).
  • Init do busybox resolve LABEL=/UUID= via blkid do util-linux varrendo /proc/partitions (com mknod de fallback), porque o volume_id do busybox não lê labels de FAT32 (sintoma: "Unable to find LABEL=ARCHR, powering off"). mount/umount/findfs symlinkados pro busybox e PATH exportado no topo do init.
  • DTS do R36S Clone (eeclone) alinhado com o config limpo das outras variantes: &emmc desabilitado (a placa não tem chip eMMC, o controlador reciclava init de cartão ausente: "Timeout sending command" / "Failed to initialize a non-removable card") e &uart5 (console ttyS2) muxado só com uart5_xfer (o uart5_cts em gpio3 RK_PA3 conflitava e o kernel revertia o grupo inteiro).
  • Partição FAT mantém BOOT_SIZE=256, mkfs.vfat -s 32, fsck.fat -n. Warnings cosméticos do dosfsck são propositadamente ignorados (já causaram boot loop quando "consertados").

Sistema base, systemd e FHS

  • Novo tmpfiles.d/z_02_archr-fhs-bridges.conf cria pontes /var → /storage via systemd-tmpfiles, eliminando refs herdadas do ROCKNIX/JELOS.
  • 001-functions e archr-automount revisados: refs herdadas que apontavam para paths Batocera/JELOS foram corrigidas.
  • Unidades systemd corrigidas: zero warnings em systemd-analyze.
  • Symlink renomeado: rocknix-report-stats.timer agora aponta para archr-report-stats.timer.

Drivers de rede

  • RTL8188EUS (aircrack-ng/rtl8188eus): novo pacote out-of-tree em projects/ArchR/packages/linux-drivers/RTL8188EUS/ para resolver a falha de autenticação WiFi em adaptadores RTL8188EUS quando o driver rtl8xxxu upstream não completa o handshake (issue #19).
  • wifictl ganhou:
    • encode_iwd_name(): codifica chars não-alfanuméricos como =XX no nome do profile, padrão exigido pelo iwd.
    • Validação WPA-PSK (8-63 bytes printable ou 64 hex).
    • umask 077 antes de gravar profiles (não vaza chave para outros usuários).
    • Limpeza de profiles antigos antes de criar novo (sem profile leak).
  • Reconexão automática no boot: quando o WiFi está habilitado, a rede salva é reconectada automaticamente no boot. Antes, uma unidade reiniciada com o WiFi ligado voltava com o toggle marcando ativo mas sem conexão, até o usuário desligar e religar.

Segurança

  • setrootpass: substitui o arquivo de fingerprint SHA-256 por comparação de salt do sha512crypt, reaproveitando a entrada existente em /storage/.cache/shadow. Nenhum artefato sensível novo no disco.
  • Permissões de profile WiFi com umask 077.

Áudio

  • Novo flag SDCLONE no gerador web força fallback rk817-sound-amplified quando o DTB do clone não expõe o GPIO do amplificador. Resolve a tela "no soundcards" no aplay -l em R36S Clone V20/V21/V22, GR36, G80C/D (issue #35).
  • Y3506 Soysauce (V03/V04/V05): o alto-falante está na saída analógica de fone (HPOL/HPOR) atrás de um amplificador externo controlado pelo spk-ctl-gpios do codec rk817. Um novo patch de kernel adiciona suporte ao use_ext_amplifier do rk817: ele roteia o mux do speaker pelos DACs de fone e aciona o spk-ctl-gpios via um evento DAPM. O gerador web de overlay agora mantém o card base rk817-sound habilitado para o Soysauce (a flag NAm significa "mantenha o card base"). Ele não troca mais para rk817-sound-spko-direct, que na base do Soysauce produzia um card vazio e alto-falante mudo (issue #29).

Controles / joypad (Soysauce / Y3506)

  • es_input.cfg agora traz uma entrada GO-Super Gamepad para que ambos os analógicos naveguem o menu do EmulationStation (mapeados como leftanalog/rightanalog). Isso corrige o comportamento anterior em que o analógico direito mudava o volume e o esquerdo não fazia nada (a entrada gerada automaticamente os mapeava como joystick1/joystick2, e o joystick2 é fixado ao volume no ES).
  • O layout de botões do autoconfig GO-Super Gamepad do RetroArch foi corrigido (os índices de select, start e do D-pad estavam no layout RGB20S; agora estão no layout R36S). Isso corrige o Start e o Select no jogo e o combo de hotkey para sair do jogo.
  • Sensibilidade dos analógicos ajustada para os potenciômetros do Y3506 (os analógicos alcançavam só cerca de 76 por cento do curso; o ganho foi elevado para que a deflexão total sature o eixo e a navegação no menu fique responsiva).

PortMaster / CFW: camada de compatibilidade

  • Libs de compat por SONAME: portes compilados contra Debian 11/darkOS esperam SONAMEs que o ArchR não ship por padrão. Novos pacotes compat-codec2 (libcodec2.so.0.9), compat-x264 (libx264.so.160), compat-x265 (libx265.so.192) e compat-libjpeg62 (libjpeg.so.62, IJG v6b ABI via libjpeg-turbo com WITH_JPEG8=OFF) instalam em /usr/lib/compat.
  • archr-compat-libs.service: como o ArchR não tem ld.so.cache, o serviço symlinka os *.so* de /usr/lib/compat para o path padrão do linker no boot, resolvendo o libtheoradec.so.1 que faltava para runtimes LÖVE (46 SONAMEs ligados, sem sombrear libogg).
  • sudo shim: o guia lista sudo/doas como requeridos; ArchR é single-user root, então o shim tira as opções do sudo e executa o comando direto (padrão ROCKNIX/dArkOS).
  • vmstat adicionado ao procps-ng, e perf habilitado para profiling com kernel.perf_event_paranoid = 1 (sampling de CPU em userspace sem contexto root completo).
  • ltrace é o único item nice-to-have do guia intencionalmente ausente: o fork mantido falha no autoreconf no toolchain do ArchR; ports usam gdb ou perf trace.

EmulationStation: System Information e quirks

  • Chain de quirks archr-info corrigido: o bug de word-splitting em "Game Console R36S" (com espaços) quebrava o for QDIR in ${QUIRK_DIRS}. Substituído por array bash.
  • Temperatura no System Information do Clone e Soysauce: o loader de quirks casa a pasta quirks/devices/<nome> com a string model exata, e faltavam pastas para "R36S Clone" e "Game Console R36S Soysauce", então DEVICE_TEMP_SENSOR ficava vazio e só o Original mostrava temperatura. Adicionadas pastas com os sensores thermal_zone0 (CPU) e thermal_zone1 (GPU). Os DTBs/tsadc das três variantes são idênticos e funcionavam: o gap era só de config per-device no userspace.
  • Mesa version, Arch e kernel string completos aparecem em System Information.
  • archr-config: paths Batocera substituídos pelos equivalentes ArchR no comando de seleção de audio output.
  • ES fork: getArchString()HW_DEVICE do env, scripts são também buscados em /run/emulationstation/scripts, locale .mo carregado de /usr/config/locale.

Performance e CPU

  • A CPU usa 1.4 GHz por padrão; a OPP de turbo de 1.5 GHz é opt-in via a chave "Enable CPU Overclock" do EmulationStation (desligada por padrão para favorecer temperatura e bateria; o gameplay ainda usa o governor performance).
  • Bugs herdados de JELOS no caminho de boot corrigidos.
  • Cleanups em scripts de Emuladores e PortMaster (links quebrados, paths divergentes).

Estratégia: gerador de overlay sai do build do SO

  • config/mipi-generator/ (generator.sh + archr-dtbo.py) e config/archr-dts/ (23 DTSes e ~120 DTBs vendor) removidos do tree. Net: -8.503 LOC + ~120 binários.
  • u-boot/package.mk não chama mais generator.sh; não instala mais overlays_{original,clone,soysauce}/.
  • bootloader/mkimage simplificado: o ramo RK3326 removeu a cópia per-SUBDEVICE.
  • A pasta /flash/overlays/ agora carrega apenas um README.txt multilíngue (pt-BR, en, fr, es, zh, ru) explicando: "Gere seu mipi-panel.dtbo em https://arch-r.io/overlay-generator/ e cole-o aqui."
  • O gerador on-line passou a comparar a DTB do usuário com a DTB base ArchR correspondente (anti-gap mirror), espelhando cirurgicamente cada propriedade que diverge. Em testes reais com um R36S Clone, fecharam 10 gaps adicionais (button-adc-scale, poll-interval, 8 stick tunings) que antes eram perdidos.
  • Tradução de vbus da porta USB (mirror_vbus): o gerador traduz o subtree inteiro de alimentação da porta OTG do DTB stock para o overlay (regulador, cadeia de vin-supply e grupo de pinctrl), ancorando por nome nos labels que o base expõe (usb20_otg, rk817, u2phy, gpio*, pinctrl, pcfg_*). Para o Soysauce, instancia o OTG_SWITCH do rk817 sob demanda (nunca always-on: é um boost e zumbiria sem carga). Validado em hardware: dongle WiFi externo enumera com o USB em host mode. Corrigido de passagem um bug que descartava propriedades booleanas (regulator-always-on, enable-active-high).

Issues fechados

# Título Resolução
#19 RTL8188EUS WiFi auth fail Driver out-of-tree aircrack-ng/rtl8188eus.
#29 Soysauce sem áudio Patch de kernel use_ext_amplifier do rk817 aciona o amp externo via spk-ctl-gpios; gerador mantém o card base rk817-sound.
#31 Clone boot fail (dois SDs) Boot.ini usa LABEL= em vez de /dev/mmcblkN.
#34 Dois cartões SD impedem boot Mesma correção que #31.
#35 R36S Clone V20 sem áudio Flag SDCLONE força amplified fallback no gerador.
#36 Pacman /usr/sbin conflict Shebangs reescritos para /usr/bin/bash.

Mudanças incompatíveis (atenção)

  • Imagens 2.0 não embarcam mais overlays de painel. Usuários de placas em que o overlay padrão do bootloader não funciona precisam gerar o mipi-panel.dtbo no gerador on-line antes de gravar (ou na hora da gravação, via flasher 2.0).
  • /flash/overlays/ antes da gravação contém apenas README.txt. Substituições manuais devem usar um overlay produzido pelo gerador.

Como construir

cd /media/disco-local/ArchR/distribution
make docker-RK3326

Build native (make RK3326) falha em hosts onde checkdeps não passa (CachyOS é o caso conhecido). O docker build é o caminho suportado.

A imagem original aceita placas R36S originais, R33S, Odroid Go variants, Anbernic RG351V/M, GameForce Chi, MagicX XU10 e Y3506 Soysauce. A imagem clone cobre EE clones, RGB10/10X/20S, MagicX XU-Mini-M e BatLexp G350.


Créditos

ArchR é construído sobre a base ROCKNIX, com ambiente de build derivado do LibreELEC. Agradecimentos à comunidade R36S por reportar bugs nas 44 placas distintas que foram instrumentais para fechar os gaps de áudio, painel e joypad nesta release.