我有 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}