Ich habe einen OrangePi-PC und muss ein Alsa-Softvol-PCM einrichten, um die Lautstärke des I2S-DAC zu steuern.
Daher habe ich die folgende /etc/asound.conf erstellt
pcm.!default {
type plug
slave.pcm "softvol"
}
pcm.softvol {
type softvol
slave {
pcm "hw:1,0"
}
control {
name "SoftVol"
card 1
}
}
und hier sind die erkannten Geräte
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
Aus irgendeinem Grund bewirkt die Lautstärkeregelung mit alsamixer
nichts. Und wenn ich den Kontrollblock in der asound.conf von SoftVol
z. B. auf ändere , erscheint nach einem Neustart in alsamixer Master
kein Steuerelement mit dem Namen .Master
Mein böser Verdacht ist also, dass meine /etc/asound.conf von alsa nicht gelesen wird!
Das Betriebssystem, das ich verwende, ist Armbian -> Debian.
Ich habe einen anderen Pi (NanoPi), auf dem auch Armbian -> Debian läuft und der dieselbe Datei /etc/asound.conf verwendet, und dort funktioniert alles.
Antwort1
Der Mixer wird erst angezeigt, wenn er zum ersten Mal verwendet wird.alsa.opensrc.org:
Notiz:Die neue Lautstärkeregelung wird nicht sofort angezeigt! Erst nach der ersten Verwendung des neu definierten Geräts (z. B. mit dem obigen Befehl) sollte die
amixer controls | grep <control name>
neue Regelung angezeigt werden. Mixer, die bereits vor der ersten Verwendung gestartet wurden (z. B. KMix), müssen neu gestartet werden, damit die Änderungen übernommen werden. Wenn die neue Regelung immer noch nicht angezeigt wird, versuchen Sie, ALSA oder Ihren PC neu zu starten.
Da Ihre Konfiguration standardmäßig das Softvol-Gerät einstellt, sollte das Ausführen speaker-test
oder Abspielen aplay
einer WAV-Datei ausreichen, damit die Lautstärkeregelung angezeigt wird.