我有一台 orangepi 电脑,需要设置一个 alsa softvol pcm 来控制 i2s dac 音量。
因此我创建了以下 /etc/asound.conf
pcm.!default {
type plug
slave.pcm "softvol"
}
pcm.softvol {
type softvol
slave {
pcm "hw:1,0"
}
control {
name "SoftVol"
card 1
}
}
以下是检测到的设备
root@orangepipcplus:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: snddaudio [snddaudio], device 0: SUNXI-TDM0 snddaudio-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
由于某种原因,使用 控制音量alsamixer
没有任何效果。如果我将 asound.conf 中的控制块从 更改为SoftVol
例如,重启后 alsamixer 中Master
不会出现名称为 的控件。Master
所以我严重怀疑我的 /etc/asound.conf 没有被 alsa 读取!
我使用的操作系统是 Armbian -> Debian。
我有另一个 pi(nanopi),也运行 Armbian -> Debian,使用相同的 /etc/asound.conf,并且一切正常。
答案1
混频器在第一次使用前不会显示。alsa.opensrc.org:
笔记:新的音量控制不会立即出现!只有在首次使用新定义的设备(例如使用上述命令)后,才会
amixer controls | grep <control name>
显示您的新控制。首次使用前已启动的混音器(如 KMix)必须重新启动才能应用更改。如果您仍然没有看到新的控制,请尝试重新启动 ALSA 或您的 PC。
由于您的配置将默认设置为 softvol 设备,因此运行speaker-test
或使用aplay
播放 .wav 文件就足以使音量控制出现。