Add web mixer with native input volume and output selection

This commit is contained in:
jsahn
2026-10-12 18:45:43 +09:00
parent ceef64dfed
commit 5fbece12bb
19 changed files with 696 additions and 34 deletions
+6 -4
View File
@@ -42,7 +42,7 @@ spec=importlib.util.spec_from_file_location('manager',base/'scripts/radxa-audio.
m=importlib.util.module_from_spec(spec); spec.loader.exec_module(m)
m.validate(dict(name=sys.argv[2],dac_pcm=sys.argv[3],output='dac',bluetooth_device=''))
manifest=json.loads((base/'sources/manifest.json').read_text())
for source in manifest['sources']:
for source in manifest['sources'] + manifest.get('patches', []):
p=base/'sources'/source['file']
assert hashlib.sha256(p.read_bytes()).hexdigest()==source['sha256'], 'Source checksum mismatch: '+p.name
PY
@@ -72,7 +72,7 @@ DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential git autoconf automake libtool pkg-config xmltoman \
libpopt-dev libconfig-dev libssl-dev libsoxr-dev libasound2-dev \
libavahi-client-dev libavcodec-dev libavformat-dev libavutil-dev libswresample-dev uuid-dev \
libplist-dev libsodium-dev libgcrypt20-dev avahi-daemon \
libglib2.0-dev libplist-dev libsodium-dev libgcrypt20-dev avahi-daemon \
bluez bluez-alsa-utils libasound2-plugin-bluez alsa-utils python3
# Verify hardware and installed-package capabilities before switching outputs.
[[ -d /sys/class/bluetooth/hci0 ]] || { echo '블루투스 컨트롤러가 없습니다.' >&2; exit 1; }
@@ -95,10 +95,11 @@ git clone --quiet --branch 5.5.2 "$PACKAGE_DIR/sources/shairport-sync-5.5.2.bund
)
(
cd "$BUILD_DIR/shairport-sync"
git apply "$PACKAGE_DIR/sources/shairport-native-volume.patch"
autoreconf -fi
./configure --prefix=/usr/local --sysconfdir=/etc --with-alsa --with-soxr \
--with-avahi --with-ssl=openssl --with-systemd-startup \
--with-systemdsystemunitdir=/etc/systemd/system --with-airplay-2
--with-systemdsystemunitdir=/etc/systemd/system --with-airplay-2 --with-dbus-interface
make -j "$JOBS"
)
# Finish both builds before stopping the existing receiver.
@@ -148,10 +149,11 @@ if (( WIFI5 )); then
'options aic8800_fdrv ps_on=0 he_on=0' > /etc/modprobe.d/90-radxa-airplay-wifi.conf
fi
systemctl daemon-reload
/usr/local/bin/shairport-sync -V | grep -q '5.5.2-AirPlay2.*smi10'
/usr/local/bin/shairport-sync -V | grep -q '5.5.2.*AirPlay2.*smi10.*dbus'
/usr/local/bin/nqptp -V | grep -q '1.2.8.*10'
radxa-audio init --name "$AIRPLAY_NAME" --dac "$DAC_PCM"
radxa-audio status
bash "$PACKAGE_DIR/scripts/install-web.sh"
trap - EXIT
echo "설치 완료. 복구: sudo python3 $PACKAGE_DIR/scripts/backup.py restore $BACKUP_DIR"
if (( WIFI5 )); then echo 'Wi-Fi 5 설정 적용을 위해 편할 때 재부팅하세요. USB 네트워크 주소 설정은 변경하지 않았습니다.'; fi