设置命令行控制台分辨率时出现问题。grub2 中的 vbeinfo 不报告所有分辨率

Del*_*ted 5 linux terminal resolution grub framebuffer

我有一台 Asus EEE PC 1005P,我使用 Ubuntu Lucid Lynx 的备用安装程序 CD 安装了一个命令行系统。虽然我认为这是一个一般的 linux 和 grub2 问题。我没有(或想要)安装 X Window System。

我想将控制台屏幕分辨率(不在 X 内)更改为 1024x600。但是当我在 grub 中使用 vbeinfo 时没有报告:

grub> vbeinfo
VBE info:   version: 3.0  OEM software rev: 1.0
            total memory: 8128 KiB
List of compatible video modes:
Legend: P=Packed pixel, D=Direct color, mask/pos=R/G/B/reserved
0x112:   640 x 480 x 32   Direct, mask: 8/8/8/8  pos: 16/8/0/24
0x114:   800 x 600 x 16   Direct, mask: 5/6/5/0  pos: 11/5/0/0
0x115:   800 x 600 x 32   Direct, mask: 8/8/8/8  pos: 16/8/0/24
0x101:   640 x 480 x 8    Packed
0x103:   800 x 600 x 8    Packed
0x111:   640 x 480 x 16   Direct, mask: 5/6/5/0  pos: 11/5/0/0
Configured VBE mode (vbe_mode) = ox101
grub> 
Run Code Online (Sandbox Code Playgroud)

sudo lspci -v 的相关部分:

...     ...

00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller
        Subsystem: ASUSTeK Computer Inc. Device 83ac
        Flags: bus master, fast devsel, latency 0, IRQ 28
        ...
        Kernel driver in use: i915
        Kernel modules: i915

00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller
        Subsystem: ASUSTeK Computer Inc. Device 83ac
        Flags: bus master, fast devsel, latency 0, IRQ 28
        ...

...     ...
Run Code Online (Sandbox Code Playgroud)

关于如何设置我想要的控制台结果的任何想法?

添加!

须藤 fbset -i:

mode "1024x600"
    geometry 1024 600 1024 600 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,0/0
endmode

Frame buffer device information:
    Name            : inteldrmfb
    Address         : 0xd0830000
    Size            : 2457600
    Type            : PACKED PIXELS
    Visual          : TRUECOLOR
    XPanStep        : 1
    YPanStep        : 1
    YWrapStep       : 0
    LineLength      : 4096
    MMIO Address    : 0xf7e00000
    MMIO Size       : 524288
    Accelerator     : No
Run Code Online (Sandbox Code Playgroud)

这是否意味着我有司机?关于如何在 grub2 中将其设置为 1024 x 600 的任何想法?

qua*_*ote 2

我最近在 Grub 的 VBE 上遇到了一些类似的问题。不幸的是,Grub 无法访问vbeinfo命令未报告的任何图形模式。通过在/etc/default/grub中设置GRUB_GFXMODE来设置 Grub 的图形模式,并通过设置GRUB_GFXPAYLOAD_LINUX来设置控制台帧缓冲区 并运行sudo update-grub ( source )。

Linux控制台显示在framebuffer设备上;这就是inteldrmfb设备(显示在您的fbset输出中)。可能需要在 initrd 中启用帧缓冲区。如果是这样,请运行以下命令来启用它:

echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

我已经看到了几个关于在 Lucid 中配置控制台帧缓冲区的线程。您可能需要研究类似的东西。这篇文章描述了通过在内核命令行上传递特定的帧缓冲区选项来设置uvesafb 。如果您的情况需要这样做,您可以在 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 添加类似“ nomodeset video = intelfb:mode_option=1024x600-24,mtrr=3,scroll=ywrap”的内容。(该行中的“intelfb”可能需要是“inteldrmfb”,但我不确定。)您可能还需要在/etc/initramfs-tools/modules中添加一行-- “intelfb mode_option=1024x600-24 mtrr=3 scroll=ywrap" -- 然后重新运行上面的update-initramfs命令。

最后一个链接中提到的另一个替代方案是删除启动内核选项(从GRUB_CMDLINE_LINUX_DEFAULT),设置GRUB_GFXMODEGRUB_GFXPAYLOAD_LINUX,然后重新运行update-grub

其他可能有帮助的资源: