Ubuntu Server控制台framebuffer分辨率
要设置控制台framebuffer分辨率要修改以下文件:
sudo vi /boot/grub/menu.lst (此与/etc/grub.conf是同一个文件)
注意/etc/X11/xorg.conf文件是修改的图形界面下的分辨率,两回事
要想系统支持framebuffer,首先要kernel里设置support,如果用的是ubuntu这种OS就不用配置kernel选项了,默认是有的,查一下cat /proc/device可以看到vedio部分fb的设备号是29,如果在/dev下没有fb0设备文件,不要手工创建,通过修改menu.lst后重启系统会自己创建,注意不要进x windows来测试,应该启动后直接进入字符控制台界面,否则可能播放的视频出现花屏现象,如果你进了图形界面,按ctrl+alt+F1,用命令 sudo /etc/init.d/gdm stop关掉它然后再进行测试。
方法:在menu.lst文件中打到类似这几行:
title XXXXOS (2.6.XX)
root (hd0,X)
kernel /boot/vmlinuz-2.6.XXX ro root=XXX quiet vga=0x318
在kernel那行最后添加vga=0x318或vga=792 (前面十六进制,后面十进制,参考下表)
vga=可设置的值可以用工具fbset(没有的话用sudo apt-get install fbset装),/etc/fb.modes,或sudo hwinfo --framebuffer参考,主要还是以hwinfo为主(sudo apt-get install hwinfo)
下表列出一些常用值:
# FRAMEBUFFER RESOLUTION SETTINGS
# +------------------------------------------------------------------------------------------------------------------------+
# | 640x480 800x600 1024x768 1280x1024 1280x800 1600x1200
# ------+-------------------------------------------------------------------------------------------------------------------+
# 256 | 0x301=769 0x303=771 0x305=773 0x307=775 0x31C=796
# 32K | 0x310=784 0x313=787 0x316=790 0x319=793 0x360=864 0x31D=797
# 64K | 0x311=785 0x314=788 0x317=791 0x31A=794 0x361=865 0x31E=798
# 16M | 0x312=786 0x315=789 0x318=792 0x31B=795 0x362=866 0x31F=799
# +------------------------------------------------------------------------------------------------------------------------+
重启后进入控制台字符界面在mplayer目录下执行
./mplayer -vo fbdev -zoom -x 1024 -y 768 xxx.wmv
(mplayer题外话:fbdev的性能与x11几乎差不多,建议还是配置成xv,就是说要跑X server)
设置-zoom -x 1024 -y 768使得全屏播放,不管你的电影是多少分辨率都会缩放到vga=0x318设置的分辨率