Ubuntu安装好后,想用DirectFB进行程序设计,发现没有/etc下并没有fb0 设备,如何添加这个设备,Google了很多资料都不行,终于找到下面这个资料,成功的添加上了fb0 fb1
1. 编辑 /etc/initramfs-tools/modules,在其中加入:
fbcon
vesafb
vga16fb
2. 编辑 /etc/modprobe.d/blacklist-framebuffer,注释掉以下两行:
blacklist vesafb
blacklist vga16fb
3. 修改/boot/grub/ 内的menu.lst ,找到类似如下几行代码,在kernel一行结尾加入fb分辨率参数:
(从9.10起换grub了,配置文件是grub.cfg,教程:viewtopic.php?f=139&t=225669&p=1448778#p1448778 )
(执行sudo update-grub后会在/boot/grub下生成menu.lst)
例如:
title Ubuntu 8.10, kernel 2.6.27-9-generic
uuid 328eed5f-0f89-41b8-b021-730ae3f167d1
kernel /boot/vmlinuz-2.6.27-9-generic root=UUID=328eed5f-0f89-41b8-b021-730ae3f167d1 ro quiet splash vga=0x314
initrd /boot/initrd.img-2.6.27-9-generic
quiet
注:vga=0×314 即为800*600 16位
终端的分辨率可以用fbset设置。
可以用 sudo hwinfo --framebuffer 查看显卡/显示器支持的分辨率和颜色深度
|640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x301 0x303 0x305 0x307
32k | 0x310 0x313 0x316 0x319
64k | 0x311 0x314 0x317 0x31A
16M | 0x312 0x315 0x318 0x31B
4. 刷新并重新启动
sudo update-initramfs -u
5.如何判断buffer是否启用
首先确认内核是否支持 buffer ,查看 /proc/fb 文件是否存在,存在则说明支持,否则,说明不支持。其次查看 buffer 设备是否已激活,若 /dev/fb0 文件存在,则说明已经激活;否则说明没有激活。
6.安装zhcon显示中文
如果源里有该软件可以直接终端输入下面命令安装:
$sudo apt-get install zhcon
启动zhcon:
zhcon --utf8 --drv=fb
附:在控制台下播放电影
mplayer abc.mov -vo fbdev
视频输出用fbdev2也可以。