ARCH R

Áudio

Alto-falantes, fones, USB, HDMI, Bluetooth

O ArchR vem com PipeWire + ALSA sobre o codec RK817. A maioria das coisas funciona automaticamente; esta página documenta os casos de borda.


Caminhos de saída

Seis sinks de áudio possíveis, escolhidos automaticamente:

SPK     alto-falantes internos (padrão se nada mais estiver conectado)
HP      saída de fone (auto-detectada via extcon)
HDMI    saída de áudio HDMI (quando um cabo HDMI está conectado)
USB     dispositivo de áudio USB (DAC, headset, gamepad com áudio)
BT      sink de áudio Bluetooth (fones / caixa pareados)
SIMPLE  fallback legado para placas clone com fiação de amplificador não-padrão

A detecção acontece em /etc/profile.d/050-audio no login e em hotplug via udev.

Forçar um caminho

amixer set 'Playback Path' SPK    # alto-falantes
amixer set 'Playback Path' HP     # fones
amixer set 'Playback Path' HDMI   # HDMI

A configuração é resetada no próximo evento de hotplug. Para torná-la fixa, edite /storage/.config/system.cfgaudio.path=SPK|HP|HDMI.


Volume

Os botões de volume (VOL+ / VOL-) atuam diretamente no controle de mixer do DAC. Faixa 0-255, passo de 2 % por pressão, persiste entre reboots.

amixer get DAC                  # valor atual, 0..255
amixer cset numid=N <value>     # define explicitamente (descubra o numid com `amixer controls`)

O nível máximo do DAC no RK817 está limitado a 98 % para evitar chiados em alto-falantes pequenos de clones; isso é definido pelo quirk 050-audio_path para RK3326 (ajuste do Playback Mux).


Variante SR ("force simple audio")

Algumas placas-mãe de clones ligam o amplificador a um GPIO diferente do que a configuração padrão do codec RK817 espera. O Flasher oferece um toggle SRs que troca para um caminho de amplificador mais simples.

Se o seu dispositivo toca tudo pelo fone mas os alto-falantes ficam silenciosos independentemente do estado do jack, refaça o flash com SRs ligado.

A configuração mora no arquivo DTBO do painel. Não pode ser alterada em runtime; você precisa refazer o flash com o overlay correto ou copiar um *_SRs.dtbo diferente para /flash/overlays/mipi-panel.dtbo a partir de um PC.


Áudio HDMI

Conecte um cabo HDMI; a saída de áudio troca automaticamente. A porta HDMI é HDMI 1.4, suporta PCM estéreo a 48 kHz. Sem surround.

Se a tela funciona mas o áudio fica nos alto-falantes:

aplay -L | grep -i hdmi
amixer set 'Playback Path' HDMI

Áudio USB

A maioria dos dispositivos de áudio USB classe 1.0 (os DACs comuns, headsets, dispositivos de captura) funciona plug-and-play. O PipeWire os identifica via auto-link. Troque para saída USB:

pactl list sinks short
pactl set-default-sink <name-of-usb-sink>

Áudio Bluetooth

Pareie pelo ES → System Settings → Bluetooth → Pair Device. Uma vez pareado, o áudio é roteado para lá automaticamente.

Ressalvas:

  • Latência: A2DP é ~150 ms de mão única. Tudo bem para música, perceptível em jogos. O RK3326 não tem hardware aptX-LL.
  • Re-pareamento: se a caixa não reconectar após o sleep, no menu BT do ES → Manage Paired Devices → Reconnect.
  • Alto-falante + BT simultâneos: não suportado. O roteamento do PulseAudio é single-sink por vez.

Backend de áudio por emulador

RetroArch                ALSA via "alsathread" (fora do caminho do frame loop do libretro)
PPSSPP standalone        SDL2 audio → PipeWire
Flycast standalone       SDL2 audio → PipeWire
Mupen64Plus standalone   SDL2 audio → ALSA
DraStic                  SDL2 audio → ALSA

O alsathread para RetroArch troca alguns ms de latência por escalonamento previsível, importante em um A35 limitado por CPU.


Troubleshooting

Alto-falantes chiam em jogos 3D pesados. Builds anteriores ao v8 tinham um desequilíbrio de PM regulator no mali_kbase que perturbava o domínio de clock do áudio. Atualize para v8+. Se ainda acontecer: dmesg | grep -iE 'vdd_logic|clk_gpu|mali'. Resultado vazio é o que você quer.

Áudio gagueja sob carga. Quantum do PipeWire muito baixo. Edite /storage/.config/pipewire/pipewire.conf.d/99-quantum.conf:

default.clock.quantum = 1024
default.clock.min-quantum = 512
default.clock.max-quantum = 2048

Reinicie o PipeWire: systemctl --user restart pipewire.

Áudio Bluetooth picotado / com drops. Bitpool do SBC alto demais. Force qualidade menor: ES → BT → Manage Paired Devices → toggle "Force SBC".

HP detectado mas alto-falantes continuam ligados (ou vice-versa). Problema do driver extcon. Verifique cat /sys/class/extcon/*/state. Abra um bug com essa saída se ela não muda quando você conecta/desconecta.

On this page