LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2111|回复: 10

高分辨率控制台在grub2下的配置小结和纠结

[复制链接]
发表于 2011-2-7 00:30:25 | 显示全部楼层 |阅读模式
自己转自己的文章,嘿嘿
------------------------------------

Table of Contents

    1 纠结
    2 grub2 的控制台分辨率设置
    3 grub2 菜单页面分辨率设置

1 纠结

最近换了一台笔记本电脑,非常看重的特性就是它那块 15.4 寸 1920x1200 的超高分辨率 IPS 屏。无奈 Gentoo 和 Ubuntu 的控制台都只给我 640x480 的超低分辨率,简直是对屏幕的犯罪! 于是决定折腾一下。

首先我在 Gentoo 下重新编译了 grub2,加入 truetype 支持,grub2 启动项内核后加 vga=893 参数,重启。居然不能进入启动菜单列表,grub2 报错:

out of range pointer 0x7fea0

我仔细检查好久,终于发现,我原来的 grub 1.98 是由 stage 3 自带的 gcc 4.4.2 编译的,没有这个错误;而这个报错的 grub 版本还是 1.98,由我升级后的 gcc 4.5.2 编译。问题出在 gcc 4.5.2 编译的 grub 1.98 身上。Gentoo 论坛的帖子证实了这个结论:

http://forums.gentoo.org/viewtopic-t-829324-start-0.html

后来一怒之下 unmask 掉了 portage 里面的 grub-9999,用 gcc 4.5.2 重新编译,才终于好了。这个 grub-9999, 其实是 grub 1.99 版本。


2 grub2 的控制台分辨率设置

要确保相应显卡的 framebuffer 支持编译进内核,或者编译成模块,一般有数种选择,具体过程略去不谈。我用的是 vesa vga 驱动,直接编译n近内核。

原来启动项内核后的 vga 参数已经被 grub2 无情抛弃,不过它还算有点良心,主动在 grub 控制台下告诉我应该怎么办。

首先在 grub 控制台下查看我的硬件支持的分辨率和色深:

grub> vbeinfo

我机器查到的最大分辨率和色深是 1920x1200x32. 把这个写进 grub 启动项里:

/etc/grub.d/40_custom:

menuentry "Gentoo Linux [1920x1200x32 Console] [500GB.1]" {
insmod vbe
set gfxpayload=1920x1200x32
set root=(hd0,1)
linux /boot/bzImage root=/dev/sda1
}

其中,insmod vbe 这行一般是不需要的,因为 vbe 模块一般会默认加载。别忘了更新 grub2:

~ % sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
done

(注意,update-grub 命令已遭 grub2 无情抛弃。)

重启,就得到 1920x1200 分辨率,32 位色深的控制台了。一行超长,一屏可以显示超多内容,真细腻……


3 grub2 菜单页面分辨率设置

上面把控制台整成了我们想要的分辨率,但 grub2 菜单页面还是 640x480 的,令人不爽。如果要把这个页面的分辨率也改掉,很简单:

/etc/default/grub:

GRUB_GFXMODE=1920x1200x32

这样就得到 1920x1200 的 grub 菜单页面。不过字体超级细,不见得人人都会喜欢。

至于美化 grub 啥的,我也不会,就不折腾了。

Author: Err

Date: 2011-02-06 23:48:30 CST

HTML generated by org-mode 7.4 in emacs 24

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2011-2-7 10:56:05 | 显示全部楼层
你给的图是控制台的图,他的分辨率好像是由内核的启动参数定的?就是用grub 0.96也一样,只要启动参数写对,内核编译正确就行。

grub2的分辨率我上次用的时候支持并不好,不过可以尝试burg,个人感觉在外观上要好一点,配置也方便(因为有现成的可以借鉴)
回复 支持 反对

使用道具 举报

发表于 2011-2-7 21:13:15 | 显示全部楼层
字体小可试试用grub-mkfont转一下试试,但我的试过字号大于16时没效果,grub2显示也只有16的大小。
若用文泉驿的ttc字体,要用fontforge导出需要的ttf字体,不然,转出可能会是等宽字体,间距很大。

15.4 寸 1920x1200 的超高分辨率??
太夸张了。
回复 支持 反对

使用道具 举报

发表于 2011-2-8 08:38:56 | 显示全部楼层
gentoo的man为什么不能显示到屏幕最右边?也就是占满一行?谁能解决下///
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-8 15:59:50 | 显示全部楼层
Post by iamkr;2127588
gentoo的man为什么不能显示到屏幕最右边?也就是占满一行?谁能解决下///


term 下也是一样的。这个好像是 man 自己的事情,不关控制台的事。估计是 manpager 为了美观上的考虑。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-8 16:03:55 | 显示全部楼层
Post by jsun;2127545
你给的图是控制台的图,他的分辨率好像是由内核的启动参数定的?就是用grub 0.96也一样,只要启动参数写对,内核编译正确就行。

grub2的分辨率我上次用的时候支持并不好,不过可以尝试burg,个人感觉在外观上要好一点,配置也方便(因为有现成的可以借鉴)


grub2 废弃了好多我们以前常用的启动参数和使用习惯,不仅如此,他自己变来变去的,搞得人很郁闷。

grub 0.96  0.97 的启动项参数写起来更方便些,对控制台分辨率的支持也本来很好。我现在就跟 grub2 死磕,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-8 16:08:23 | 显示全部楼层
Post by lurz;2127576
字体小可试试用grub-mkfont转一下试试,但我的试过字号大于16时没效果,grub2显示也只有16的大小。
若用文泉驿的ttc字体,要用fontforge导出需要的ttf字体,不然,转出可能会是等宽字体,间距很大。

15.4 寸 1920x1200 的超高分辨率??
太夸张了。


嗯,你修改的是启动项菜单的字体是么?我觉得 Ubuntu 的那个很漂亮的。

在分辨率一定的情况下,framebuffer 控制台的字体大小应该是无解的。
回复 支持 反对

使用道具 举报

发表于 2011-2-8 17:07:57 | 显示全部楼层
Post by Err;2127614
嗯,你修改的是启动项菜单的字体是么?我觉得 Ubuntu 的那个很漂亮的。

在分辨率一定的情况下,framebuffer 控制台的字体大小应该是无解的。


原来说这个,控制台下的字体唯有借助fbterm来解决。

你这个分辨率下用Ubuntu的字体启动项菜单的字体就不小么?
我觉得1024x768都已经小了,自己转的大一点,可不好看。
回复 支持 反对

使用道具 举报

发表于 2011-2-9 08:43:09 | 显示全部楼层
Post by Err;2127534
自己转自己的文章,嘿嘿
------------------------------------

Table of Contents

    1 纠结
    2 grub2 的控制台分辨率设置
    3 grub2 菜单页面分辨率设置

1 纠结

最近换了一台笔记本电脑,非常看重的特性就是它那块 15.4 寸 1920x1200 的超高分辨率 IPS 屏。

仰慕一下。。。
我的27寸显示器也不过才达到这个分辨率。
另外强力推荐 tmux,否则你的显示器实在是浪费了。
回复 支持 反对

使用道具 举报

发表于 2011-2-9 15:44:30 | 显示全部楼层
留个名,啥时候升级到grub2了有用。
我那个22寸的才1680x1050, 真不知道15寸1920x1080是啥感觉。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表