低成本普通音响变HomePad

发布于 4 天前  20 次阅读


来自AI助手的总结
本文介绍了如何在Linux设备上安装和配置Shairport Sync以支持AirPlay 2播放,包括所需材料、构建步骤及设置开机自启的方法。
中文 英文 韩语 日语

准备材料

  1. 需要能安装Linux的设备。包括服务器,树莓派,运营商的机顶盒等。如N1/HK1Box/移动魔百盒等。这种设备是最便宜,移动的盒子不到50元。如没有音频输出口的需要加一个USB-DAC,或者USB音箱。盒子介绍,我使用的香橙派zero3
  2. 有线有源音箱,自带音频输入的即可,带3.5mm插头的音箱比较通用。

Shairport Sync 可以作为 AirPlay 2 播放器(有一些限制)构建,也可以作为“经典”Shairport Sync——为较旧但仍支持的 AirPlay(又称“AirPlay 1”)协议开发。查看“你需要什么”,了解一些基本的系统要求。

总体来说,你将构建和安装两个程序——Shairport Sync本身和NQPTP,后者是Shairport Sync用于AirPlay 2时序的配套应用。如果你是在构建经典的Shairport Sync,NQPTP是非必需的,可以省略。

在下面的命令中,请注意一个惯例:提示表示你处于超级用户模式,提示表示你处于普通无权限用户模式。如果允许,您可以使用(“超用户DO”)来暂时将自己从用户晋升为超级用户。例如,如果你想在超级用户模式下执行,而你正在使用用户模式,请输入。#$sudoapt-get updatesudo apt-get update

获取工具和库

Debian / 树莓派作系统 / Ubuntu

Debian / 树莓派作系统 / Ubuntu

# apt update
# apt upgrade # this is optional but recommended
# apt install --no-install-recommends build-essential git autoconf automake libtool \
    libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev \
    libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd

如果你是在打造经典的Shairport Sync,套餐列表会更短:

# apt update
# apt upgrade # this is optional but recommended
# apt-get install --no-install-recommends build-essential git autoconf automake libtool \
    libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev

在Ubuntu 24.10或Debian 13(“Trixie”)及以后版本——以及可能的其他发行版上——构建时需要 。尝试安装没坏处——如果没有该软件包,安装会失败:systemd-dev

# apt install --no-install-recommends systemd-dev # it's okay if this fails because the package doesn't exist

构建与安装

下载Shairport Sync,分支和配置,编译并安装。执行命令前,请注意以下内容:

  • 如果为 FreeBSD 构建,请用 替换 。--with-systemd--with-os=freebsd --with-freebsd-service
  • 如果你是在构建经典的Shairport Sync,可以省略选项中的这个选项。--with-airplay-2./configure
  • 如果你想添加额外功能,比如额外的音频后端,可以看看配置标志。不过,在本次攻略中,请不要移除该标志。--with-alsa
$ git clone https://github.com/mikebrady/shairport-sync.git
$ cd shairport-sync
$ autoreconf -fi
$ ./configure --sysconfdir=/etc --with-alsa \
    --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2
$ make
# make install

顺便说一句,这个步骤可能需要相当长的时间——请耐心等待!autoreconf

测试

此时,Shairport Sync应该已经建好并安装,但不会运行。如果你登录的用户是Unix组成员,Shairport Sync应该会从命令行运行:audio

$ shairport-sync
  • 添加命令行选项以获取一些诊断。-v
  • 添加获取音频信息的选项。--statistics

AirPlay服务应该会显示在网络上,你播放的音频也会传到默认的ALSA设备上。(用于调节电平或类似工具。)alsamixer

如果你遇到问题,请查看下面的最终备注或 TROUBLESHOOTING.md 指南中的相关内容。

注意:Shairport Sync将无限运行——请使用Control-C来停止。

一步设置开机自启

运行以下命令:

sudo systemctl enable shairport-sync

🔍 验证是否已启用自启

systemctl is-enabled shairport-sync

✅ 正常输出应为:

enabled

如果显示 disabled,说明没启用成功,请重新运行 enable 命令。

🔄 补充:常用服务管理命令

操作命令
启动服务(立即运行)sudo systemctl start shairport-sync
停止服务sudo systemctl stop shairport-sync
重启服务(改配置后用)sudo systemctl restart shairport-sync
查看状态sudo systemctl status shairport-sync
开机自启sudo systemctl enable shairport-sync
禁止自启sudo systemctl disable shairport-sync

⚠️ 注意事项

确保 Avahi 也自启(Shairport Sync 依赖它广播 AirPlay 服务):

sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
网络需早于服务启动:
Orange Pi Zero 3 默认的 systemd 服务文件已经包含 After=network.target,所以一般没问题。如果你使用 Wi-Fi,确保系统能自动连接网络(比如通过 nmcliwpa_supplicant 配好)。

音频设备就绪

hw:0 在系统启动早期通常可用,无需额外等待。

🧪 测试自启是否生效

你可以重启 Orange Pi 测试:

sudo reboot

重启后,手机应该 自动看到 “OrangePi Zero 3” 的 AirPlay 设备,无需手动启动任何程序。

如果不想自己编译麻烦可以使用我编译好的

注意:下载后自需要编辑shairport-sync.conf这个文件


一个追求爱搞的唐同学