[ 全面披露:我首先问了这个问题在 Arch Linux 论坛上,没有得到答案]
我有一台通常无头运行的服务器。它根本不运行 X — — 只运行 CLI。
这台服务器以前有一个笨重的 CRT,每当我需要排除故障时,我都会插上它。这台服务器工作正常,但 CRT(虽然很小)的重量与一辆中型轿车相当。最近我买了一块二手小型 LCD 面板来替换它。
问题是,当我插入 LCD 并打开它时,它显示“显示器不支持当前输入时序。请将输入时序更改为 1280x1024 @ 60Hz”。
如果我重启服务器(我通常每年重启一次,所以这不是最佳解决方案),显示器就会正常工作……直到我拔掉电源插头。然后当我重新插上电源插头并打开它时,我又会收到相同的消息,直到我重启。
(使用 DVI 可能会解决这个问题,但服务器没有 DVI 端口)
如何让服务器输出 60Hz 视频,使其在拔插周期内继续工作?无需重启的答案将获得加分!
答案1
您必须使用帧缓冲区。
只需编辑/etc/grub.conf
并添加vga=794
到以 kernel 开头的行末尾即可。
vga=793
15 位 1280x1024@60
vga=794
16 位 1280x1024@60
vga=795
24 位 1280x1024@60
根据显示器的使用年限,您可能需要尝试其他代码。
抱歉,您必须重新启动才能使其正常工作,然后一切就绪了。
答案2
我以令人吃惊的能力自己解决了这个问题!
我这样做了:
- 在 /etc/default/grub 中
- 设置 GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
- 添加行 GRUB_TERMINAL=console
- 添加行 GRUB_GFXPAYLOAD_LINUX=text
- 删除 GRUB_GFXMODE 行
- 重新运行 grub-mkconfig -o /boot/grub/grub.cfg
缺点是,在分辨率不太好的情况下,我得到的是大块文本,而不是在合理的分辨率下得到的漂亮的帧缓冲文本。优点是,它能正常工作,与上述任何一种方法都不同。
答案3
您是否尝试过使用fbset
? 使用这个来设置正确的帧缓冲模式应该可以工作。
自从他们切换到 systemd 后,我就很少使用 Arch 了,但是过去它运行良好。
答案4
你可以尝试
sudo udevadm trigger
来自 Arch udevadm 手册页:
udevadm 触发器 [选项]
从内核请求设备事件。主要用于在系统冷插拔时重放事件。