如何在 Ubuntu 中将设备本身而不是其内核模块列入黑名单?

如何在 Ubuntu 中将设备本身而不是其内核模块列入黑名单?

我在用Ubuntu 20.04。这台计算机有内置声卡 (PCIX),我的显示器通过 HDMI 有一个声音设备。我的音响设备连接到内置声卡,因此它比质量很差的显示器声音设备更受欢迎。

在里面音频系统设置模块我已禁用显示声音设备。当我启动 Kubuntu 时,一切正常,我的内置声卡正常工作。一段时间后,尤其是当显示器进入睡眠状态时,显示声音设备将自行重新启用,并将在系统音量控制中显示为第二个设备。当这种情况发生时,无论我做什么(我已经尝试了很多次),我的内置声卡都不会再工作,除非我重新禁用音频系统设置模块并重新启动(注销是不够的)。

我认为发生的事情是,显示器决定重新初始化它的声音设备(可能是从睡眠状态唤醒时),这反过来导致 Kubuntu 断开已禁用使用新检测到的(尽管相同)声音设备进行设置,因此默认为已启用。但我认为根本的问题是随后两个声音设备似乎共享完全相同的内核模块。

lspci -v

01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
        Subsystem: eVga.com. Corp. GP104 High Definition Audio Controller
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at df080000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
 
03:00.0 Audio device: Creative Labs Sound Core3D [Sound Blaster Recon3D / Z-Series] (rev 01)
        Subsystem: Creative Labs SB1570 SB Audigy Fx
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at df304000 (64-bit, non-prefetchable) [size=16K]
        Memory at df300000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

我对黑名单感兴趣GP104但我的有限研究表明,只有内核驱动程序可以被列入黑名单。在这种情况下,这样做会适得其反,因为它还会禁用我想要的声音设备SB1570

任何帮助,将不胜感激。

答案1

此设置中使用了一个子组件:其中一个正在使用index=0,另一个正在使用index=1。您需要设置

options snd_hda_intel index=1

(或 0)在配置文件中(/etc/modprobe.d/alsa-base.conf)。

相关内容