将 USB 音频设备设置为默认

将 USB 音频设备设置为默认
  1. 运行 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
    
  2. 每次开机,声卡的顺序都会改变,即USB随机为0或2
  3. 如何确保每次都是默认 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

答案1

编辑:从评论 #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)并插入/修改两行,如下所示:

options snd-usb-audio index=0
options snd-hda-intel index=1

当然,您需要确保没有其他option指令与这些设置冲突/优先于这些设置,这可能在许多发行版中通常更喜欢板载硬件而不是分配默认值时可能并不总是连接的外部设备。

答案2

在我使用 Proxmox 产生戏剧性反应后,

我在Linux相关论坛找到了答案, https://bbs.archlinux.org/viewtopic.php?id=224241

它涉及到有一个/etc/modprobe.d/alsa.confoptions snd slots=snd-usb-audio,snd-hda-intel

相关内容