这似乎是一个非常基本的问题,但在网上搜索了两个小时后,我找不到任何关于这个主题的真正帮助,这让我发疯。
这非常简单:我有一个 radeon 4670 显卡 (rv770xt),使用 Arch Linux 的 repo 内核,并有 VGA 和 DVI 显示器。 KMS 已启用并且运行良好。
VGA 显示器的分辨率比 DVI 显示器的分辨率小,默认情况下,屏幕会以 VGA 显示器的分辨率镜像到两者。现在我根本不想将 VGA 显示器用于内核帧缓冲区/控制台,并希望内核使用(更大的)DVI 显示器。
注意:这与 X.org 双头无关,而是与内核帧缓冲区/控制台有关。
现在的问题是:是否有内核参数来指定我的帧缓冲区的默认输出,如果有,是哪个?
到目前为止,我发现的最好方法似乎是在启动时使用 con2fb 将所有 VT 移动到第二台显示器,但我什至不知道 radeon 驱动程序是否创建 2 个 fb,无论如何这只是一种解决方法。
编辑1:我查了一下,驱动程序只是创建了 fb0,所以这con2fb
是不行的
答案1
你可以使用一个udev
规则并且FB集强制两个显示器上的帧缓冲区分辨率,这可能会在某种程度上实现您所追求的目标。
该udev
规则将类似于/etc/udev/rules.d/81-framebuffer-hack.rules
:
KERNEL=="card0-DVI", SUBSYSTEM=="drm", ATTR{dpms}=="On", ATTR{enabled}=="enabled", ATTR{status}=="connected", RUN+="/usr/sbin/fbset -g 1920 1080 1920 1080 32"
您可以阅读udev
有关规则的具体信息编写 udev 规则页。