PulseAudioでALSAソースのロードが開始時に失敗しましたが、PulseAudioを再起動した後は正常に機能します。

PulseAudioでALSAソースのロードが開始時に失敗しましたが、PulseAudioを再起動した後は正常に機能します。

デフォルトのソースを で定義された仮想 dsnoop デバイス (dmic_sv) に設定しようとしており、次の行を追加しました~/.asoundrc~/.config/pulse/default.pa

# Tried placing the line below both before and after `load-module module-udev-detect tsched=0`,
# but it didn't make a difference
load-module module-alsa-source device=dmic_sv

...
set-default-source alsa_input.dmic_sv

起動時にPulseAudioはdmic_svを見つけることができないため、それをロードしてデフォルトのソースに設定することはできませんが、PulseAudioを再起動すると問題が解決します。 PulseAudioがALSAの前にロードされていると思われるので、ALSAをロードした後にPulseAudioを再起動することはうまくいきますが、それを解決するための良い方法が見つかりませんでした(下のハックだけがdmic_svが出力に表示されるのを待ってからarecord -LPulseAudioを再起動します)。

while ! arecord -L | grep dmic_sv > /dev/null
do
    echo "Waiting for dmic_sv..."
    sleep 2
done
killall pulseaudio

ハッキングを使用する必要がないように正しい方法で設定するのを手伝ってくれてありがとう。

関連情報