Get sound, the screen and emoji working on musicdolphin's Pi 5
- HiFiBerry: the plain hifiberry-dacplus overlay makes the Pi the I2S clock consumer, which the Pi 5's controller refuses (snd_soc_dai_set_fmt -22). The card never probed, so every softvol_* device was dead: squeezelite crash-looped and the backend and shairport played into nothing. hifiberry-dacplus-std has the Pi drive the clocks. pi_hifiberry_amp now matches any dtoverlay=hifiberry-* line, so changing the overlay replaces the old one instead of adding a second. - X: with two DRM devices (v3d, vc4) Xorg gave up with "Cannot run in framebuffer mode", and the kiosk looped on a blank screen. 99-vc4.conf points it at vc4, the display controller; rendering still goes to V3D (glxinfo: V3D 7.1, accelerated). - The front-end's icons are emoji in the markup. The Lite image has no emoji font, so they rendered as empty boxes: install fonts-noto-color-emoji. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,10 @@ pi_shairport_name: _Oben_Wohnzimmer
|
||||
alsa_card_name: sndrpihifiberry
|
||||
sensor_room_name_ascii: wohnzimmeroben
|
||||
sensor_room_name: WohnzimmerOben
|
||||
hifiberry_overlay: hifiberry-dacplus
|
||||
# -std: the Pi drives the I2S clocks. The plain dacplus overlay makes the Pi the clock
|
||||
# consumer, which the Pi 5's I2S controller rejects (snd_soc_dai_set_fmt -22), so the
|
||||
# card never probes and every softvol_* device is dead.
|
||||
hifiberry_overlay: hifiberry-dacplus-std
|
||||
main_user: root
|
||||
|
||||
mediapi_has_hifiberry_amp: true
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
- name: Activate Hifiberry
|
||||
ansible.builtin.lineinfile:
|
||||
path: /boot/firmware/config.txt
|
||||
regexp: "^#?dtoverlay=hifiberry-amp"
|
||||
# Any hifiberry overlay, not just the one this used to set: otherwise changing
|
||||
# hifiberry_overlay appends a second dtoverlay line and leaves the old one active.
|
||||
regexp: "^#?dtoverlay=hifiberry-"
|
||||
line: "dtoverlay={{ hifiberry_overlay }}"
|
||||
notify: Reboot after HiFiBerry boot config change
|
||||
- name: Lift the Pi 5's USB current cap when the HiFiBerry board powers it
|
||||
|
||||
@@ -10,7 +10,37 @@
|
||||
# size in the corner of the screen. Openbox answers it, and nothing else.
|
||||
- openbox
|
||||
- unclutter
|
||||
# The MusicMouse front-end's icons are emoji characters in the markup, not an icon
|
||||
# font. Lite images ship no emoji font at all, so without this every icon renders
|
||||
# as an empty box.
|
||||
- fonts-noto-color-emoji
|
||||
cache_valid_time: 7200
|
||||
notify: Reload systemd and restart getty
|
||||
|
||||
- name: Ensure the Xorg config directory exists
|
||||
ansible.builtin.file:
|
||||
path: /etc/X11/xorg.conf.d
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Point X at the display controller
|
||||
# The Pi 4 and 5 have two DRM devices: v3d (the 3D GPU, no outputs) and vc4 (the
|
||||
# HDMI display controller). Left to itself Xorg cannot tell which to drive and dies
|
||||
# with "Cannot run in framebuffer mode. Please specify busIDs for all framebuffer
|
||||
# devices", so the kiosk loops on a blank screen. Display goes through vc4; rendering
|
||||
# still lands on v3d, because glamor's GL context is routed there by Mesa (kmsro).
|
||||
# Raspberry Pi's desktop image ships this same file; the Lite image does not.
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/X11/xorg.conf.d/99-vc4.conf
|
||||
content: |
|
||||
Section "OutputClass"
|
||||
Identifier "vc4"
|
||||
MatchDriver "vc4"
|
||||
Driver "modesetting"
|
||||
Option "PrimaryGPU" "true"
|
||||
EndSection
|
||||
mode: "0644"
|
||||
notify: Reload systemd and restart getty
|
||||
|
||||
- name: Browser
|
||||
# Chromium comes from archive.raspberrypi.com, not Debian: that build carries the
|
||||
|
||||
Reference in New Issue
Block a user