alsa softvol が amixer に表示されない

alsa softvol が amixer に表示されない

私はOrangePi PCを持っており、i2s DACボリュームを制御するためにALSA SoftVol PCMをセットアップする必要があります。

そこで私は次の/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 によって読み取られていないということです。

私が使用しているOSはArmbian -> Debianです。

同じ /etc/asound.conf を使用して Armbian -> Debian を実行している別の Pi (nanopi) があり、そこではすべて動作しています。

答え1

ミキサーは初めて使用するまで表示されません。alsa.opensrc.org:

注記:新しいボリューム コントロールはすぐには表示されません。新しく定義されたデバイス (上記のコマンドなど) を初めて使用した後にのみ、 amixer controls | grep <control name>新しいコントロールが表示されます。最初の使用前にすでに起動されていたミキサー (KMix など) は、変更を適用するために再起動する必要があります。それでも新しいコントロールが表示されない場合は、ALSA または PC を再起動してみてください。

設定によりデフォルトが softvol デバイスに設定されているため、 を実行するspeaker-testか、aplay.wav ファイルを再生するだけでボリューム コントロールが表示されます。

関連情報