永続的なALSAデバイスを使用するには?

永続的なALSAデバイスを使用するには?

フォローするこのガイド基本デバイスを次のように設定します。

次の内容で/etc/asound.confを作成します。

defaults.pcm.card 1
defaults.ctl.card 1

ところで、再起動後にALSAカード番号が確認されないという問題があります。

だから私は従うこのガイドUSBサウンドカードの名前を予測可能な名前に変更しました。本質的に次のように言います。

85-my-usb-audio.rulesに似た名前と次の内容を使用して/lib/udev/rules.d/にファイルを作成します。

DEVPATH=="/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.3/1-4.3:1.0/sound/card?", ATTR{id}="MyDev_A"

カード番号を使用していた場所でID文字列を使用するには、デバイスを使用してください。

aplay -D default:MyDev_A something.wav

それから私を次のように変更しました/etc/asound.conf

defaults.pcm.card MyDev_A
defaults.ctl.card MyDev_A

私も試しました

defaults.pcm.card "MyDev_A"
defaults.ctl.card "MyDev_A"

しかし、例えば実行するとaplayエラーが発生します。

ALSA lib conf.c:1207:(parse_value) card is not a string
ALSA lib conf.c:1887:(_snd_config_load_with_include) _toplevel_:2:0:Invalid argument
ALSA lib conf.c:3650:(config_file_open) /etc/asound.conf may be old or corrupted: consider to remove or fix it
ALSA lib conf.c:3572:(snd_config_hooks_call) function snd_config_hook_load returned error: Invalid argument
ALSA lib conf.c:4026:(snd_config_update_r) hooks failed, removing configuration
aplay: device_list:281: control open (0): Invalid argument

答え1

これは問題に対する直接的な解決策ではありませんが、これが私が先に進むことができる方法です。テキストIDを割り当てるのではなく、サウンドカードに固定のインデックス順序を設定しました。

ファイルを作成して/etc/modprobe.d/alsa.conf入れました。

blacklist snd_bcm2835
blacklist snd_soc_hdmi_codec
options snd-usb-audio index=0,1 vid=0x1415,0x0d8c pid=0x2000,0x000c

このoptions行は、モジュールが処理するすべてのサウンドカードのインデックスを設定しますsnd_usb_audio

options snd slotsインデックスはゼロから始まる必要がありますが、esとesがどのように連携するのかわかりませんでしindexblacklist

関連情報