OpenWrt 声卡支持总结(含CPU探测)
🧩 目标
在 OpenWrt 系统中识别并使用主板板载声卡,并支持 Docker 访问。
✅ 详细步骤
1. 探测CPU类型
确认CPU型号及架构,有助于判断驱动兼容性:
cat /proc/cpuinfo
该命令输出CPU型号、核心数、架构、特性等信息,例如 Intel i3-6100U:
processor : 0
vendor_id : GenuineIntel
model name : Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz
...
2. 确认声卡是否被识别
cat /proc/asound/cards
如果显示 --- no soundcards ---
,说明声卡未被识别。
3. 安装必要驱动模块
opkg update
opkg install kmod-sound-core kmod-sound-hda-core kmod-sound-hda-intel alsa-utils
4. 检查内核日志确认驱动加载
dmesg | grep -i snd
或
dmesg | grep -i audio
5. 确认设备节点存在
ls /dev/snd
应看到类似:
controlC0 hwC0D0 pcmC0D0p timer ...
6. 再次确认声卡识别
cat /proc/asound/cards
正常时显示:
0 [PCH]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xdf320000 irq 131
7. 测试音频播放
使用 alsa-utils
工具:
speaker-test -t sine -f 1000 -c 2
或播放 WAV 文件:
aplay test.wav
🐳 Docker中使用声卡
1. 运行容器并挂载声卡设备
docker run -it --rm \
--device /dev/snd \
-v /dev/snd:/dev/snd \
debian bash
2. 容器内安装并测试
apt update && apt install alsa-utils -y
speaker-test -t sine -f 1000 -c 2
🛠️ 备注和建议
- CPU型号和架构决定可用驱动和编译选项;
- 驱动模块是否加载是关键,尤其是
kmod-sound-hda-intel
; /dev/snd
设备节点是音频访问的接口;- Docker使用时需映射
/dev/snd
并保持权限; - 可以用
/etc/asound.conf
定义默认音频设备;
🎉 结语
本次你已成功:
- 确认CPU型号(Intel i3-6100U);
- 安装并加载声卡驱动模块;
- 识别并启用板载Intel HDA声卡;
- 在宿主及Docker容器中实现声卡设备访问。
如需后续语音播报、TTS、自动播放脚本等,我可以继续帮忙。