linux 开启支持FrameBuffer--解决打开/dev/fb0失败的问题

转载 2015年07月08日 20:05:26

FrameBuffer,可以译作“帧缓冲”,有时简称为fbdrv,基于fbdrv的console也被称之为fbcon。这是一种独立于硬件的抽象图形设备。FrameBuffer的优点在于其高度的可移植性、易使用性、稳定性。
使用Linux内核的FrameBuffer驱动(vesafb),可以轻松支持到1024X768X32bpp以上的分辩率。而且目前可得到的绝大多数linux版本所发行的内核中,已经预编译了FrameBuffer支持,通常不需要重新编译内核就可以使用。所以FrameBuffer也是zhcon推荐使用的驱动方式。 进入FrameBuffer可以简单地在系统启动时向kernel传送vga=mode-number的参数来激活FrameBuffer设备,如: lilo:linux vga=305 将会启动1024x768x8bpp模式。

hwinfo --framebuffer | grep Mode
Model: "NVIDIA GW-P/N@PM898486GTQ14P:0"
Mode 0x0300: 640x400 (+640), 8 bits
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+800), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x030e: 320x200 (+640), 16 bits
Mode 0x030f: 320x200 (+1280), 24 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0315: 800x600 (+3200), 24 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x031b: 1280x1024 (+5120), 24 bits
Mode 0x0330: 320x200 (+320), 8 bits
Mode 0x0331: 320x400 (+320), 8 bits
Mode 0x0332: 320x400 (+640), 16 bits
Mode 0x0333: 320x400 (+1280), 24 bits
Mode 0x0334: 320x240 (+320), 8 bits
Mode 0x0335: 320x240 (+640), 16 bits
Mode 0x0336: 320x240 (+1280), 24 bits
Mode 0x033d: 640x400 (+1280), 16 bits
Mode 0x033e: 640x400 (+2560), 24 bits
Mode 0x0345: 1600x1200 (+1600), 8 bits
Mode 0x0346: 1600x1200 (+3200), 16 bits
Mode 0x0347: 1400x1050 (+1400), 8 bits
Mode 0x0348: 1400x1050 (+2800), 16 bits
Mode 0x0349: 1400x1050 (+5600), 24 bits
Mode 0x034a: 1600x1200 (+6400), 24 bits
Mode 0x0352: 2048x1536 (+8192), 24 bits
Mode 0x0360: 1280x800 (+1280), 8 bits
Mode 0x0361: 1280x800 (+5120), 24 bits
Mode 0x0362: 768x480 (+768), 8 bits
Mode 0x0364: 1440x900 (+1440), 8 bits
Mode 0x0365: 1440x900 (+5760), 24 bits
Mode 0x0368: 1680x1050 (+1680), 8 bits
Mode 0x0369: 1680x1050 (+6720), 24 bits
Mode 0x037c: 1920x1200 (+1920), 8 bits
Mode 0x037d: 1920x1200 (+7680), 24 bits

要使linux缺省进入FrameBuffer,可以修改/etc/lilo.conf,加入一下语句: vga=0x303 退出编辑,执行: lilo -v 重新启动linux,可以使其进入800x600的256色模式。

libggi,libggi是一个跨平台的绘图库。在Linux上,libggi是通过调用FrameBuffer或svgalib来完成图形操作的,可能速度速度比较慢。但在某些不支持FrameBuffer或是vga的系统上使用libggi仍然是一种不错的选择。
要使用libggi,需要设置GGI_DISPLAY环境变量,例如: 在.bash_profile中加入export GGI_DISPLAY=display-fbdev:-noinput 将使用libggi提供的接口来完成图形输出(使用FrameBuffer)。更详细的信息请参阅libggi的文档。
vga,如果您的内核并没有编译进对FrameBuffer的支持,那么可以使用内建的vga驱动来使显目工作在640x480x16色的模式下。因为vga驱动是直接对显卡上的寄存器操作,所以这种方式的移植性很差,速度也比较慢。 系统启动时会按以下顺序来选择图形驱动:libggi(如果设置了环境变量GGI_DISPLAY),framebuffer,vga.

如果是grup的启动程序可设置boot/grub/menu.lst文件.

以上设置后可解决程序打开/dev/fb0失败的问题.

【Linux系统编程应用】 Linux系统中找不到设备/dev/fb0

【重新编译内核的方法】 如果/dev/没有fb0设备的话,关键在于内核里面是否加载了此设备,如果加载此设备,则根据对应的主设备号使用mknod来创建设备,否则如果内核没有加载此设备即使创建100个设备...
  • dengjin20104042056
  • dengjin20104042056
  • 2017年01月02日 22:55
  • 1189

打开/dev/fb0时“No such device”错误解决方法:激活 VESA FrameBuffer 驱动程序

在使用Linux系统函数mmap(),将FrameBuffer映射到内存上来实现一个简单的贪吃蛇游戏时,在自己的Redhat 6.4上测试时,运行程序结果却提示:“No such device”。可是...
  • Apollon_krj
  • Apollon_krj
  • 2017年04月14日 22:42
  • 1000

添加/dev/fb0设备及修改framebuffer的显示模式

1、sudo gedit /etc/initramfs-tools/modules   在最后面新起两行加入   fbcon   vesafb 2、 sudo gedit /etc/mod...
  • yibulianhua
  • yibulianhua
  • 2012年04月27日 17:20
  • 1913

/dev/fb0入门练习(linux FrameBuffer)

大家都知道Unix/Linux系统是由命令驱动的。那么最基本的系统是命令行的(就是想DOS一样的界面)。X-Window-System是Unix/Linux上的图形系统,它是通过X-Server来控制...
  • zgrjkflmkyc
  • zgrjkflmkyc
  • 2013年07月21日 23:52
  • 14580

linux下实现对framebuffer(/dev/fb0)的截屏操作

在linux系统中,使用framebuffer来提供用户态进程直接操作显示屏的功能. 在嵌入式系统开发中,需要对显示屏的内容进行截取,实现一个lcd截屏工具实现对显示屏内容的截取,存储为bmp格式....
  • gp_scoprius
  • gp_scoprius
  • 2016年12月21日 17:35
  • 2053

linux 开启支持FrameBuffer--解决打开/dev/fb0失败的问题

FrameBuffer,可以译作“帧缓冲”,有时简称为fbdrv,基于fbdrv的console也被称之为fbcon。这是一种独立于硬件的抽象图形设备。FrameBuffer的优点在于其高度的可移植性...
  • pk_20140716
  • pk_20140716
  • 2015年07月08日 20:05
  • 436

Ubuntu 建立DirectFB 模拟环境

1.(引用 一般步骤)Ubuntu下DirectFB的编译安装,样例程序编译及运行体验DirectFB和样例的源代码可以到DirectFB.org下载到目录/home/。整个步骤依次为:1、切换到目录...
  • hope_learn
  • hope_learn
  • 2010年05月19日 11:05
  • 2148

解决/dev/fb0无法打开的问题

 解决/dev/fb0无法打开的问题    最近要在Linux做基于frame Buffer的图形显示,不论我在独立分区的Linux FC6系统中,还是在装有Red hat9的VPC中,都无法打开/d...
  • dotphoenix
  • dotphoenix
  • 2009年10月29日 18:57
  • 3455

关于/dev/graphics/fb0拒绝访问的解决方案

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • Markslin
  • Markslin
  • 2015年08月29日 19:52
  • 1492

open(\"/dev/graphics/fb0\") failed!

转自VC错误:http://www.vcerror.com/?p=2160 问题描述: 在用手机app通过framebuffer截屏的时候,手机已经root过了,但是执行代码: fb->fd =...
  • swanabin
  • swanabin
  • 2016年04月11日 15:25
  • 984
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 开启支持FrameBuffer--解决打开/dev/fb0失败的问题
举报原因:
原因补充:

(最多只允许输入30个字)