我正在尝试使用一台运行 Ubuntu 22.04 的迷你电脑(带有 Intel N95 CPU 的 Trigkey G4)作为家庭影院电脑,通过 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
行选项将其提供给内核,但这并没有明显的效果。
到目前为止,我已经尝试了在网上找到的大多数建议——将 设置20-intel.conf
为TearFree
true 没有任何效果,设置i915.alpha_support
或nomodeset
或 也没有任何效果GRUB_GFXMODE
,并且xrandr
不允许我更改模式。
我还可以尝试什么来获得流畅的视频输出?
答案1
问题出在 22.04 附带的内核不支持英特尔 N95 等较新处理器上的集成 GPU。为了解决这个问题,我linux-generic-hwe-22.04
按照建议 安装了https://askubuntu.com/a/1484943/1731290现在一切都运行良好。它甚至修复了另一个我不确定是否相关的问题,即无法检测到 HDMI 音频输出。