You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04.3 LTS下保留modesetting驱动配置双物理+虚拟显示器的方法

Ubuntu 22.04.3 LTS下保留modesetting驱动配置双物理+虚拟显示器的方法

我之前也碰到过一模一样的场景:两台物理显示器设置为镜像,同时用一个VIRTUAL1作为主显示器供TeamViewer远程使用——这样远程操作时,完全不会打断物理显示器上全屏运行的浏览器界面。但升级到Ubuntu 22.04.3 LTS后,默认启用的modesetting驱动直接让虚拟显示器失效了,我不想禁用modesetting放弃它的特性,最后找到了启用**Virtual Kernel Mode Setting (VKMS)**内核模块的完美解决办法。

先说说我的设备情况(和你的配置高度相似):

  • 显卡:Intel TigerLake-LP GT2 [Iris Xe Graphics],内核驱动为i915
  • 当前显示配置:X.Org使用modesetting驱动,两台物理显示器(DP-1和HDMI-A-1)处于镜像状态,还有空余的物理接口未使用

解决步骤:

1. 启用VKMS内核模块

VKMS是虚拟内核模式设置模块,启用它就能在保留modesetting驱动的同时,重新支持虚拟显示器。可以通过以下脚本实现永久生效+当前会话临时生效:

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

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

执行完成后,运行xrandr命令,就能看到虚拟显示器(通常命名为VIRTUAL1)已经出现在输出列表里了。

2. 配置虚拟显示器的分辨率和位置

接下来用xrandr给虚拟显示器添加需要的分辨率,并设置它的主显示器属性和相对位置:

# 请先替换${VIRTUAL_LABEL}为你的虚拟显示器名称(比如VIRTUAL1),${HDMI_LABEL}为其中一台物理显示器名称(比如HDMI-A-1)
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}

这样设置后,虚拟显示器会成为主显示器,位于物理显示器右侧,同时保留modesetting驱动的所有功能,物理显示器的镜像状态完全不受影响,远程操作再也不会干扰到本地的全屏浏览器界面。

备注:内容来源于stack exchange,提问作者Linn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:48:18