当我运行这个命令时,我得到了 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
或者如果已定义默认配置,则调整现有配置。