ARCH R

Solução de problemas

Problemas comuns e como resolvê-los

Problemas de boot

Tela preta, apenas o splash

Overlay de painel errado ou ausente. A imagem não traz nenhum, então um cartão gravado sem overlay dá boot com a descrição de painel que vem no device tree base, e ela só serve para algumas placas.

Solução: gere o mipi-panel.dtbo no Gerador de Overlays a partir do .dtb do cartão original do seu próprio console e copie o arquivo para overlays/mipi-panel.dtbo na partição ARCHR. O Flasher faz essa cópia por você, durante a gravação ou depois, pela aba Overlay.

Boot loops, nunca chega no ES

Três possibilidades, em ordem de probabilidade:

  1. Instabilidade de CPU em turbo (somente com Enable CPU Overclock ligado, muito raro). Desligue, remova o SD, edite /storage/.config/system/configs/system.cfg em um PC e defina enable.turbo-mode=0.
  2. fs-resize travou no primeiro boot. Capture cat /storage/.boot_last_hang depois do boot bem-sucedido seguinte. Esse arquivo nomeia o script que parou.
  3. Variante de imagem errada (original em um clone ou vice-versa). Regrave com a variante correta.

Boot chega no ES mas congela ali

Pare o ES e veja o que está segurando:

sudo systemctl stop emustation
sudo journalctl -t archr-autostart -f

Ou leia o log de boot (/var/log/boot.log, note que o journald é volátil, então os logs do boot anterior são perdidos). Reinicie o ES com sudo systemctl start emustation depois de identificar o problema.

"Boot anterior travou em <script>"

O mecanismo de trace pegou uma trava no boot anterior. O script nomeado é o culpado. Abra uma issue com:

  • O nome do script em /storage/.boot_last_hang
  • dmesg | tail -200 do boot pós-recuperação
  • A saída de cat /flash/fs-resize.log se aplicável

Display

Cores parecem erradas / invertidas

O painel está ligado em BGR onde o overlay descreve RGB, ou o contrário. Gere o overlay de novo a partir do .dtb original do seu próprio console, porque é esse arquivo que carrega a ordem de cor real da placa que você tem na mão. Um .dtb emprestado de outro aparelho é a causa mais comum.

"Tearing" da tela em alguns emuladores

video_threaded vem ligado por padrão. Para jogos sensíveis a tearing, no RetroArch Quick Menu → Settings → Video → Output → Vertical Sync = ON.

O brilho tem menos passos do que eu gostaria

O ArchR usa 3% por passo (33 níveis distintos). Se precisar de controle mais fino, edite /storage/.config/profile.d/099-freqfunctions e ajuste o passo de brilho.

A página do gerador de overlays nunca termina de carregar

O Gerador de Overlays do site baixa um runtime Python em WebAssembly de cerca de 8,6 MB antes de conseguir rodar. Em conexões lentas ou filtradas esse download pode nunca terminar, e a página fica pedindo para recarregar.

Use a edição offline no lugar: archr-dtbo-offline.zip, cerca de 100 KB, o mesmo gerador, exigindo só Python 3.5 ou mais novo e nenhuma rede. Descompacte, abra um terminal na pasta e rode:

python3 archr_dtbo.py rk3326-r36s-linux.dtb SDORIG -o mipi-panel.dtbo

No Windows o comando é python em vez de python3. As strings de opção são SDORIG (R36S Original), SDCLONE (R36S Clone) e SDORIG-NAm (R36S Soysauce), com flags extras anexadas por hífen, por exemplo SDCLONE-LSi. Copie o arquivo resultante para a partição ARCHR como overlays/mipi-panel.dtbo, que é exatamente a pasta e o nome de arquivo que o extlinux.conf já aponta.

As instruções completas, incluindo a solução para No module named 'fdt' e anti-gap: base not available, estão em Instalação.


Áudio

Sem som nenhum

amixer get 'Playback Path'    # deve ser SPK ou HP
amixer get DAC                # deve ser > 0
cat /sys/class/extcon/*/state # detecção de HP (1 = conectado)

Se o Playback Path estiver errado, force: amixer set 'Playback Path' SPK.

Estalo de áudio no Mario 64 / jogos 3D pesados

Se você está ouvindo estalo junto com unbalanced disables for vdd_logic no dmesg, está em um build pré-v8. Atualize para o release mais recente. O patch de PM no mali_kbase elimina isso.

Se continuar acontecendo no mais recente: abra uma issue com dmesg | grep -iE 'vdd_logic|clk_gpu|mali' e o nome do jogo.

Áudio Bluetooth picotando

A latência do A2DP é sensível ao codec BT. Force SBC + low-quality se o seu dispositivo suporta apenas perfis básicos:

pactl set-sink-port bluez_sink.<MAC>.a2dp-sink "speaker-output"

No menu Bluetooth do ES, o toggle "Force SBC" faz o mesmo.


Performance

O jogo roda mais lento do que o esperado

Em ordem:

  1. CPU governor: deve ser performance durante o gameplay. Verifique: cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor.
  2. GPU governor: deve ser performance. cat /sys/class/devfreq/ff400000.gpu/governor.
  3. CPU max freq: cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq. Sem overclock = 1416000, com overclock = 1512000.
  4. Serviços em background: systemctl is-active syncthing tailscaled zerotier-one simple-http-server. Todos devem estar inactive durante um jogo (são pausados automaticamente pelo runemu.sh).
  5. Throttling térmico: cat /sys/class/thermal/thermal_zone0/temp (unidade: m°C). Acima de 70 000 (70 °C) dispara throttle passivo. Dê uma pausa, deixe esfriar.

Rode o bench

O script de bench não vem instalado na imagem. Copie o tools/bench.sh da árvore de código do Arch-R para o console e rode a partir de onde você o colocou:

bash bench.sh psp 60   # tag do cenário, duração em segundos

Resultados em /storage/bench-results/<timestamp>-psp/: summary.json tem agregados estilo p99, psi.log tem stalls de pressão por segundo, freq-therm.log tem a trajetória de frequência.


Storage / ROMs

Algumas ROMs não aparecem depois que copiei

O ES só faz rescan no boot. Menu do ES → Game Settings → Rescan ROMs → aguarde → as ROMs aparecem.

"Disk full" mas meu SD é enorme

Verifique se a partição foi redimensionada: df -h /storage. Deve mostrar ~95% da capacidade do SD. Se não, o fs-resize não rodou. O arquivo marcador /storage/.please_resize_me dispara o resize no próximo boot:

sudo touch /storage/.please_resize_me
sudo reboot

Save-states sumiram depois de regravar

Os save-states ficam em /storage/roms/savestates/<sistema>/ e os saves de bateria (.srm, .sav) ficam junto da própria ROM, porque o RetroArch roda com savefiles_in_content_dir ligado. Os dois estão dentro de /storage/roms, que sobrevive a uma regravação. Se o cartão inteiro foi reescrito, eles se foram. Faça backup na próxima vez:

scp -r root@archr.local:/storage/roms/savestates ~/r36s-saves-backup/

SSH / rede

Não conecta: "connection refused"

O SSH vem desligado por padrão. ES → System Settings → Network → Enable SSH → ON.

"archr.local" não resolve

Problema com Avahi/mDNS. Use o IP (visível em ES → System Information). Ou:

# de um Linux/macOS
avahi-browse -art | grep archr

WiFi conecta mas não tem internet

Problema de DNS. Tente:

cat /etc/resolv.conf                  # existe algum nameserver
iwctl station wlan0 show              # estado do link, IP, gateway
wifictl reconnect                     # derruba e refaz a conexão salva

O connman é compilado com --disable-wifi, então o connmanctl não enxerga nem gerencia rede sem fio no ArchR. O WiFi fica a cargo do iwd, através do wifictl e do iwctl. O wifictl aceita enable, disable, connect, disconnect, reconnect, list, scan e channels.


PortMaster

Port trava em tela preta

Provavelmente as permissões de /dev/uinput estão erradas. ls -la /dev/uinput deve mostrar crw-rw-rw- (modo 666). Se não estiver, a regra udev não aplicou. Por ora, sudo chmod 666 /dev/uinput e reporte o bug.

"Permission denied" rodando gptokeyb

Mesma coisa: permissões do uinput.

box86: assertion failure

O port foi construído contra um libstdc++ mais novo do que o ArchR entrega. Aguarde uma atualização (o PortMaster costuma corrigir em poucos dias) ou reporte no Discord do PortMaster.

A GUI do PortMaster em si não inicia

ssh root@archr.local
bash /usr/bin/start_portmaster.sh

Leia o trace. O script é idempotente (rodar de novo é seguro).


Como abrir um bom relato de bug

1. Hardware              ────  R36S V21 / K36 / RX6S etc.
2. Versão do ArchR       ────  em ES System Information, ou `cat /etc/os-release`
3. Variante da imagem    ────  original | clone
4. Overlay de painel     ────  de qual .dtb você gerou o overlay
5. O que você tentou     ────  passos exatos para reproduzir
6. O que aconteceu       ────  observado vs esperado
7. Logs:
   /var/log/boot.log
   dmesg | tail -200
   /storage/.boot_last_hang   (só existe se o boot anterior travou)
   /flash/fs-resize.log       (se relacionado ao primeiro boot)

Abra em github.com/archr-linux/Arch-R/issues.

Para PortMaster especificamente: github.com/PortsMaster/PortMaster-GUI/issues.

On this page