Shairport Sync 构建与安装完全指南
shairport-sync 项目地址: https://gitcode.com/gh_mirrors/sh/shairport-sync
前言
Shairport Sync 是一款优秀的开源 AirPlay 音频接收器实现,能够将你的 Linux/FreeBSD 设备变成支持 AirPlay 协议的无线音箱。本文将详细介绍如何从源码构建和安装 Shairport Sync,包括 AirPlay 2 和经典 AirPlay 两种模式的配置方法。
准备工作
清理旧版本
在开始构建前,必须彻底清理系统中可能存在的旧版本:
-
查找并删除所有
shairport-sync
可执行文件$ which shairport-sync # rm /path/to/shairport-sync
-
删除所有服务文件(位于以下位置):
/etc/systemd/system/
/etc/systemd/user/
/lib/systemd/system/
/lib/systemd/user/
/etc/init.d/
-
清理完成后建议重启系统
依赖安装
根据你的操作系统选择对应的安装命令:
Debian/Ubuntu/Raspberry Pi OS
对于 AirPlay 2 版本:
# apt update
# 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
对于经典 AirPlay 版本:
# 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
Fedora
注意:AirPlay 2 需要启用 RPM Fusion 非自由仓库
# yum install --allowerasing make automake gcc gcc-c++ \
git autoconf automake avahi-devel libconfig-devel openssl-devel popt-devel soxr-devel \
ffmpeg ffmpeg-devel libplist-devel libsodium-devel libgcrypt-devel libuuid-devel vim-common \
alsa-lib-devel
Arch Linux
# pacman -Sy git base-devel alsa-lib popt libsoxr avahi libconfig \
libsndfile libsodium ffmpeg vim libplist
启用 Avahi 服务:
# systemctl enable --now avahi-daemon
FreeBSD
-
更新系统:
# freebsd-update fetch install # pkg update
-
安装 Avahi:
# pkg install avahi-app nss_mdns
-
修改配置文件后重启
构建过程
NQPTP(仅 AirPlay 2 需要)
AirPlay 2 需要 NQPTP 作为时间同步服务,需单独构建安装。
Shairport Sync 构建
-
获取源码:
$ git clone https://github.com/mikebrady/shairport-sync.git $ cd shairport-sync
-
生成配置脚本:
$ autoreconf -fi
-
配置选项(关键参数说明):
--sysconfdir=/etc
:配置文件目录--with-alsa
:启用 ALSA 音频后端--with-soxr
:启用 SOXR 重采样--with-avahi
:启用 Avahi 服务发现--with-ssl=openssl
:使用 OpenSSL--with-systemd
:生成 systemd 服务文件--with-airplay-2
:启用 AirPlay 2 支持(可选)
完整配置命令:
$ ./configure --sysconfdir=/etc --with-alsa \ --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2
-
编译安装:
$ make # make install
测试与运行
手动测试
以普通用户运行:
$ shairport-sync -v --statistics
-v
:显示详细日志--statistics
:显示音频统计信息
系统服务配置
Linux 系统:
# systemctl enable --now shairport-sync
FreeBSD 系统: 在 /etc/rc.conf
中添加:
shairport_sync_enable="YES"
常见问题排查
-
WiFi 电源管理:
# iwconfig wlan0 power off 或 # iw dev wlan0 set power_save off
-
防火墙设置:确保不阻挡 Shairport Sync 和 NQPTP 所需端口
-
电源管理:禁用系统的自动挂起功能
-
音频设备:使用
alsamixer
检查音量设置
高级配置
安装完成后,可以通过以下方式进一步优化:
- 编辑
/etc/shairport-sync.conf
配置文件 - 调整音频同步参数
- 配置多房间音频(AirPlay 2)
- 集成到 Apple Home 系统
结语
通过本文的详细步骤,你应该已经成功构建并运行了 Shairport Sync。无论是作为简单的 AirPlay 接收器,还是构建多房间音频系统,Shairport Sync 都能提供出色的音频体验。如需更高级的功能配置,可以参考项目的详细文档。
shairport-sync 项目地址: https://gitcode.com/gh_mirrors/sh/shairport-sync
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考