- 运行 Debian:
# uname --kernel-name --kernel-release --machine Linux 6.5.11-7-pve x86_64 # cat /proc/asound/cards 0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xfb410000 irq 98 2 [USB ]: USB-Audio - Scarlett Solo USB Focusrite Scarlett Solo USB at usb-0000:00:14.0-7, high speed
- 每次开机,声卡的顺序都会改变,即USB随机为0或2
- 如何确保每次都是默认 USB?
更新1
root@pve:/scripts# cat /etc/modprobe.d/sound/alsa.conf
# makes usb audio always index 0, needs reboot
options snd-usb-audio index=0
options snd-hda-intel index=1
root@pve:/scripts# cat /etc/asound.conf
defaults.pcm.card 2
defaults.ctl.card 2
root@pve:/scripts#
这是我目前拥有的,但 USB 仍然可能最终为 2,我必须使用/etc/asound.conf
它来将其设为默认值,而无需执行另一次重新启动,并希望它最终为 0
更新2
# cat /etc/modprobe.d/*.conf
# makes usb audio always index 0, needs reboot
#options snd-usb-audio index=0
#options snd-hda-intel index=1
# This file contains a list of modules which are not supported by Proxmox VE
# nvidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
options zfs zfs_arc_max=13488881664
编辑:从评论 #7 中显示的内容来看,OP 正在运行 proxmox 环境。因此,以下答案不太可能提供有效的解决方案。
将我的答案改编为另一个措辞不同的问题。
除非在其他 alsa 配置文件中另有指定(即
/etc/asound.conf
,$HOME/.asoundrc
),否则 alsa 默认设备被标识为card 0
。它通常是内核枚举的第一个声音设备。根据可用设备的数量及其类型(pci、usb),设备被发现并分配给某个 ID 的顺序大多是不可预测的。
如果 alsa 驱动程序构建为模块(不是内核构建),则卡 ID 关联将在初始化时延迟,并且可以指示初始化系统强制执行专用命令:
您所需要的只是编辑目录
.conf
中的某个文件/etc/modprobe.d/
。(编辑现有的,因为某些发行版附带默认值alsa-base.conf
或创建一些新的,alsa 建议alsa.conf
)并插入/修改两行,如下所示:当然,您需要确保没有其他
option
指令与这些设置冲突/优先于这些设置,这可能在许多发行版中通常更喜欢板载硬件而不是分配默认值时可能并不总是连接的外部设备。在我使用 Proxmox 产生戏剧性反应后,
我在Linux相关论坛中找到了答案, https://bbs.archlinux.org/viewtopic.php?id =224241
它涉及到有一个
/etc/modprobe.d/alsa.conf
与options snd slots=snd-usb-audio,snd-hda-intel