【独家方案】尝试解决核显直通的声音输出问题 |
您所在的位置:网站首页 › 显卡hdmi输出音频 › 【独家方案】尝试解决核显直通的声音输出问题 |
长话短说,最近我有一些尝试,主要研究 11 代及之后的核显[1],在 Proxmox VE 直通后,声音如何输出。涉及设备:彻视 i3-1125G4 QS 软路由,尔英 i7-11800H ES mATX 主板,天邦 i9-13900HK ES ITX 主板。 在默认情况下,以上设备的情况是: 彻视 i3-1125G4 ES (QS) 3.5 英寸软路由:核显正常直通直出,声音随核显 HDMI 输出;尔英 i7-11800H ES mATX 主板:核显正常直通直出,HDMI 无声音,显示未接入喇叭;天邦 i9-13900HK ES ITX 主板:核显正常直通直出,HDMI 无声音,显示未接入喇叭。经过研究,当前的进展是: 尔英 i7-11800H ES mATX 主板:成功实现声音随核显 HDMI 输出;天邦 i9-13900HK ES ITX 主板:未能实现,但可通过主板音频接口输出声音。首先,无论哪个设备,核显都位于 0000:00:02.0 路径,而核显的音频位于 0000:00:1f.3 路径: 根据以上路径,直通配置如下: /etc/default/grub GRUB_DEFAULT=0 GRUB_TIMEOUT=2 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/etc/modules vfio vfio_iommu_type1 vfio_pci vfio_virqfd/etc/modprobe.d/pve-blacklist.conf blacklist snd_hda_intel blacklist snd_hda_codec_hdmi blacklist i915/etc/modprobe.d/vfio.conf options vfio-pci disable_vga=1以上配置需要应用后重启生效。 update-grub update-initramfs -u -k all重启后核显将停止输出画面,直到核显虚拟机开机并装完驱动才恢复。 网上有其它教程认为无需 options vfio-pci disable_vga=1 从而使核显无缝输出画面,但在我的三台设备上,都必须加入上述参数才能正常直通并直出。你可以根据实际情况决定是否 disable_vga 。 /etc/pve/qemu-server/120.conf ( 只列出与核显直通相关的设定 ) args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 bios: ovmf hostpci0: 0000:00:02.0,legacy-igd=1,romfile=AIO.rom hostpci1: 0000:00:1f.3 vga: none虚拟机启动前,确保 /usr/share/kvm/AIO.rom 存在,此文件是核显启动必需的 OpROM ( 下载链接 ) 。 另外,由于核显虚拟机驱动需要通过远程协助安装,建议先不做核显直通,待虚拟机 Win10 / Win11 系统装好,安装了 virtio 驱动后,再将 vga 设置为 none ,加入上述核显直通的配置,从而远程连接装驱动。 注意:装核显驱动时,可能需要使用旧版 ( 如 3790 ) ,而新版驱动有可能错误代码 43 。 详情请参考此文的最后部分:kyupi:完全体的全能主机,大小核的终极方案 - 2.系统篇 现在假设你已实现核显直通,并通过 HDMI 点亮屏幕,能正常使用,但是没声音,提示喇叭未插入。接下来,尝试通过 BIOS 调整 iDisplay 音频链路频率和周期。 关闭虚拟机,重启宿主机,进入 BIOS ,定位到【Chipset】-【PCH-IO Configuration】-【HD Audio Configuration】-【HD Audio Advanced Configuration】。 进入后,检查和修改以下三个项目: 【iDisplay Audio Disconnect】应为【Disabled】,这一项如开启,则 HDMI 的音频有可能断开连接。【iDisplay Audio Link Frequency】是链路频率,如频率与目标设备不兼容也会断开,我这 48MHz 可用。【iDisplay Audio Link T-Mode】是音频的链路周期,同上,我这 4T Mode 可用。F10 保存退出即完成。 上述方法在 i7-11800H ES 主板上亲测有效,成功将核显虚拟机的声音随 HDMI 输出到显示器。注意:应根据具体目标设备调整链路频率和周期。 理论上,上述方法也适用于其它 11-14 代主板。可是,在天邦 i9-13900HK ES ITX 主板,方法 (1) 的选项被隐藏,我尝试通过 EFI Shell 调节 UEFI Variables 也提示写保护 ( 已事先在 BIOS 中关闭了相关锁定但无效 ) 。 因暂时未发现更好的方案,我决定先使用主板的 Realtek 音频控制器输出声音。但是,宿主机距屏幕较远,不便直接连接 3.5mm 音频线,所以我购买了两根 3.5mm to RJ45 转接线,将主板后置音频接口通过网线延长。 延长后,核显虚拟机的声音顺利输出。从 VID 可以看出,这是 Realtek 的音频控制器: 10EC 是 Realtek 的厂商代码进一步地,如果你需要将 Realtek 的声音由 HDMI 输出,可以购买 HDMI 音频合成器: 按红字接线当然,以上方案不够完美,还是应该想办法在 BIOS 更改 iDisplay 音频链路设定。 如有新的研究成果,我将更新在本文。 参考^Gen9.5 及之前的核显,因为可采用 Seabios 的传统引导,基本不存在声音输出的问题 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |