Two ES menu items that wrote settings nothing consumed / called a missing
binary, found in the menu audit:
- AUTO FRAME DELAY (Latency menu) persisted `<config>.video_frame_delay_auto`
to system.cfg, but setsettings.sh never translated it into retroarch.cfg,
so the toggle did nothing. Add set_frame_delay(): ON/OFF -> RetroArch
`video_frame_delay_auto = true/false`, AUTO leaves the cfg default.
- WIREGUARD VPN toggle runs `wg-quick up/down`, but the wireguard-tools
package only installed `wg`, so every toggle silently failed. wg-quick is
the upstream bash helper (src/wg-quick/linux.bash); install it. Runtime
deps (bash, ip, wg, iptables) are all present.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 ganhos mensuráveis identificados rodando o sistema vivo:
1. /etc/sysctl.d → /storage/.config/sysctl.d, e systemd-sysctl roda
Before=sysinit.target — /storage só monta em local-fs.target. O
symlink ficava dangling quando systemd-sysctl lia, então archr.conf
(BBR/fq_codel, vm.dirty_writeback_centisecs=1500, ip_forward, etc.)
nunca era aplicado no boot. Verificado: rodando sysctl -p manual
depois do boot, dirty_writeback_centisecs vai de 500 → 1500.
Replicar os defaults da distro em /usr/lib/sysctl.d (rootfs, sempre
disponível) garante aplicação antes de /storage subir; o /etc/
sysctl.d permanece como ponto de override do usuário.
2. enable.turbo-mode=1 em system.cfg padrão. A baseline validada do
R36S inclui CPU turbo @ 1512 MHz via cpufreq/boost (vdd_arm
regulator-max=1.45V), mas o default era 0 — clamp em 1416 MHz
sem opt-in. O nó scaling_max_freq sobe para 1512000 assim que
boost=1, comprovado live no device. Quem precisar do clamp
térmico de 1416 desliga via Settings > Advanced.
3. rpcbind.service rodando idle custava ~11 MB de RAM em um device
com 1 GB total, sem nada usando NFS. O upstream já fornece
rpcbind.socket (Listen :111 + /run/rpcbind.sock) e systemd faz
activation on-demand — mount.nfs dispara o daemon quando o user
realmente monta um share. Trocado enable_service rpcbind.service
por rpcbind.socket.
4. archr-touchscreen-keyboard ficava acordando a cada 5s mesmo em
devices sem touchscreen (R36S, R33S, etc), e com Restart=always
um exit do helper provocava restart infinito. Adicionado bail-out
precoce quando DEVICE_HAS_TOUCHSCREEN != true, e Restart trocado
para on-failure para honrar o exit limpo. Em devices sem
touchscreen o serviço passa a ficar inativo após o primeiro boot.
5. setrootpass cryptpw sha512 + smbpasswd + syncthing generate
custavam ~6s a cada boot — chamado pelo autostart 007-rootpw com a
senha já configurada. Adicionado short-circuit que compara o hash
sha256 da senha contra o cache em /storage/.cache/.archr-rootpass.
sha256: se nada mudou, sai em 20ms.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sweep encontrou 5 categorias de bugs sutis em arquivos herdados:
1. StartLimitInterval/StartLimitBurst em [Service] em 13 unidades
(avahi, bluez, connman, samba/nmbd/smbd, sshd, tz-data, ledfix,
xorg, fluxbox/windowmanager, samba-config). systemd silenciosamente
ignora StartLimit* fora de [Unit], então a proteção contra
restart-flood nunca foi aplicada. Movidas para [Unit] e renomeadas
para o canônico StartLimitIntervalSec (StartLimitInterval é alias
antigo).
2. Refs dangling para kodi.service em 5 units (entware, locale, sway,
xorg, xwayland-xorg, windowmanager-fluxbox). ArchR não embarca
Kodi; o ordering Before=kodi.service ficava como "not-found" no
systemctl list-units. Trocado por Before=archr.target (alvo real
de boot da UI em ArchR).
3. usercache.service e userconfig.service referenciavam
automount.service e autostart.service sem prefixo archr-. Em ArchR
as unidades reais chamam-se archr-automount.service /
archr-autostart.service, então o Before= era ignorado e o setup
corria paralelo aos mounts.
4. archr-autostart.service tinha Before=weston.service. ArchR roda
sway, não weston. Removido (After=graphical.target já cobre).
5. nmbd.service do override ArchR queria samba-config.service que só
existe no pacote global packages/network/samba (não no override).
O daemons/002-samba já cria /run/samba/smb.conf manualmente, então
Wants/After=samba-config.service eram supérfluos.
Bugs adicionais corrigidos no caminho:
- archr/autostart/050-audio: `if [ -n "/usr/sbin/quantum" ]` testa se
uma string literal é não-vazia (sempre true) em vez de checar se o
binário existe. Trocado para [ -x ].
- avahi: post_makeinstall_target removia /usr/sbin/avahi-dnsconfd mas
deixava a unit avahi-dnsconfd.service órfã. Remove a unit junto.
- system-utils: video.service só faz sentido em devices que embarcam
/usr/bin/video_sense (RK3399/RK3566/S922X). Remove a unit em
devices que não têm o helper.
- xwayland: scripts/xorg-configure não era instalado, deixando
xorg-configure@.service com ExecStart para um path inexistente.
Agora copiado pra /usr/lib/xorg/xorg-configure.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
+ Fix issue with Access Point mode and frequency unlocking.
+ Fix issue with network configuration and BSS retry logic.
+ Fix issue with handling busy notification from Access Point.
+ Fix issue with handling P-192, P-224 and P-521 for SAE.