ARCH R

Bluetooth

Pareie dispositivos de áudio e gamepads

O ArchR distribui BlueZ + backend bluetooth do PipeWire. Sem bluealsa: o roteamento de codec acontece pelo PipeWire, o que dá uma integração mais limpa mas significa que alguns dispositivos peculiares se comportam de forma diferente do que docs mais antigas sugerem.


Parear um headset de áudio

Habilite o Bluetooth

ES → System SettingsController & Bluetooth SettingsEnable Bluetooth → ON.

Coloque o headset em modo de pareamento

Consulte o manual do headset, normalmente é segurar o botão de power até o LED piscar rapidamente.

Pareie pelo dispositivo

No mesmo menu → Pair a Bluetooth Device. Espere o nome do headset aparecer e selecione-o.

Direcione o áudio

Uma vez pareado, ES → System SettingsAudio Device → escolha o dispositivo BT na lista. O ES reinicia; a saída agora vai pelo Bluetooth.


Parear um gamepad

Mesmo menu, Pair a Bluetooth Device, coloque o gamepad em modo de pareamento (varia: a maioria dos gamepads Xbox/8BitDo tem um botãozinho de pareamento embaixo ou ao lado da porta USB).

Após o pareamento, o ES detecta o gamepad automaticamente e te pede para mapear os botões. O mapeamento é salvo por dispositivo em /storage/.config/SDL2/gamecontrollerdb.txt.


Ressalvas no RK3326

O chip WiFi/BT do RK3326 está em uma única antena compartilhada. Implicações no mundo real:

  • Alcance é de ~3 m: fones Bluetooth do outro lado do quarto vão gaguejar.
  • WiFi compete com BT pelo airtime: uso pesado de rede durante o gameplay pode causar chiado no áudio. Pause Syncthing/Tailscale/ZeroTier durante o jogo (o ArchR faz isso automaticamente via pause_background_services no runemu.sh).
  • Latência A2DP é ~150 ms. Tudo bem para música, perceptível em jogos rápidos. O ArchR não tem hardware aptX-LL.

Seleção de codec

O PipeWire escolhe o melhor codec que seu headset anuncia (LDAC > aptX > AAC > SBC). Force um codec mais baixo se tiver drops:

# inspecionar codec atual
pactl list sinks | grep -A 1 "Active Port"

# forçar SBC (universal, banda mais baixa)
pactl set-sink-port bluez_sink.<MAC>.a2dp-sink "speaker-output-sbc"

Para LDAC em bitrates mais altos a carga de CPU do A35 não é desprezível. Os perfis mobile (330 kbps) e standard (660 kbps) funcionam; high (990 kbps) em cima de um emulador é o bastante para causar chiado.


Desconecte de forma limpa

Sempre desligue o BT no ES (ou despareie) antes de desligar. Cold-disconnect (apenas desligar o headset) às vezes deixa o PipeWire segurando um sink velho, o que significa nenhum áudio até reiniciar.

Se acontecer, via SSH:

systemctl --user restart pipewire pipewire-pulse wireplumber

Problemas conhecidos

  • Core PCSX-ReARMed: silencioso sob áudio Bluetooth por razões desconhecidas (herança do upstream). Contorno: use o core libretro pcsx_rearmed32 ou swanstation, ou o DuckStation standalone.
  • Reconnect-on-resume: depois de um fake-suspend wake-up (quando o RK3326 suportar isso algum dia), o BT pode não reconectar. Reconexão manual no menu Bluetooth.

On this page