看了几篇博文,多次试验之后,最后总结一下,分享给大家。方法如下:
方法一:
最新的内核已经支持framebuffer,只需要启动是指定相关参数 ,比如 “vga=分辨率 ” 就可以了。具体设置方法如下:
$sudo vi /etc/default/grub
1、找到如下的行,GRUB_CMDLINE_LINUX="" 在里面加入vga=**, 结果如下:
GRUB_CMDLINE_LINUX="vga=792"
2、另外还有一行要设置一下:
GRUB_GFXMODE=1024x768
该行原来是注释掉的,需要设置的分辨率与上面的 vga=792一致。
3、更新grub配置文件,如下
$sudo update-grub
重新启动后在其他tty就可以使用framebuffer了,比如按alt+ctrl+F1 进入一号虚拟终端。但是本文试过,发现不成功,但是按照方法二能够成功。
方法二:
无论是ati显卡还是nvidia显卡,在ubuntu10.04系统上启用受限驱动 (或手动安装官方驱动),都会导致开机splash分辨率变低的问题。由于这问题在ubuntu10.04上很普遍,所以也就有很多牛人为我们提供了解决方法,这是整理别人的资料得到。
1、安装fbset和hwinfo包,下面我们要用到。
$sudo apt-get install fbset hwinfo
安装v86d,这个是后面修改uvesafb所必须的包,否则即使修改了后面的配置文件,也不会生效的。
sudo apt-get install v86d
2、查看当前的分辨率
$sudo fbset
查看自己显卡支持的分辨率。
$sudo hwinfo --framebuffer None 00.0: 11001 VESA Framebuffer [Created at bios.464] Unique ID: rdCR.QOJHFkjgnM2 Hardware Class: framebuffer Model: "(C) 1988-2005, ATI TechnologiesInc. M92" Vendor: "(C) 1988-2005, ATI TechnologiesInc. " Device:"M92" SubVendor: "ATI ATOMBIOS" SubDevice: Revision: "01.00" Memory Size: 16 MB Memory Range: 0xd0000000-0xd0ffffff (rw) …… Mode 0x03ee: 1366x768 (+1408), 8 bits Mode 0x03ef: 1366x768 (+2752), 16 bits Mode 0x03f0: 1366x768(+5504), 24 bits Config Status: cfg=new, avail=yes, need=no,active=unknown
3、修改/etc /default/grub文件,使用uvesafb的framebuffer来启动。
$sudo gedit /etc/default/grub
把下面的两行
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
#GRUB_GFXMODE=640×480
修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap"
(ps:其中的nomodeset禁用内核 kms,后面的vga=0x034c用于解决改变分辨率后无法进入控制台的问题)
去掉GRUB_GFXMODE前的#号,也就是去掉注视符号,并且修改为
GRUB_GFXMODE=1280x800
这个要根据第2步所查到的显卡所支持的最大分辨率 (当然也可以是其他支持的分辨率)来修改,注意要把前面的#去掉。
4、修改/etc/initramfs-tools/modules文件。
$sudo gedit /etc/initramfs-tools/modules
添加下面这行:
uvesafb mode_option=1280x800-24 mtrr=3 scroll=ywrap
(ps:这一步的修改与上一步中的第1处修改关联一致)
5、运行下面的命令,强制使用framebuffer。
$echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
6、运行下面的命令,更新grub配置以及initramfs镜像文件。
$sudo update-grub2 $sudo update-initramfs -u
7、重启,搞定。