我有Debian GNU/Linux 7没有图形用户界面。
我的液晶显示器原始分辨率是 1280x1024。我希望我的操作系统默认使用此分辨率等tty1
。tty2
这些是我的/etc/default/grub
:
GRUB_GFXMODE=1280x1024
GRUB_GFXPAYLOAD_LINUX=1280x1024
我已经跑了sudo update-grub
,没有任何问题。重新启动。这应该足够了,但事实并非如此。
行为如下:
- GRUB2 菜单始终使用配置的分辨率。我已经检查过不同的
GRUB_GFXMODE
它也可以使用较低的分辨率,在这种情况下,图片被拉伸并利用整个屏幕 - 一切都可以。 - 当系统启动时,很少会按预期显示初始消息,并且显示器以其原始分辨率工作。
- 就在消息出现的那一刻
Waiting for /dev to be fully populated...
,屏幕闪烁了。一秒钟后,图片以相同的分辨率恢复,但屏幕底部和右边缘有垃圾(如静态像素噪声)。 - 当我登录并随后工作时,有两个条纹(底部、右边缘)对我来说不可用。
这就是它的样子(请原谅照片分辨率较低,但这并不重要)。蓝色mc
窗口应占据整个屏幕。右上角可以看到图形垃圾蜜蜂。底部的条纹全是黑色,但那里也经常有垃圾。
尽管进行了 GRUB2 设置,我的操作系统并未使用所需的分辨率。这是以下的输出fbset
:
mode "1024x768"
geometry 1024 768 1280 1024 32
timings 0 0 0 0 0 0 0
accel true
rgba 8/16,8/8,8/0,0/0
endmode
尽管如此,显示器仍然使用其原始分辨率。请参阅这张照片的最后一行:
如何使GRUB2设置生效?
附加信息:
- 硬件是JBC362F36W-2600-B 准系统 Mini-ITX 系统。
- 它的主板是NF36-N2600。
- 图形被集成到英特尔凌动 N2600中央处理器。
- 电缆为 DVI-D。
- 显示器是飞利浦190B。它与 GRUB2 菜单配合得很好,所以我不认为它有什么问题。
和更多:
# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller (rev 09)
# uname -a
Linux [censored] 3.2.0-4-amd64 #1 SMP Debian 3.2.81-1 x86_64 GNU/Linux
# grep -A 6 1280x1024-60 /etc/fb.modes
mode "1280x1024-60"
# D: 108.00 MHz, H: 63.981 kHz, V: 60.02 Hz
geometry 1280 1024 1280 1024 8
timings 9260 248 48 38 1 112 3
hsync high
vsync high
endmode
答案1
这些 GRUB 设置控制 GRUB 使用的显示模式,它们不指定内核使用的默认帧缓冲区模式。要配置后者,可以使用video
内核参数;在 Debian 中,将其添加到以下GRUB_CMDLINE_LINUX_DEFAULT
行中/etc/default/grub
:
video=1280x1024
一旦内核初始化帧缓冲区,这应该正确设置显示。
该video
参数详细记录在fb/modedb.rst
在内核文档中。
答案2
编辑:这是我的旧修复(我是OP,以防有人没有注意到)。已经有另一个更好的答案了。出于教育原因,我留下我的答案。
旧修复:
我无法使 GRUB2 设置起作用,但我仍然可以从正在运行的系统中将分辨率更改为所需的 1280x1024。命令是:
fbset -g 1280 1024 1280 1024 32
添加这一行可以/etc/rc.local
解决我的问题。系统启动时屏幕上仍有部分垃圾;但当我登录并工作时,我可以使用显示器的完整分辨率。