zoukankan      html  css  js  c++  java
  • ubuntu12.04开启Framebuffer

    一.framebuffer概述

      Framebuffer在Linux中是作为设备来实现的,它是对图形硬件的一种抽象,代表着显卡中的帧缓冲区(Framebuffer)。通过Framebuffer设备,上层软件可以通过一个良好定义的软件接口访问图形硬件,而不需要关心底层图形硬件是如何工作的,比如,上层软件不用关心应该如何读写显卡寄存器,也不需要知道显卡中的帧缓冲区从什么地址开始,所有这些工作都由Framebuffer去处理,上层软件只需要集中精力在自己要做的事情上就是了。
      Framebuffer的优点在于它是一种低级的通用设备,而且能够跨平台工作,比如Framebuffer既可以工作在x86平台上,也能工作在PPC平台上,甚至也能工作在m68k和SPARC等平台上,在很多嵌入式设备上Framebuffer也能正常工作。诸如Minigui之类的GUI软件包也倾向于采用Framebuffer作为硬件抽象层(HAL)。
      从用户的角度来看,Framebuffer设备与其它设备并没有什么不同。Framebuffer设备位于/dev下,通常设备名为fb*,这里*的取值从0到31。对于常见的计算机系统而言,32个Framebuffer设备已经绰绰有余了(至少作者还没有看到过有32个监视器的计算机)。最常用到的Framebuffer设备是/dev/fb0。通常,使用Framebuffer的程序通过环境变量FRAMEBUFFER来取得要使用的Framebuffer设备,环境变量FRAMEBUFFER通常被设置为”/dev/fb0”。
      从程序员的角度来看,Framebuffer设备其实就是一个文件而已,可以像对待普通文件那样读写Framebuffer设备文件,可以通过mmap()将其映射到内存中,也可以通过ioctl()读取或者设置其参数,等等。最常见的用法是将Framebuffer设备通过mmap()映射到内存中,这样可以大大提高IO效率。

    二.开启framebuffer 

    1) $ sudo gedit /etc/initramfs-tools/modules 
      加入如下两行内容 
      fbcon 
      vesafb 
    2) $ sudo gedit /etc/modprobe.d/blacklist-framebuffer.conf 
      将里面的vesafb这两行给注释掉。 
    3) $ sudo update-initramfs -u 更新initramwfs文件。 
    4) 重启系统 
    三.设定默认分辨率和颜色位数 
    1) $ sudo  gedit /etc/default/grub 
    2) 在GRUB_CMDLINE_LINUX_DEFAULT = “quiet splash” 后面增加vga参数。 

    比如: GRUB_CMDLINE_LINUX_DEFAULT = “quiet splash vga=788” (其实这里可以不设置,根据环境运行的需要,通过fbset工具设置分辨率和色深)

    vga参数和分辨率的对照表为 
           640x480  800x600  1024x768  1280x1024 
    8bit   769       771       773       775 
    15bit  784       787       790       793 
    16bit  785       788       791       794 
    24bit  786       789       792       795 
    3)$ sudo grub-mkconfig 
    4)$ sudo update-grub 

    5)重启系统 

    四. 其他设置

    开机后,fb0设备可能默认为不可访问。输入命令 $ chmod 775 /dev/fb0 可以打开fb0设备。

    fbset是用来设置framebuffer的工具,包括设置分辨率,色深等信息。

    $ sudo apt-get install fbset

    安装好之后,运行 $ fbset 显示如下信息

    mode "1366x768"
        geometry 1366 768 1366 768 32
        timings 0 0 0 0 0 0 0
        accel true
        rgba 8/16,8/8,8/0,0/0
    endmode

    则表示framebuffer可以运行。

    通过 $ fbset --help 查看fbset的设置参数。

    例如:设置分辨率和色深 $ fbset -xres 800 -yres 600 -depth 16

    五. 参考文档

    http://coffeee.iteye.com/blog/1285180

    http://tldp.org/HOWTO/Framebuffer-HOWTO/

    http://blog.csdn.net/gogor/article/details/5848352

  • 相关阅读:
    如何恢复包含损坏记录的物理文件
    启动日志
    如何在各种环境中处理多成员的物理文件
    如何找出物理文件中损坏的记录
    如何重新找回物理文件中已经被删除的记录
    folder的操作
    如何将AS/400英文界面改为中文界面?
    如何从OS/400里直接发送电子邮件到Internet
    如何在AS/400上发送带有颜色的MESSAGE
    关于命令RGZPFM
  • 原文地址:https://www.cnblogs.com/cainiaoaixuexi/p/3308772.html
Copyright © 2011-2022 走看看