在 TrueNAS 上安装 Shairport Sync
笔者有一台小爱音箱,可惜它并不支持 AirPlay 协议。如果要将 Mac 上的音乐串流到这台音箱上播放,就需要通过蓝牙配对,体验并不理想。幸运的是,这个型号的音箱配备了 USB 接口,并且可以通过 USB 声卡的方式被电脑识别为音频输出设备。这就意味着,可以通过 Shairport Sync 等软件进行 AirPlay 协议配对,然后通过 USB 将音频流发送到这台音箱上播放。
这台音箱摆放位置旁边就是 NAS 服务器,运行着 TrueNAS Scale 25.04 系统。直接在 NAS 服务器上安装 Shairport Sync 并连接音箱是一个不错的选择。这个版本的 TrueNAS 支持运行 Docker 容器,因此软件安装上非常方便,不过在调试过程中还是踩了很多坑。本文记录一下安装过程,供参考。
检查 Alsa 配置
首先,通过 SSH 登陆到 TrueNAS 服务器上,执行cat /proc/asound/cards检查声卡是否正确识别:1
2
3
4
5admin@truenas[~]$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0x6005220000 irq 199
1 [Pro7990 ]: USB-Audio - 智能音箱 Pro-7990
Xiaomi Corporation 智能音箱 Pro-7990 at usb-0000:00:14.0-5, high speed
可以看到,智能音箱声卡已经被正确识别为Pro7990。接下来,我们需要检查 Alsa 的配置(特别是 Mixer)。虽然 TrueNAS 系统基于 Debian,但它本身并不包含 Alsa 工具,因此我们需要先创建一个 Ubuntu 容器,并将声卡设备映射进去。可以通过 TrueNAS 的 Web 界面创建一个 Docker 容器,选择「通过 YAML 进行安装」,并添加如下配置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15services:
alsa-check:
command:
- bash
- '-c'
- sleep infinity
container_name: alsa_mixer_check
devices:
- /dev/snd:/dev/snd
environment:
- DEBIAN_FRONTEND=noninteractive
image: ubuntu:24.04
privileged: True
stdin_open: True
tty: True
Ubuntu 的 Docker 容器启动成功后,进入容器内部的命令行,安装 Alsa 工具:1
2apt update
apt install -y alsa-utils


