snd_hda_intel 0000:00:1f.3:无法添加 i915 组件主控(-19)

snd_hda_intel 0000:00:1f.3:无法添加 i915 组件主控(-19)

问题:

  1. 什么是 i915 组件主控?
  2. 添加 i915 组件主控失败会导致什么结果?
  3. 我该如何解决/删除此失败通知?

背景信息:

此故障通知在 Ubuntu 10.5 启动和关闭时出现。
我构建的 Ubuntu 10.5 操作系统由 ASUS Z170M-Plus 主板、NVidea 显卡组成,使用 Linux 内核 4.2.0-16-generic 和 Nvidia 二进制驱动程序 352.55。

我很惊讶出现这个故障通知,因为 Ubuntu 可以运行,我可以观看和收听视频和音乐。

snd_hda_intel似乎是 Linux 内核中的英特尔音频驱动程序,用于与 ALSA 内核核心和 z170M-Plus 音频硬件控制器进行通信。如果我错了,请纠正我。

0000:00:1f.3是华硕主板内置音频设备的PCIe插槽。

0000:00:1f.3华硕音频设备:英特尔公司 Sunrise Point-H HD Audio(修订版 31)。它使用

Subsystem: ASUSTeK Computer Inc. Device 86c7
Flags: bus master, fast devsel, latency 32, IRQ 125
Memory at f7140000 (64-bit, non-prefetchable) [size=16K]
Memory at f7120000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [50] Power Management version 3
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: snd_hda_intel

答案1

我找到了这个:http://www.starmate.fr/i915-component-master/(法语)

它看起来像是华硕主板的一个激活的 BIOS 选项。

高级 -> 高级 \ 系统代理 (SA) 配置 -> 图形配置 > 多 GPU 专用监视器

它帮我解决了这个问题;)

答案2

HDMI 和 DisplayPort 显示连接器可以传输音频和视频。由于您使用的是 NVidia GPU,因此 CPU 的内置 Intel iGPU 可能被禁用,或者至少没有连接到它的显示器。

英特尔芯片组在音频芯片和 iGPU 之间建立了链接,以便 iGPU 的 HDMI/DisplayPort 显示连接器输出音频芯片产生的音频。系统固件元数据告诉 HD Audio 驱动程序需要此链接。但由于 iGPU 未被使用,驱动程序尝试激活此链接将失败,并failed to add i915 component master会出现错误消息。

音频芯片的其余部分可以正常工作,只是无法通过连接到 iGPU 的 HDMI/DisplayPort 连接器获得音频(您可能根本不会使用它)。只有当您尝试在多显示器设置中除了 NVidia GPU 之外还使用 iGPU 时,此消息才有意义。想要通过 HDMI 或 DisplayPort 将音频输出到连接到 iGPU 的显示器的扬声器。

您的 NVidia GPU 可能具有第二与其集成的 HD-Audio 声音芯片,将在连接到 NVidia GPU 的 HDMI/DisplayPort 连接器上输出音频。如果您在常用的 ALSA 音频驱动程序上使用 Pulseaudio,它可以非常透明地处理这个问题,因此您可以随意混合和匹配音频输出。如果您使用的是普通的 ALSA 音频驱动程序并希望通过 HDMI 或 DisplayPort 输出音频,则需要告诉音频制作软件使用第二个 HD-Audio 芯片而不是默认芯片。

如果您有兴趣,输出此消息的函数位于snd_hdac_i915_init() in file .../sound/hda/hdac_i9i5.cLinux 内核源代码包中。

答案3

环境IGPU 多显示器已启用在我的 BIOS 设置中的图形部分中,这个问题已经帮我修复了。

造成这种情况的原因是 NVidia 自定义驱动程序。它与我主板上集成的显卡有某种冲突。

答案4

虽然这是一个老问题,但我最近在尝试让 HDMI 音频与基于 Intel Z370 的系统(配备 i3-8100 的 AsRock Z3​​70M-ITX/ac 主板)上的内置视频端口配合使用时遇到并解决了类似的问题。该系统仅具有内置视频,没有 GPU 卡。

我在启动时看到的错误是:

snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)

进一步,我两次看到以下错误:

snd_hda_codec_hdmi hdaudioC0D2: No i915 binding for Intel HDMI/DP codec

嵌入式 i915 视频似乎运行良好,但无论我使用什么 ALSA 或 PulseAudio 设置,都没有声音被传送到 HDMI 端口。

-19 是内核错误代码ENODEV(“没有这样的设备”),它在 snd_hda_intel 驱动程序代码中出现过几次。

为了支持通过 HDMI 输出声音,Linux 的视频驱动程序会注册一个“音频组件”,供声卡驱动程序(在我的情况下是 Intel HD Audio 又名snd_hda_intel)连接。一旦建立此连接,声音硬件就可以为 GPU 生成音频流,以将其多路复用到 HDMI 电缆上。

就我而言,i915 显卡驱动程序未向内核注册此音频组件。此故障可能发生在加载和初始化 i915 显卡驱动程序的各个阶段。对我来说,这是由于缺少内核模式设置 (KMS) 造成的。i915 驱动程序需要 KMS 才能正常运行,如果未启用 KMS,它将无法初始化和注册所需的音频组件。

我通过添加以下行来解决这个问题/etc/modprobe.d/modesetting.conf

options i915 modeset=1

相关内容