【问题标题】:Making Jack work with Alsa on Raspberry让 Jack 在 Raspberry 上与 Alsa 合作
【发布时间】:2026-01-20 03:15:01
【问题描述】:

我有一个可以工作的 Raspberry Pi 3B。 操作系统是 Raspbian Stretch。

默认板载 Broadcom 音频已禁用。

USB SoundBlasterG1 声卡已插入并配置为 hw:0

nano /etc/asound.conf

pcm.!默认{ 类型插头 奴隶 { pcm“硬件:0” } }

ctl.!default { 输入硬件 卡 0 }

我可以像这样使用 aplay 播放 wav 声音文件

> aplay hello.wav

播放 WAVE 'hello.wav':有符号 16 位 Little Endian,速率 16000 Hz,单声道

我可以像这样使用 arecord 来录制 wav 声音文件

> arecord foo.wav

录制 WAVE 'foo.wav':无符号 8 位,速率 8000 Hz,单声道

我可以像这样运行 Jack 服务器

> jackd -d alsa

正在加载驱动程序..
创建 alsa 驱动程序 ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
配置为 48000Hz,周期 = 1024 帧 (21.3 ms),缓冲区 = 2 个周期
ALSA:最终选择的捕获样本格式:16bit little-endian
ALSA:使用 2 个句点进行捕获
ALSA:最终选择的播放样本格式:16bit little-endian
ALSA:使用 2 个句点播放

但是杰克似乎没有从麦克风捕捉到任何信号:

如果我跑

> jackd -v -d alsa

我得到以下附加输出

新缓冲区大小 1024
调整类型 0 的端口缓冲区段大小,一个缓冲区 = 4096 字节
调整类型 1 的端口缓冲区段的大小,一个缓冲区 = 2048 字节
注册端口系统:capture_1,偏移量 = 4096
注册端口系统:capture_2,offset = 8192
注册端口系统:playback_1, offset = 0
注册端口系统:playback_2,offset = 0
++ jack_sort_graph
++ jack_rechain_graph():
-- jack_rechain_graph()
-- jack_sort_graph
1160 等待信号
负载 = 0.0452 最大使用:21.000,备用 = 23198.000
负载 = 0.0678 最大使用次数:21.000,备用 = 23198.000
负载 = 0.0791 最大使用次数:21.000,备用 = 23198.000
(..等)

我需要什么设置 Jack 以使用 Raspberry PI 上的 ALSA 驱动程序从我的 USB 声卡麦克风捕获数据。

【问题讨论】:

    标签: raspberry-pi alsa jack


    【解决方案1】:

    使用 Jack,采集和回放端口不会自动连接。

    可以通过 UI 应用 qjackctl 或使用 jack_connect 通过 cli 连接端口。

    Qjackctl 包通常被列为 jackd 的依赖项,jack_connect 脚本与 jackd 捆绑在一起。

    【讨论】: