首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用机载声音,以便我可以使用ASUS Strix Soar作为默认声卡

禁用机载声音,以便我可以使用ASUS Strix Soar作为默认声卡
EN

Unix & Linux用户
提问于 2021-03-17 09:51:27
回答 1查看 998关注 0票数 0

Pulse音频谋杀了我最后一张Audigy 2声卡,它之所以这么做,是因为它不断地将PCM转换到声卡上的最大音量,而且每次我切换音频应用程序时,它都会自动改变音频级别--例如从Firefox youtube视频切换到大胆的音频应用程序。不管怎么说,这是一张旧卡片,帽子都干了,但把音量调高是棺材里的最后一根钉子,最后听起来就像埃里克·卡特曼( Eric )把它放成长号一样。然后,一些线路的一边的音频熄灭,声音质量开始在所有其他的输出。我已经摆脱了脉冲音频,这样就不会重复,我也不会再使用脉冲音频了。

我最近买了华硕Strix Soar 7.1声卡。它是由ALSA检测的当且仅当里特克星上的声卡是启用的。如果在系统UEFI中禁用了机载声音,则不会检测到任何声卡。华硕Strix是一种基于USB的声卡,位于PCIe电路板上。我已经测试过它,它的工作很好,听起来合理,当我告诉大胆地使用PCM从那个卡。但是许多应用程序都希望使用默认的声卡,这将不可避免地成为第一个声音设备。

如果我黑名单上所有的内核模块上的声音,然后阿尔萨停止检测我的Strix Soar和它报告“没有混频器设备”,不会打开任何声音控制。当我在BIOS中禁用它时也会发生同样的情况;ALSA没有检测到它。

我也有一个NVidia显卡,这需要通过HDMI输出声音,这试图成为默认的声卡。

我已经阻止HDMI输出成为默认配置,配置如下:

代码语言:javascript
复制
options snd_hda_intel index=3 model=auto

/etc/modprobe.d/alsa-base.conf中,这会将hdmi输出移到卡3,这样它就在列表的后面,永远不会成为默认的声卡。万岁!

但是现在realtek声卡被列为第一个设备。我不知道realtek声卡的内核模块是什么,所以我不能移动它。

当我做一个lspci -k \ grep -A2音频时,我会得到以下内容:

代码语言:javascript
复制
09:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
        Subsystem: ASUSTeK Computer Inc. GK208 HDMI/DP Audio Controller
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
--
0b:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller
        Subsystem: ASUSTeK Computer Inc. Family 17h (Models 00h-0fh) HD Audio Controller
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

当我做了一个lsmod \ grep snd时,我得到:

代码语言:javascript
复制
snd_hda_codec_hdmi     61440  1
snd_hda_codec_generic    86016  1
snd_usb_audio         262144  1
snd_hda_intel          49152  1
snd_usbmidi_lib        36864  1 snd_usb_audio
snd_hda_codec         151552  3 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel
snd_rawmidi            40960  1 snd_usbmidi_lib
snd_seq_device         16384  1 snd_rawmidi
snd_hda_core           94208  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep              16384  2 snd_usb_audio,snd_hda_codec
snd_pcm               114688  5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
snd_timer              36864  1 snd_pcm
snd                    94208  15 snd_hda_codec_generic,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,snd_pcm,snd_rawmidi
soundcore              16384  1 snd
usbcore               294912  5 xhci_hcd,snd_usb_audio,usbhid,snd_usbmidi_lib,xhci_pci

播放-l的输出是:

代码语言:javascript
复制
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 0: Generic Analog [Generic Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 1: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CARD [STRIX SOUND CARD], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CARD [STRIX SOUND CARD], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CARD [STRIX SOUND CARD], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

概述:

  1. 当前检测到的车载音频是第一个声卡。
  2. 如果不禁用我的Strix Soar,我就不能禁用车载声音。
  3. 如果不禁用我的Strix,我就无法将机载健全的内核模块列入黑名单。
  4. 我无法确定在alsa-base.conf中需要哪些内核模块来将realtek声卡从默认状态移开。

我想做的事:

我想要做的是,要么禁用车载音频,要么将其从默认声音设备中清除,这样我的Strix Soar就是默认的声卡。但我不知道这个核心模块是什么。

有没有办法找出内核模块是什么,这样我就可以移动它了吗?或者以某种方式在不禁用Strix Soar的情况下禁用车载音频?

我不可能是唯一有这个问题的人。

编辑感谢Nik所接受的答案,它使我走上了正确的道路,解决方案是将/etc/modprobe.d/alsa-base.conf改为read:

代码语言:javascript
复制
options snd_usb_audio index=0 model=auto
options snd_hda_intel index=3 model=auto
options snd_hda_intel index=4 model=auto

这个解决了所有的问题。斯特里克斯现在是第一名。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-03-24 23:39:48

车载Realtek和NVidia GPU都使用模块snd_hda_intel,而您想要的设备默认使用snd_usb_audio模块。

slots选项可以修复卡片顺序,以便snd_usb_audio获得第一个插槽(卡片0)。

编辑/etc/modprobe.d/alsa-base.conf并将问题中添加的选项替换为:

代码语言:javascript
复制
options snd slots=snd_usb_audio,snd_hda_intel

高级Linux声音体系结构-模块自动测试支持Linux内核文档

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/639700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档