禁用 alsa 卡

禁用 alsa 卡

当我运行这个命令时,我得到了 3 张卡:

cat /proc/asound/cards

 0 [Headphones     ]: bcm2835_headpho - bcm2835 Headphones
                      bcm2835 Headphones
 1 [vc4hdmi        ]: vc4-hdmi - vc4-hdmi
                      vc4-hdmi
 2 [sndrpihifiberry]: RPi-simple - snd_rpi_hifiberry_amp
                      snd_rpi_hifiberry_amp

我想禁用0和1,使2变成0,并永远保持为0。

我怎样才能做到这一点?

谢谢 ! :)

答案1

如果您想要实现的是(如标题中所述)禁用 alsa 声音设备,那么将其模块列入黑名单实际上是可行的方法。

但是,阅读您的问题后,我了解到您实际上对系统给出的 id 感到困扰。
您应该能够通过简单地向/etc/modprobe.d/sound文件中添加行来强制执行某些特定顺序。在你的特殊情况下,只有一个看起来像

options snd_rpi_hifiberry_amp index=0

应该足够了。

如果您的模块还管理其他两个设备(如 snd_hda-intel),您可以改为编写:

options snd_rpi_hifiberry_amp index=2,1,0

顺便说一句,如果您只是对 Alsa(默认情况下)使用设备 0 作为默认值这一事实感到困扰,请注意,您只需使用 3 行修改 $HOME/.asoundrc 或 /etc/asound.conf 即可更改此设置种类:

defaults.ctl.card 2
defaults.pcm.card 2
defaults.pcm.device 0

或者如果已定义默认配置,则调整现有配置。

相关内容