Files
ansible/mediapis.yml
Martin Bauer 831a1b50a4 Run the kiosk on Chromium, and take the stray media server off musicdolphin
Chromium: same page, same machine, idle, Firefox 24.2% of a core against Chromium's
11.4%. The build comes from archive.raspberrypi.com (a "+rpt" version) and is patched
for this board's V3D GPU; Debian ships a much older chromium, so the archive matters.
The whole userland here is 32-bit armhf on a 64-bit kernel, which Firefox handles worse
than Chromium does. --use-gl=egl, --enable-gpu-rasterization, --ignore-gpu-blocklist
and --enable-zero-copy are what keep rasterization on the GPU: Chromium's blocklist
does not recognise this driver and silently falls back to software without them.
pi_kiosk_browser: firefox still works, as the fallback if an update ever regresses.

Debug mode also gains xdotool, scrot and --remote-debugging-port=9222 (on 127.0.0.1),
because firing XTEST key events at a window lands about half the time and a benchmark
you cannot verify the state of is worse than none.

pi_squeezeserver gains an absent path, and mediapis.yml derives its state from
mediapi_has_squeezeserver, which defaults to false for the whole group. false means
"actively remove", not "skip": musicdolphin has been running a Logitech Media Server
that no playbook installs and nothing talks to - every squeezelite in the fleet points
at pi_squeezelite_squeezeserver (192.168.178.80, the server) - while costing ~30 MB
resident and ~47 MB of swap on a 2 GB Pi that also drives the kiosk. The absent path
stops it, purges the package, unregisters it from sysdweb, drops the port 80 -> 9000
redirect and deletes its database and logs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 15:13:16 +02:00

29 lines
880 B
YAML

---
- name: Media Pis (squeezelite/shairport audio players)
hosts: mediapis
roles:
- unattended_upgrades
- pi_modern_shell_env
- pi_standard_setup
- role: pi_hifiberry_amp
when: mediapi_has_hifiberry_amp
- role: pi_musicmouse
when: mediapi_install_kidsmusic
- role: pi_kiosk
when: mediapi_has_monitor
- pi_squeezelite_custom
- role: pi_squeezeserver
vars:
pi_squeezeserver_state: "{{ 'present' if mediapi_has_squeezeserver else 'absent' }}"
- pi_shairport
- role: pi_irserver
when: mediapi_ir_control == 'irserver'
- role: pi_lirc
when: mediapi_ir_control == 'lirc'
- role: pi_dhtsensor
when: mediapi_has_dhtsensor
- role: pi_disable_onboard_bluetooth
when: mediapi_disable_onboard_bluetooth
- role: bluetooth_monitor
when: mediapi_install_bluetooth_monitor