刚刚看到有framebuffer 这个东东就按捺不住自己动手玩玩。学习framebuffer 的第一步是开启frame buffer。
网上已经有很多的相关文章了,对于系统配置,我是一个彻底的菜鸟^_^……。参考了网络上的很多文章,自己胡乱弄了几下居然能够就能成功运行相关framebuffer的程序了。
具体的配置主要包括一下几项(也许存在错误,因为很多东东的原理自己还不清楚,还必须继续努力学习啊!):
1、编辑/etc/initramfs-tools/modules 文件:在文件的末尾加入如下三行(红色部分)
root@ubuntu:~/Mydocument/DirectFB/DirectFB-1.3.1#vi /etc/initramfs-tools/modules
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
fbcon
vesafb
vga16fb
2、编辑/etc/modprobe.d/blacklist-framebuffer.conf文件(见红色部分)
root@ubuntu:~/Mydocument/DirectFB/DirectFB-1.3.1# vi /etc/modprobe.d/blacklist-framebuffer.conf
# Framebuffer drivers are generally buggy and poorly-supported, and cause
# suspend failures, kernel panics and general mayhem. For this reason we
# never load them automatically.
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist cirrusfb
blacklist cyber2000fb
blacklist cyblafb
blacklist gx1fb
blacklist hgafb
blacklist i810fb
blacklist intelfb
blacklist kyrofb
blacklist lxfb
blacklist matroxfb_base
blacklist neofb
blacklist nvidiafb
blacklist pm2fb
blacklist rivafb
blacklist s1d13xxxfb
blacklist savagefb
blacklist sisfb
blacklist sstfb
blacklist tdfxfb
blacklist tridentfb
#blacklist vesafb
#blacklist vfb
blacklist viafb
blacklist vt8623fb
3. 刷新并重新启动
root@ubuntu:~/Mydocument/DirectFB/DirectFB-1.3.1#sudo update-initramfs -u
4、编辑/boot/grub/grub.cfg文件
root@ubuntu:~/Mydocument/DirectFB/DirectFB-1.3.1# vi /boot/grub/grub.cfg
menuentry 'Ubuntu,Linux 3.0.0-17-generic' --class ubuntu --class gnu-linux --class gnu --class os {
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod ntfs
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root 0250FFD850FFD101
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz-3.0.0-17-generic root=UUID=0250FFD850FFD101 loop=/ubuntu/disks/root.disk ro vga=792 quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-17-generic
}
5、编辑/etc/default/grub
root@ubuntu:~/Mydocument/DirectFB/DirectFB-1.3.1# vi /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=792"
GRUB_CMDLINE_LINUX="vga=792"
6. 运行下面的命令,启用framebuffer:
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
7. 运行下面的命令,更新grub配置文件:
sudo update-grub2
sudo update-initramfs -u
8. 重启
注:有可能第一 次重启后不管用,再重启一次就可以了。
Alt + Ctrl + (F1 ~ F6) 到网上找几个关于Framebuffer 的程序运行看看效果。