このALSAプロファイルがPCMデバイスのリストでaplayとrecordを防ぐのはなぜですか?

このALSAプロファイルがPCMデバイスのリストでaplayとrecordを防ぐのはなぜですか?

私の組み込みシステムには次の設定ファイルがあります/etc/asound.conf

pcm_slave.sl2 {
        pcm "hw:0,0"
        rate 48000
        channels 2
        format S16_LE
}

pcm.rate_convert {
        type plug
        slave sl2
}

pcm.!default rate_convert

ファイルがシステムに配置されたため、PCM デバイスがリストされなくなったことaplay -Lがわかりました。代わりに期待どおりに動作します。arecord -Laplay -larecord -l

ファイルがここに配置されない場合、リストは正しく返されます。これは正確に何をするのですか?なぜPCMデバイスがaplay表示されないのですか?arecord

答え1

拡張ウラジミールの答え、私のファイル/etc/asound.confに具体的に以下を設定しました。

defaults.namehint.showall on
defaults.namehint.extended on

または、hintカスタムPCMコントロールユニットに以下を追加します。

pcm.rate_convert {
        # snip
        hint.description "Describe your device here"
}

これに関するドキュメントが見つかりませんでしたが、例を見つけることができます。

  • alsa.confあなたのシステムに(私にあります/usr/share/alsa/alsa.conf
  • alsa.conf内部にalsa GitHubリポジトリ

答え2

ファイルのとがdefaults.namehint.showallondefaults.namehint.extendedに設定されていることを確認してください/usr/share/alsa/alsa.conf

答え3

からman aplay

  -l, --list-devices
          List all soundcards and digital audio devices

   -L, --list-pcms
          List all PCMs defined

ALSA Wikiから:

PCMデバイスは抽象サウンドカードに似ています。ハードウェアデバイスでもPCMプラグインレイヤデバイスでもかまいません。詳細については、alsa-libのドキュメントを参照してください。この抽象化レイヤーの使い方については、.asoundrcとdmixのページをご覧ください。

.asoundrc は、システムフォルダ /etc/asound.conf ではなく、ユーザのホームフォルダで使用される ALSA 設定ファイルです。これらのファイルはすべてPCMを再構成できます。
https://alsa.opensrc.org/Asoundrc

関連情報