我正在尝试在台式机和笔记本电脑之间共享同一台显示器。我有一个 KVM。将共享显示器从台式机切换到笔记本电脑工作正常;反过来,从笔记本电脑切换到台式机大约有 30% - 50% 的时间是随机的。
我发现一些人也遇到类似的问题,但没有明确的解决方案。
以下是更多详细信息。
硬件:
- Linux 桌面(Ubuntu 20.04),配有华硕 Z170-K 主板和显卡芯片组 Mesa Intel® HD Graphics 530(SKL GT2)
- 一台运行 Windows 10 的 DELL 笔记本电脑,配有 DP 转 DVI 转接器。
- 带有 DVI 和 VGA 输入的 DELL 显示器 2001FP,以纵向模式使用。
- 通过 HDMI 连接到 Linux 桌面的电视
- Bowu EL-21UHB 2 端口 USB KVM 切换器,视频为 DVI,仅通过单个 USB 链路为每台 PC 供电。同款产品以相同型号出售,但品牌不同
当我将 KVM 从笔记本电脑切换到台式机时,如果视频切换不正确,显示器就会变暗,但似乎检测到信号或电源,因为显示器的电源 LED 为绿色,而不是琥珀色。它会在随机延迟(通常是几分钟)后最终亮起,而无需我采取任何特定措施。
尽管天黑了,xrandr 仍报告显示器已连接:
% xrandr | grep -v '^ '
Screen 0: minimum 320 x 200, current 3120 x 1600, maximum 16384 x 16384
HDMI-1 connected primary 1200x1600+1920+0 left (normal left inverted right x axis y axis) 367mm x 275mm
HDMI-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1440mm x 810mm
DP-1 disconnected (normal left inverted right x axis y axis)
我不确定为什么台式机的 DVI 输出被列为 HDMI-1,也不确定为什么它报告 DP 输出,因为它没有 DP 输出。
我尝试通过 xrandr 命令打开和关闭 DVI 输出(标记为“HDMI-1”),但没有效果。
我尝试在 sudo 的 bash shell 中向 /sys/class/drm/card0-HDMI-A-1/status 发出命令:
echo detect > /sys/class/drm/card0-HDMI-A-1/status
echo on > /sys/class/drm/card0-HDMI-A-1/status
再次没有效果。
我尝试将台式机上的 USB 2.1 端口换成 USB 3 端口。同样没有效果。
最近,有时将 KVM 切换到桌面时会出现显示器工作不正常但模式错误的现象(横向而不是纵向),通常会在一分钟内自行修复。
哦,显然,当通过 DVI 电缆直接连接到桌面时,显示器从未出现任何问题。
我查看了我的/var/log/syslog
消息。我认为唯一相关的消息是这些:
% egrep 'stride|EDID' /var/log/syslog* | sed -e 's;.*/gdm-x-session;;' | uniq -c
735 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
117 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
27 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
4 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
3 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
7 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
11 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
15 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
9 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
105 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
86 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
2 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
1206 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 2944x1080 stride
2 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
1 [77767]: (II) modeset(0): Allocate new frame buffer 3520x1200 stride
1 [77767]: (II) modeset(0): Allocate new frame buffer 3120x1600 stride
289 [77767]: (II) modeset(0): EDID vendor "DEL", prod id 40968
额外的 EDID 行来自我编写的每分钟监控 xrandr 的脚本。
syslog 中列出的 3 个帧缓冲区大小据称适用于桌面上的 2 个显示器、1920x1080 电视和 1200x1600 DELL 显示器的不同安排:
- 分配新的帧缓冲区 3120x1600 步长 = 这是正确的并排
- 分配新的帧缓冲区 3520x1200 步长 = 这是并排的,显示器处于横向模式
- 分配新的帧缓冲区 2944x1080 步长 = 这是并排的,显示器处于横向模式,分辨率较低
目前,是的,我知道一台 PC 使用显示器的 DVI 输入,另一台 PC 使用 VGA 输入应该可以。听起来共享鼠标和键盘的最佳解决方案是 Barrier。
[编辑:当 KVM 设置为桌面且显示器工作正常时,也会发生同样的事情,在预定的不活动时间过后,Ubuntu 会将屏幕变黑。鼠标或键盘活动可能无法唤醒显示器,只能将其 LED 从琥珀色变为绿色。]
但是,您是否知道 KVM 切换可能存在什么问题?
顺便说一句,我发现如果我只想使用显示器的 DVI 输入,那么在 Windows 10 笔记本电脑上添加第二个虚拟或幽灵显示器时会遇到问题。解决方案可能是为其添加一个 DP 到 VGA 适配器,除此之外无需任何 VGA 电缆,以欺骗 Windows 10 允许幽灵显示器。