前面的底线:我需要在 RHEL 中的哪个位置定义适用于工作站所有用户的视频配置?
我的硬件设置是驱动“标准”显示器和一些视频转换硬件的 nVidia RTX4000。我的工作站正在运行 RHEL 7.9 并使用 nvidia 专有驱动程序。每个“显示器”都由视频卡的 DisplayPort 输出之一驱动。我想以 1920x1200(面板的原始分辨率)驱动显示器,我需要以 1280x1024 驱动视频转换器,即使它的最大分辨率更高(这是不可协商的 - 下游的图像必须是 1280x1024加工)。我想要的设置是水平单桌面,左侧是 1920x1200 显示器,右侧是 1280x1024 视频转换器,顶部对齐。
此外,由于视频转换器输出并不总是可见的,因此任何 Gnome 之前的桌面显示(GRUB、LUKS 密码、X-windows 登录提示)都必须专门针对真实监视器进行显示,这一点很重要。
显示器插入“最上面”的 DP 端口(即离卡边缘最远的那个),而视频转换器插入“中间”DP 端口(即下一个向下)。剩下的DP口和USB-C口没有连接。
作为进一步的要求,此配置必须透明、自动且不费力地(甚至不是“一次性”的努力)应用于登录到此工作站的任何人。换句话说,它应该可以正常工作。
我试图使用 /etc/X11/xorg.conf 来实现这些目标:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "HP"
ModelName "Z24n G2"
Option "DPMS"
Option "PreferredMode" "1920x1200"
Option "Primary"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "VidCon"
ModelName "Video Converter"
Option "DPMS"
Option "PreferredMode" "1280x1024"
EndSection
Section "Device"
Identifier "nvidia0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Screen 0
EndSection
Section "Screen"
Identifier "Screen0"
Device "nvidia0"
Monitor "Monitor0"
DefaultDepth 24
Option "MetaModes" "DFP-2: 1920x1200+0+0, DFP-0: 1280x1024+1920+0"
EndSection
(xrandr -q 输出列出了 DP-2 上的真实显示器,以及 DP-0 上的视频转换器,这似乎与所使用的物理端口相反。我发现我必须在 MetaModes 选项中使用 DFP 而不是 DP)
一旦用户登录,这似乎就可以工作。但是,对于 GRUB/LUKS/桌面登录提示是否会出现在监视器上,或者被定向到视频转换器,这有点麻烦。
我还尝试了 /var/lib/gdm/.config/monitors.xml 解决方案(使用交互式设置正确,然后将生成的 monitor.xml 复制到 GDM“主”位置),但这似乎没有有所作为。
所以,最终我的问题是,我需要在哪里设置 RHEL 以使其尊重和应用设置?
上述问题陈述中省略了一个额外的限制,即视频转换硬件的输入需要处于 60 Hz 刷新率。默认情况下,驱动程序选择 85 Hz,因此也需要强制。
对于我的设置,以下 xorg.conf 似乎有效:
本质上,这是试图消除 X 的视频检测/分配中留下的任何机会。监视器部分中的“主要”选项强制将 DFP-2 监视器(真正的 LCD 屏幕)用作主要显示器。设备部分中的设置专门将显示器绑定到 nVidia 卡,并设置扩展桌面中显示器的分辨率、刷新率和相对位置。LUKS 和 GDM 登录提示现在出现在正确的显示器(LCD)上,桌面具有所需的几何形状,并且视频转换器正在获得正确的刷新率。