Skip to content

Latest commit

 

History

History
66 lines (53 loc) · 3.32 KB

audio-tools-sd.md

File metadata and controls

66 lines (53 loc) · 3.32 KB

Persistent ALSA development tools on Y2ROOT

Historical record. The dates, candidate identity, "current" claims, next steps and permissions below belong to this recorded boundary. See current state for the latest physically observed result.

On 2026-09-10 the owner requested permanent tools instead of restoring the isolated /tmp bundle after each boot. The Y2 now runs 6.18.0-y2linux-m3audio02. The existing DEV-01 SD received an additive audio-only update over SSH.

Installed standard paths:

  • /usr/bin/aplay, /usr/bin/amixer, /usr/bin/speaker-test
  • /usr/lib/libasound.so.2, /usr/share/alsa/ runtime configuration
  • /usr/share/y2linux/audio/ short quiet 44.1/48-kHz WAVs
  • /usr/sbin/y2-audio-collect

These files are on the writable removable SD ext4 root, not tmpfs. No restore, wrapper, private loader, reboot, kernel flash or new rootfs build is required. A fresh SSH session resolves the installed programs normally. Installed hashes, ALSA card/PCM enumeration and read-only diagnostics are retained in hardware evidence. Headphone remains off; installing tools does not play audio or change gain. A subsequent AUDIO-02 test now has owner-confirmed clean 44.1 kHz playback; 48 kHz, explicit L/R and stop/restart/repeat remain. See the current physical result.

Reproducible source and update

The packages already belong to buildroot/configs/y2_dev_defconfig; fixtures are generated by tools/development/audio-fixtures.py and installed by canonical buildroot/board/y2/post-build.sh; the collector is in the Buildroot overlay. This update uses those exact built files, including standard ALSA configuration. No full rootfs replacement or false build-id change was performed. The SD's whole-rootfs build-id stays DEV-01; /etc/y2linux/audio-tools.sha256 records the additive deployment. New full M3 Buildroot images already include these tools.

Generate the small update without rebuilding:

python3 tools/development/audio-sd-update.py out/y2linux-m3-audio-01 out/y2linux-audio-sd-update

Transfer the generated directory to /tmp/y2-audio-sd-update-v1 on the Y2 and run sh /tmp/y2-audio-sd-update-v1/install.sh. Only installation staging is temporary. The installer requires writable ext4 root from SD host11240000, checks the archive and exact existing libc/libm/loader hashes, refuses destination symlinks, installs only audio paths, verifies installed hashes and syncs SD. It never replaces those base libraries, startup services, SSH keys or modules. The initial update archive is 2406400 bytes, SHA256 b7216d41914030e7da32e66088c35c13c2661acc0a32535b2ded8916c60a03ae.

For the next supervised headphone test use ordinary commands:

amixer -c Y2Audio cset name='PCM Ch Select' 0
amixer -c Y2Audio sset Master 207,207
amixer -c Y2Audio sset Headphone on
aplay -D hw:CARD=Y2Audio,DEV=0 --period-size=1024 --buffer-size=8192 /usr/share/y2linux/audio/headphone-44100.wav
amixer -c Y2Audio sset Headphone off

Master207 is -24dB; the three-second fixture peaks at -30dBFS. Retain bounded watchdog/cleanup and live PCM/IRQ/power/error inspection during qualification. Speaker-test is installed for future platform diagnostics, not automatically run.