我正在尝试使用运行 Ubuntu 22.04 的迷你 PC(带有 Intel N95 CPU 的 Trigkey G4)作为家庭影院 PC,通过 HDMI 2.1 电缆连接到我的海信 U6G 电视。它可以连接并能够以 3840x2160 的完整分辨率显示,但播放视频时(在 VLC 和 Firefox、窗口和全屏、KDE Plasma 和 Gnome 中)会出现严重的屏幕撕裂。在尝试调试此问题时,我注意到 xrandr 提供了有关可用模式的不完整且不正确的信息:
$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 3840 x 2160, current 3840 x 2160, maximum 3840 x 2160
default connected primary 3840x2160+0+0 (0x522) normal (normal) 0mm x 0mm
Identifier: 0x521
Timestamp: 19564
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
_MUTTER_PRESENTATION_OUTPUT: 0
non-desktop: 0
supported: 0, 1
3840x2160 (0x522) 729.907MHz *current
h: width 3840 start 0 end 0 total 3840 skew 0 clock 190.08KHz
v: height 2160 start 0 end 0 total 2160 clock 88.00Hz
请注意 88.00 Hz 时钟,而该电视仅被列为支持 60 Hz。在我看来,以错误的速率发送帧可能是造成撕裂的原因似乎是合理的。另请注意缺少 EDID 信息 — 当我尝试运行时get-edid
,它失败了Couldn't find an accessible EDID on this computer.
为了排除电视本身或电缆的问题,我将它连接到我的旧笔记本电脑(也运行 Ubuntu 22.04),它可以毫无问题地显示视频而不撕裂,并且能够毫无问题地读取 EDID。我尝试复制好的 EDID 并通过命令行选项将其提供给内核drm.edid_firmware
,但这没有明显的效果。
此时,我已经尝试了我可以在网上找到的大部分建议 - 将 a20-intel.conf
设置TearFree
为 true 没有效果,设置i915.alpha_support
ornomodeset
或 也没有效果GRUB_GFXMODE
,并且xrandr
不允许我更改模式。
我还可以尝试什么来获得流畅的视频输出?
事实证明,问题在于 22.04 附带的内核不支持 Intel N95 等较新处理器上的集成 GPU。
linux-generic-hwe-22.04
为了解决这个问题,我按照 https://askubuntu.com/a/1484943/1731290中的建议安装,现在一切正常。它甚至解决了另一个我不确定是否相关的问题,即未检测到 HDMI 音频输出。