Ubuntu 20.04 桌面 DVI 通过 KVM 出现问题(键盘视频鼠标)

Ubuntu 20.04 桌面 DVI 通过 KVM 出现问题(键盘视频鼠标)

我正在尝试在台式机和笔记本电脑之间共享同一台显示器。我有一个 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 允许幽灵显示器。

相关内容