ubuntu命令行分辨率无法设置的解决方案
参考相关帖子:
升级显卡限制驱动后开机动画低分辨率问题(解决方案)
解决升级显卡驱动后开机动画低分辨率问题
启用受限驱动后 开机 Splash 分辨率变低的原因分析
无论是ati显卡还是nvidia显卡,在ubuntu10.04系统上启用受限驱动(或手动安装官方驱动),都会导致开机splash分辨率变低的问题。由于这问题在ubuntu10.04上很普遍,所以也就有很多牛人为我们提供了解决方法,下面是我在ubuntu中文论坛上看到的(参考上面给出的三个帖子),并且亲自试验并成功解决问题的一个整理方案。
1、安装v86d和hwinfo包,下面我们要用到。
sudo apt-get install v86d hwinfo
2、查看自己显卡支持的分辨率。
sudo hwinfo --framebufferNone 00.0: 11001 VESA Framebuffer
[Created at bios.464]
Unique ID: rdCR.QOJHFkjgnM2
Hardware Class: framebuffer
Model: "(C) 1988-2005, ATI Technologies Inc. M92"
Vendor: "(C) 1988-2005, ATI Technologies Inc. "
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=1366x768-24,mtrr=3,scroll=ywrap"
(ps:其中的nomodeset禁用内核kms,个人见解)
GRUB_GFXMODE=1366x768
这个要根据第2步所查到的显卡所支持的最大分辨率(当然也可以是其他支持的分辨率)来修改,注意要把前面的#去掉。
4、修改/etc/initramfs-tools/modules文件。
sudo gedit /etc/initramfs-tools/modules
添加下面这行:
uvesafb mode_option=1366x768-24mtrr=3 scroll=ywrap
(ps:这一步的修改与上一步中的第1处修改关联一致)
5、运行下面的命令,启用framebuffer。
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
6、运行下面的命令,更新grub配置以及initramfs镜像文件。
sudo update-grub
sudo update-initramfs -u
7、重启。
相关问题及解决方法:
按照上述步骤操作后确实解决了开机splash分辨率低的问题,不过还有另外一个问题:无法正常使用虚拟控制台(tty1-6),即切换到虚拟控制台——“黑屏”。
确实这样修改后出现登陆不了console的情况,需要添加vga=XXX参数。
其实,这个问题应该也是使用官方的闭源驱动(或受限驱动)造成的,即不是上述的操作导致的。
相应的,上述步骤的第3步修改中添加vga=xxx参数。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1366x768-24,mtrr=3,scroll=ywrap vga=792"
注意792代表的是1024×768x16M(分辨率1024×768,颜色深度24位),可根据自己的情况以及
https://wiki.ubuntu.com/FrameBuffer#Setting%20different%20framebuffer%20resolutions%20in%20GRUB
修改为相应的数字。此数据必须正确,因为数字不正确,很可能导致开机画面不能显示或变形。实在没有对应数值的话,可以使用790,或者和实际分辨率较为接近的数值。
参考相关帖子:
升级显卡限制驱动后开机动画低分辨率问题(解决方案)
解决升级显卡驱动后开机动画低分辨率问题
启用受限驱动后 开机 Splash 分辨率变低的原因分析
无论是ati显卡还是nvidia显卡,在ubuntu10.04系统上启用受限驱动(或手动安装官方驱动),都会导致开机splash分辨率变低的问题。由于这问题在ubuntu10.04上很普遍,所以也就有很多牛人为我们提供了解决方法,下面是我在ubuntu中文论坛上看到的(参考上面给出的三个帖子),并且亲自试验并成功解决问题的一个整理方案。
1、安装v86d和hwinfo包,下面我们要用到。
sudo apt-get install v86d hwinfo
2、查看自己显卡支持的分辨率。
sudo hwinfo --framebufferNone 00.0: 11001 VESA Framebuffer
[Created at bios.464]
Unique ID: rdCR.QOJHFkjgnM2
Hardware Class: framebuffer
Model: "(C) 1988-2005, ATI Technologies Inc. M92"
Vendor: "(C) 1988-2005, ATI Technologies Inc. "
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=1366x768-24,mtrr=3,scroll=ywrap"
(ps:其中的nomodeset禁用内核kms,个人见解)
GRUB_GFXMODE=1366x768
这个要根据第2步所查到的显卡所支持的最大分辨率(当然也可以是其他支持的分辨率)来修改,注意要把前面的#去掉。
4、修改/etc/initramfs-tools/modules文件。
sudo gedit /etc/initramfs-tools/modules
添加下面这行:
uvesafb mode_option=1366x768-24mtrr=3 scroll=ywrap
(ps:这一步的修改与上一步中的第1处修改关联一致)
5、运行下面的命令,启用framebuffer。
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
6、运行下面的命令,更新grub配置以及initramfs镜像文件。
sudo update-grub
sudo update-initramfs -u
7、重启。
相关问题及解决方法:
按照上述步骤操作后确实解决了开机splash分辨率低的问题,不过还有另外一个问题:无法正常使用虚拟控制台(tty1-6),即切换到虚拟控制台——“黑屏”。
确实这样修改后出现登陆不了console的情况,需要添加vga=XXX参数。
其实,这个问题应该也是使用官方的闭源驱动(或受限驱动)造成的,即不是上述的操作导致的。
相应的,上述步骤的第3步修改中添加vga=xxx参数。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1366x768-24,mtrr=3,scroll=ywrap vga=792"
注意792代表的是1024×768x16M(分辨率1024×768,颜色深度24位),可根据自己的情况以及
https://wiki.ubuntu.com/FrameBuffer#Setting%20different%20framebuffer%20resolutions%20in%20GRUB
修改为相应的数字。此数据必须正确,因为数字不正确,很可能导致开机画面不能显示或变形。实在没有对应数值的话,可以使用790,或者和实际分辨率较为接近的数值。