底线 前面:我需要在 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 解决方案(使用交互式设置正确设置,然后将生成的 drivers.xml 复制到 GDM“主”位置),但这似乎并没有有任何区别。
所以,最终我的问题是,我需要在 RHEL 下的哪里进行设置才能让它尊重并应用这些设置?
答案1
上述问题陈述中省略了一个额外的限制,即视频转换硬件的输入需要具有 60 Hz 刷新率。默认情况下,驱动程序选择 85 Hz,因此也需要强制选择。
对于我的设置,以下 xorg.conf 似乎有效:
Section "ServerLayout"
Identifier "layout0"
Screen 0 "screen0" 0 0
EndSection
Section "Monitor"
Identifier "monitor0"
VendorName "HP"
ModelName "Z24n G3"
Option "DPMS"
Option "Primary" "true"
EndSection
Section "Monitor"
Identifier "monitor1"
VendorName "Manufacturer"
ModelName "Video Converter"
Option "DPMS"
Option "Primary" "false"
EndSection
Section "Device"
Identifier "nvidia0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
# Note: PCI bus value in lspci result is in hex, BusID option seems to expect decimal
# My lspci showed 5e:0.0 for the video card, corresponding BusID option value is 94:0:0
BusID "PCI:94:0:0"
# Note: xrandr -q output showed monitors named DP-0 and DP-2, but nvidia driver seems to want to use
# "DFP" instead of "DP", so if identifying monitors and availble modes with xrandr, use DFP.
Option "Monitor-DFP-2" "monitor0"
Option "Monitor-DFP-0" "monitor1"
Option "ConnectedMonitor" "DFP-2, DFP-0"
Option "VertRefresh" "DFP-2: 60; DFP-0: 60"
Option "MetaModes" "DFP-2: 1920x1200+0+0, DFP-0: 1280x1024+1920+0"
EndSection
Section "Screen"
Identifier "screen0"
Device "nvidia0"
Monitor "monitor0"
DefaultDepth 24
EndSection
本质上,这是试图消除 X 的视频检测/分配中留下的任何机会。“监视器”部分中的“主要”选项强制将 DFP-2 监视器(真正的 LCD 屏幕)用作主显示器。 “设备”部分中的设置专门将显示器与 nVidia 卡绑定,并设置扩展桌面中显示器的分辨率、刷新率和相对位置。 LUKS 和 GDM 登录提示现在显示在正确的显示屏(LCD)上,桌面具有所需的几何形状,并且视频转换器获得正确的刷新率。