tinymix 是一个非常实用的命令行工具,主要用于在 ALSA (Advanced Linux Sound Architecture) 音频系统上进行调试和配置,它尤其适用于嵌入式系统、物联网设备或任何使用 ALSA 驱动的 Linux 环境,因为它轻量、直接,并且不需要复杂的图形界面。

什么是 tinymix?
tinymix 是 ALSA-utils 软件包的一部分,它允许用户直接与 ALSA 的 PCM(数字音频)和 Mixer(混音器)设备进行交互,你可以用它来:
- 查看 音频设备中有多少个控制项(如音量、开关、增益等)。
- 获取 某个控制项的当前值。
- 设置 某个控制项的值。
- 列出 所有控制项的名称和当前值。
前提条件
在使用 tinymix 之前,你的系统必须已经安装了 ALSA 和 tinymix。
-
在 Debian/Ubuntu 系统上:
sudo apt-get update sudo apt-get install alsa-utils
tinymix包含在alsa-utils包中。
(图片来源网络,侵删) -
在 Yocto/嵌入式系统上:
tinymix通常是alsa-utilsrecipe 的一部分,会在构建镜像时自动包含。
基本语法
tinymix [选项] [声卡] [控制项] [值]
- 选项: 可选参数,如
-h(帮助)。 - 声卡: 目标 ALSA 声卡名称,通常是
hw:0、hw:1等,如果不指定,通常默认为hw:0。 - 控制项: 你想操作的音频控制项的名称(如
'Master','Capture','Headphone')。 - 值: 你想设置的值(对于开关通常是 0/1,对于音量通常是 0-100)。
常用命令详解
查看所有可用控制项
这是最常用的命令,它列出了指定声卡上所有可以调节的音频控制项。
语法:
tinymix [声卡]
示例:

# 查看默认声卡 (通常是 hw:0) 的所有控制项 tinymix # 查看 hw:1 声卡的所有控制项 tinymix hw:1
输出示例:
num controls = 28
Control 0: 'Master' [Capture 0 0] [1 0 1] [0 1]
Control 1: 'Headphone' [Capture 0 0] [1 0 1] [0 1]
Control 2: 'Speaker' [Capture 0 0] [1 0 1] [0 1]
Control 3: 'PCM' [Capture 0 0] [0 255 255] [0 255]
Control 4: 'LineIn' [Capture 0 0] [1 0 1] [0 1]
Control 5: 'Mic' [Capture 0 0] [1 0 1] [0 1]
...
输出解读:
num controls = 28: 总共有 28 个控制项。Control 0: 'Master': 控制项的名称是Master。[Capture 0 0]: 控制项的类型(这里是 Capture,表示输入/录音)。[1 0 1]: 控制项的取值范围(最小值, 步进值, 最大值),对于开关,通常是0 1 1。[0 1]: 当前值,对于开关,0是关,1是开,对于音量,0是静音,1是音量最大。
查看特定控制项的当前值
如果你想快速了解某个控制项(如耳机音量)的当前状态。
语法:
tinymix [声卡] [控制项名称]
示例:
# 查看 'Master' 音量 tinymix Master # 查看 'Headphone' 的开关状态 tinymix Headphone
输出示例:
# 'Master' 的输出
Master: 255
# 'Headphone' 的输出
Headphone: 1
设置控制项的值
这是 tinymix 最强大的功能,可以直接在命令行调节音频。
语法:
tinymix [声卡] [控制项名称] [新值]
示例:
# 将 'Master' 音量设置为 128 (范围通常是 0-255) tinymix Master 128 # 将 'Speaker' 开关关闭 (0=关, 1=开) tinymix Speaker 0 # 将 'PCM' 音量设置为最大值 (根据上面的列表,最大值是 255) tinymix PCM 255
查看帮助信息
如果你忘记了命令的用法,可以随时查看帮助。
语法:
tinymix -h
实际应用场景
假设你正在调试一块树莓派或者一个自定义的嵌入式板子,你想通过命令行控制声音。
-
列出所有音频控制:
tinymix
你可能会看到
'Speaker','Headphone','LineIn','Mic'等控制项。 -
测试扬声器:
- 先确保扬声器开关是打开的:
tinymix Speaker 1
- 然后设置一个适中的音量:
tinymix PCM 180
- 播放一首音乐,听听声音是否正常。
- 先确保扬声器开关是打开的:
-
测试耳机:
- 关闭扬声器,避免啸叫:
tinymix Speaker 0
- 打开耳机输出:
tinymix Headphone 1
- 插入耳机,播放音乐,确认声音从耳机输出。
- 关闭扬声器,避免啸叫:
-
调整麦克风增益:
- 首先找到麦克风相关的控制项名称(可能是
'Mic','Mic Gain','ADC Gain'等)。tinymic Mic
- 假设输出是
Mic: 0,范围是0 1 3,你可以尝试增加增益:tinymix Mic 2
- 然后使用
arecord命令录制一段音频来测试效果:arecord -f cd -d 5 test_microphone.wav
- 首先找到麦克风相关的控制项名称(可能是
重要提示
-
权限问题: 在大多数系统上,调节音量需要普通用户权限,但如果
tinymix提示权限错误,你可能需要使用sudo,或者将你的用户添加到audio组中。# 将当前用户添加到 audio 组 (永久生效) sudo usermod -a -G audio $USER # 需要重新登录才能生效
-
控制项名称: 控制项的名称因硬件(声卡芯片)和驱动而异。
tinymix的第一步永远是tinymix(不带任何参数)来列出你设备上实际的控制项名称。 不要直接复制粘贴别人的命令,因为他们的设备可能和你完全不同。 -
值范围: 在设置值之前,先用
tinymix [控制项]查看它的取值范围,避免设置无效值。
tinymix 是 ALSA 音频调试的“瑞士军刀”,它简单、直接、功能强大,是嵌入式开发者、系统管理员和任何需要精细控制 Linux 音频的用户的必备工具,掌握 tinymix,你就能在无图形界面的环境中游刃有余地管理声音。
