我有一台 HP Elitebook 840 G5,并使用 Ultraslim 扩展坞。如果我自行启动笔记本电脑,而不连接到扩展坞,一切都很好。我可以毫无问题地对接和断开对接。
如果我在盖子关闭的情况下重新启动/打开连接到工作站的笔记本电脑,则笔记本电脑显示屏 (eDP1) 没有与之关联的模式,并且您无法使用 xrandr 打开显示屏或断开笔记本电脑的连接。我正在使用英特尔驱动程序,但也尝试了模式设置驱动程序,结果基本相同。
我还尝试过内核 5.4 和 5.9 以及 5.10。
对接时启动时,xrandr 会为笔记本电脑显示屏输出以下内容 -
Output eDP1 is not disconnected but has no modes.
我尝试使用以下内容在 xorg 中创建必要的 10-monitor.conf 部分(从 live cd 的 Xorg 模式集输出收集,因为 Manjaro 上的 Xorg 不输出此内容)-
Section "Monitor"
Identifier "eDP1"
Modeline "1920x1080_120.1" 280.00 1920 1944 1992 2120 1080 1090 1095 1100 -hsync -vsync
Option "PreferredMode" "1920x1080_120.1"
EndSection
这并没有帮助,即使这样,如果您尝试激活显示,xrandr 也会失败 -
xrandr: Configure crtc 1 failed
启动对接时,我还可以在 dmesg 中看到此消息 -
i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
断开连接时不会出现此情况。
xorg.0.log 文件在未连接/打开时启动时确实显示 EDID 正确加载笔记本电脑屏幕的规格,但在连接/关闭时则不会这样做。我尝试使用 get-edid 应用程序,但总是失败 -
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Looks like no busses have an EDID. Sorry!
Attempting to use the classical VBE interface
Performing real mode VBE call
Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
Function unsupported
Call failed
VBE version 0
VBE string at 0x0 "O"
VBE/DDC service about to be called
Report DDC capabilities
Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
Function unsupported
Call failed
Reading next EDID block
VBE/DDC service about to be called
Read EDID
Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function unsupported
Call failed
The EDID data should not be trusted as the VBE call failed
Error: output block unchanged
盖子状态被正确记录,因此它确实知道它是打开还是关闭。虽然启动笔记本电脑时打开并断开连接是一种解决方法,但肯定有一种方法可以让它正确检测笔记本电脑屏幕,以便在启动对接时可以将其断开?
我查看了 i915 驱动程序的内核模块选项,看看是否有一些可能有帮助的东西,但没有什么真正让我觉得有用的。
任何帮助将非常感激!