0xC*_*22L 18 boot parameter grub2 linux-kernel
根据文档,vga=从 GRUB2 开始不推荐使用内核参数。某些较新的内核似乎不再在某些适配器上支持它这一事实无关紧要,因为我拥有的显卡已有七到八年的历史了。
现在的问题是我想使用更高分辨率的文本模式,例如 80x50 而不是默认的 80x25 字符。显然,该显卡 (ATI Rage XL) 的所有图形 (VBE/VESA) 模式都不存在 - 可用模式列表仅0通过6. 6是80x60但看起来很可怕,所以我想用1(80x50)。
在获取可用模式列表后,我已经看到 80x50 和 80x60 在不支持默认模式(默认已注释掉GRUB_TERMINAL=console)并且提示我选择时工作。
如果我不应该在内核命令行上设置模式并且每次使用GRUB_GFXMODE(有或没有预加载vbe模块)并且GRUB_GFXPAYLOAD_LINUX=keep失败,我该如何设置模式?失败:屏幕保持空白,因为它是我在这台机器上使用的卡的无效图形模式?
我的想法是nomodeset仍然传递给内核,但是引导加载程序仍然必须设置图形模式。除了vga=内核参数之外,我看不到任何其他选项。
注意: GRUB2 控制台上的vbetest和videotest命令会使屏幕变黑,然后在声称没有视频输入后屏幕会切换到睡眠模式。vbeinfo并videoinfo显示除上述以外的一些可用模式,但没有提到应该在哪里设置。此外,当在内核命令行上传递vga=1(没有nomodeset)时,我看到一个关于它被弃用的非常简短的警告,但它太长而无法完全阅读 - 并且输出没有出现在dmesg.
ase*_*seq 12
也许它已被 grub2 弃用,但它应该仍然有效并且必须继续有效。它适用于我使用 grub2 和 debian wheezy 以及 rhel7.3(确认 01-2017)。另外根据官方文档,它没有被弃用:
https://www.kernel.org/doc/Documentation/x86/boot.txt
如果引导加载程序提供的命令行是由用户输入的,则用户可能希望以下命令行选项起作用。通常不应从内核命令行中删除它们,即使并非所有这些实际上对内核都有意义。
此处的 vga= 是整数(C 符号,十进制、八进制或十六进制)或字符串“normal”(表示 0xFFFF)、“ext”(表示 0xFFFE)或“ask”(表示 0xFFFD)之一。这个值应该被输入到 vid_mode 字段中,因为它在命令行被解析之前被内核使用。
而https://www.kernel.org/doc/Documentation/svga.txt都会告诉你,你需要知道的。下面是我常用的几个分辨率示例:
vga=0x31b --> 1280x1024x32
vga=0x34d --> 1600x900x32
vga=0x31e --> 1600x1200x32
Run Code Online (Sandbox Code Playgroud)
要获取支持的模式列表,请使用:
vga=ask
Run Code Online (Sandbox Code Playgroud)
对于 1024×768x24 的屏幕,我发现它几乎适用于我使用的所有系统和显示器(这次是十进制和十六进制):
vga=792
vga=0x318
Run Code Online (Sandbox Code Playgroud)
小智 2
linux16 和 initrd16 命令仍然支持 vga 参数,因此如果将“linux”更改为“linux16”或将“initrd”更改为“initrd16”,您可以获得旧的行为。我不确定这会导致什么其他变化,但它对我来说效果很好。:-)
| 归档时间: |
|
| 查看次数: |
68098 次 |
| 最近记录: |