如何使用模式设置 Ubuntu 配置具有多个物理设备的虚拟显示器

如何使用模式设置 Ubuntu 配置具有多个物理设备的虚拟显示器

我有 2 个物理显示器镜像,然后有一个 VIRTUAL1 显示器作为使用 Teamviewer 进行远程控制的主要显示器。这是必要的,这样物理显示器才能保持浏览器屏幕的全尺寸,并且客户不会因为远程登录并使用 VIRTUAL 显示器进行故障排除而受到干扰。

我已按照以下说明升级到 Ubuntu Desktop 22.04.3LTShttps://ubuntu.com/download/intel-nuc-desktop。现在默认使用模式设置视频驱动程序,并且我的虚拟显示器不再起作用。

我发现的选项是禁用模式设置。我的问题是,有没有办法在有 2 个物理显示器和 1 个虚拟显示器的情况下保持模式设置?我确实有其他可用的物理端口

这是有关我的设备和驱动程序的一些信息。

Graphics:
  Device-1: Intel TigerLake-LP GT2 [Iris Xe Graphics] vendor: ASRock
    driver: i915 v: kernel ports: active: DP-1,HDMI-A-1
    empty: DP-2,DP-3,HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:9a49
    class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.4 compositor: gnome-shell v: 42.9
    driver: X: loaded: modesetting unloaded: fbdev,vesa gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 2160x3840 s-dpi: 96 s-size: 572x1016mm (22.5x40.0")
    s-diag: 1166mm (45.9")
  Monitor-1: DP-1 pos: primary,1-1 model: LG (GoldStar) Ultra HD
    serial: 259812 built: 2023 res: 2160x3840 hz: 60 dpi: 161 gamma: 1.2
    size: 340x600mm (13.4x23.6") diag: 690mm (27.2") ratio: 16:9 modes:
    max: 3840x2160 min: 640x480
  Monitor-2: HDMI-1 mapped: HDMI-A-1 pos: primary,1-1 model: ASM-156UC
    built: 2021 res: 2160x3840 hz: 60 dpi: 149 gamma: 1.2
    size: 369x620mm (14.5x24.4") diag: 685mm (27") ratio: 16:9 modes:
    max: 3840x2160 min: 720x400
  OpenGL: renderer: Mesa Intel Xe Graphics (TGL GT2)
    v: 4.6 Mesa 23.0.4-0ubuntu1~22.04.1 direct render: Yes

我能够通过启用虚拟内核模式设置(vkms)内核模块来解决我的问题。

if [ -z "$(grep vkms /etc/modules-load.d/modules.conf)" ]; then
      echo "Enable Virtual Kernal Mode Setting (VKMS) permanently"
      echo "vkms" | tee -a /etc/modules-load.d/modules.conf
    fi

    if [ -z "$(lsmod | egrep "^vkms")" ]; then
      echo "Enable Virtual Kernal Mode Setting (VKMS) for current session"
      modprobe vkms
    fi
fi

启用 vkms 内核模块后,运行 xrandr 您应该会看到虚拟显示器。然后我添加了所需的分辨率,并使用 xrandr 将虚拟显示器用作输出

xrandr --addmode ${VIRTUAL_LABEL} 3840x2160

xrandr --fb 4320x3840 --output ${HDMI_LABEL} --mode 3840x2160  --rotation left  --output ${VIRTUAL_LABEL} --mode 3840x2160 --primary --rotation left --right-of ${HDMI_LABEL}

相关内容