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

我正在尝试在台式机和笔记本电脑之间共享同一台显示器。我有一个KVM。将共享显示器从台式机切换到笔记本电脑可以正常工作;从笔记本电脑切换到台式机的另一种方法是随机运行大约30%-50%的时间。

我发现一些人也有类似的问题,但没有明确的解决方案。

这里有一些更多细节。

硬件:

  • 具有Asus Z170-K主板和图形芯片组MesaIntel®HD Graphics 530(SKL GT2)的Linux桌面(Ubuntu 20.04)
  • 运行Windows 10的DELL笔记本电脑,带有DP到DVI加密狗。
  • 带有DVI和VGA输入的DELL监视器2001FP,用于纵向模式。
  • 通过HDMI连接到Linux桌面的电视
  • Bowu EL-21UHB 2端口USB KVM切换器,视频为DVI,仅通过与每台PC的单个USB链接供电。同一产品以相同的型号名称销售但品牌不同

当我将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输出,因为它没有输出。

我尝试通过xrandr命令打开和关闭DVI输出(标记为“ HDMI-1”),但这没有任何效果。

我尝试在sudo的bash外壳中向/ 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。听起来,共享鼠标和键盘的最佳解决方案就是屏障。

但是,仍然有关于KVM切换可能出现问题的想法吗?

顺便说一句,我发现如果我只想使用显示器的DVI输入,则在向Windows 10笔记本电脑添加第二个虚拟显示器或幽灵显示器时会遇到问题。而且该解决方案可能是在其中添加了DP至VGA加密狗,而没有任何其他VGA电缆,从而诱使Windows 10允许幽灵监视器。

提前致谢, 埃里克