忘机山人
懒猫微服硬件层面自带了蓝牙模块。理论上,它应该可以像一台笔记本电脑或手机那样,直接连接蓝牙音箱,成为一个音频输出端。那么问题来了:在没有桌面 GUI 的前提下,能否纯命令行完成 蓝牙配对 + 音乐播放?
折腾了一上午,我从安装依赖、加载服务、设备配对到最终的音频播放,完整走通了流程。过程中踩了几个典型的坑,把命令总结下来,甚至进一步改造成一个家庭“蓝牙音频中心”。
懒猫微服本质上就是一台 Linux 设备,可以在 neofetch 中查看系统信息。所以蓝牙相关的配置流程和常见的 Ubuntu/Debian 系统基本一致。只要我们搞定了蓝牙协议栈、音频服务和配对,就能让它像 PC 一样推送音频到蓝牙音箱。

懒猫微服没有提供 GUI 桌面环境,所以所有的这些步骤都得通过命令行完成。
首先安装系统缺少的几个依赖包:
sudo apt install bluez bluez-tools pulseaudio-module-bluetooth libspa-0.2-bluetooth
这里有几个关键点:
bluetoothctl 就靠它。sudo systemctl restart bluetooth
蓝牙服务在驱动加载、硬件唤醒等场景下,偶尔会出现异常,导致设备不可见。重启服务能有效避免 无法扫描设备、连接超时 等问题。
如果遇到
No default controller available的错误,可以通过systemctl status bluetooth检查蓝牙守护进程是否正常运行。
进入蓝牙控制台:
bluetoothctl
核心工具是 bluetoothctl。进入交互模式后,依次执行:
power on
agent on
default-agent
scan on
pair <MAC>
trust <MAC>
connect <MAC>
逐条解释一下:
pair 时可能会报 “No agent available”。XX:XX:XX:XX:XX:XX 的 MAC 地址和设备名。Connection successful。我使用的是纽曼的蓝牙音箱,蓝牙控制台的输出大概是这样的:

当出现“成功配对并已连接”时,说明音频链路已建立。
安装轻量级播放器:
sudo apt install mpg123
执行播放:
mpg123 hello_tuya.mp3
运行时终端显示:
(base) lzcbox-029c588e ~ # mpg123 hello_tuya.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
version 1.31.2; written and copyright by Michael Hipp and others
free software (LGPL) without any warranty but with best wishes
Terminal control enabled, press 'h' for listing of keys and functions.
Playing MPEG stream 1 of 1: hello_tuya.mp3 ...
> 01+97 00:00.00+00:03.45 --- 100=100 8 kb/s 36 B acc 0 clip p+0.000
MPEG 2.0 L III vbr 16000 mono
[0:03] Decoding of hello_tuya.mp3 finished.
这时候音箱就能播放我们加载的 MP3 文件了。

最终可以整理成如下最小命令集:
# 1. 安装依赖
sudo apt install -y bluez bluez-tools pulseaudio-module-bluetooth libspa-0.2-bluetooth
# 2. 重启蓝牙服务
sudo systemctl restart bluetooth
# 3. 进入蓝牙控制台做配对
bluetoothctl
# power on
# agent on
# default-agent
# scan on
# pair <MAC>
# trust <MAC>
# connect <MAC>
# 4. 测试播放
sudo apt install -y mpg123
mpg123 hello_tuya.mp3
连接失败(br-connection-page-timeout)
有时候会报类似:
Failed to connect: org.bluez.Error.Failed br-connection-page-timeout
这个大概率是音箱没进入配对模式,或者离设备太远。解决方法就是:重置音箱 → 靠近设备 → 再连。
开机自启
懒猫微服重启后可能蓝牙 sink 不会自动挂载,你需要写个 systemd 服务,启动时执行 bluetoothctl connect <MAC>。
容器化方案
如果想更整洁,可以拉个容器专门跑音乐服务,把 mp3 拉进去播放,或者跑个 MPD(Music Player Daemon)+ ncmpcpp。这样甚至可以做一个“云端点歌机”。
其实做到这一步后,懒猫微服就具备了一个“音频推送中转站”的能力。未来可以玩出很多花样:
mpg123 http://... 直接播放网络电台。懒猫微服虽然定位是轻量 NAS/微服务平台,但它的硬件能力其实远比我们想象的要强。今天这一折腾,我把它变成了一个“小型蓝牙音频播放器”。这种玩法对技术宅来说挺有意思:你既能学到 Linux 蓝牙栈和音频服务的原理,又能把手头的小盒子改造成一个实用的设备。
评论
3如果遇到这种情况: ``` [bluetooth]# connect 20:64:DE:87:CA:4A Attempting to connect to 20:64:DE:87:CA:4A Failed to connect: org.bluez.Error.Failed br-connection-profile-unavailable ``` 可以试试启动 pulseaudio(如果没有,那就去安装文中提到的 pulseaudio-module-bluetooth) ``` # pulseaudio --start W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified). # bluetoothctl connect 20:64:DE:87:CA:4A Attempting to connect to 20:64:DE:87:CA:4A [CHG] Device 20:64:DE:87:CA:4A Connected: yes [NEW] Endpoint /org/bluez/hci0/dev_20_64_DE_87_CA_4A/sep1 [NEW] Endpoint /org/bluez/hci0/dev_20_64_DE_87_CA_4A/sep2 [NEW] Transport /org/bluez/hci0/dev_20_64_DE_87_CA_4A/sep1/fd1 Connection successful ```
想问个需求,就是家里的小爱音箱可以连微服然后调用算力舱中的模型进行对话吗?
可以刷open-xiaoai,ai调用需要开发