SlideShare a Scribd company logo
1 of 3
Download to read offline
Tel:010-68492999      Fax: 010-68492337     www.zylogic.com.cn


               uClinux 下如何写 framebuffer 设备驱动


  下面的内容主要是关于 framebuffer 的一些知识, 主要是根据我们实际开发过
程中的一些体会,其中难免错漏之处, 欢迎指正。

什么是 framebuffer 设备
  framebuffer 是一种能够提取图形的硬件设备,是用户进入图形界面很好的接
口。有了 framebuffer,用户的应用程序不需要对底层的驱动的深入了解就能够做
出很好的图形。
  对 于 用 户 而 言 , 它 和 /dev 下 面 的 其 他 设 备 没 有 什 么 区 别 , 用 户 可 以 把
framebuffer 看成一块内存,既可以向这块内存中写入数据,也可以从这块内存中
读取数据。
  第一个被注册的 framebuffer 的 minor 等于 0,第二个被注册的 framebuffer
的 minor 等于 1,以此类推。

framebuffer 内部结构
  数据结构:framebuffer 设备很大程度上依靠了下面四个数据结构。这三个结构
在 fb.h 中声明。
  Struct fb_var_screeninfo
  Struct fb_fix_screeninfo
  Struct fb_info
  第一个结构是用来描述图形卡的特性的。通常是被用户设置的。
  第二个结构定义了图形卡的硬件特性, 是不能改变的,用户选定了哪一个图形
卡,那么它的硬件特性也就定下来了。
  第三个结构定义了当前图形卡 framebuffer 设备的独立状态,一个图形卡可能
有两个 framebuffer, 在这种情况下,就需要两个 fb_info 结构。这个结构是唯一
在内核空间可见的。



     #1460, New Century Hotel Office Building. No.6 Southern Road Capital Gym. Beijing 100044
          北京首都体育馆南路六号新世纪饭店写字楼 1460 室 邮编:100044
Tel:010-68492999      Fax: 010-68492337     www.zylogic.com.cn


设计自己的 framebuffer 设备驱动
   用户首先需要添加下面的代码到 fbmem.c
       static struct {
                    const char *name;
                    int (*init)(void);
                    int (*setup)(char*);
   } fb_drivers[] __initdata = {
   #ifdef CONFIG_FB_YOURCARD
                    { "driver_name", xxxfb_init, xxxfb_setup },
   #endif


   其 次 在 xxfb.c 中 根 据 自 己 的 需 要 重 新 分 配 显 存 大 小 。 例 如 : #define
VIDEOMEMSIZE     (1*1024*1024) /* 1 MB */
   再次根据自己的硬件设备修改相应的 var 信息。主要修改 xxfb_set_var(struct
fb_var_screeninfo *var, int con, struct fb_info *info)函数。

如何添加 framebuffer 设备驱动
   首先在 config.in 文件中添加一行代表用户自己驱动的选项。具体做法请参考
config.in 的帮助文档。
   在 make menuconfig 的时候首先进入 Character devices,选中里面的 Virtual
terminal 和 Support for console on virtual terminal.
   退到上一层界面我们就可以看到 Console device 的选项,进入后将光标落在
Framebuffer Support 上,按回车键进入,在里面选择自己所需要的 framebuffer
设备即可。自己所添加的设备驱动的类型(如果在 uclinux 下,应该以*选中,而不
是 M 选中),在编译的时候就会产生相应的 o 文件。
   在 Advanced low level 中可以配置 bpp packed pixel support,然后选中 Select
compiled-in fonts 即可。


      #1460, New Century Hotel Office Building. No.6 Southern Road Capital Gym. Beijing 100044
           北京首都体育馆南路六号新世纪饭店写字楼 1460 室 邮编:100044
Tel:010-68492999      Fax: 010-68492337     www.zylogic.com.cn

  等操作系统运行以后就会在/dev 下面看到 fb 这个设备。它的 major 应该是 29,
第一个设备的 minor 应该是 0。



如何使用 framebuffer 设备
  我们可以在几个支持图形显示的平台上开发一些图形界面。例如 microwindows,
minigui,Qtembed,等等。在这里我们就不详细介绍具体做法,感兴趣的朋友可以
到我们网站上下载。
  这里我们假设用户已经通过 tftp 或者 mount 命令将测试例子 demo 传到
/var/test 目录下。在/test 目录下启动后台服务程序./nano-X &,这时可以看到屏
幕有一个闪动,然后会变为黑色,接着就可以运行测试程序了,执行./demo 即可。




    #1460, New Century Hotel Office Building. No.6 Southern Road Capital Gym. Beijing 100044
         北京首都体育馆南路六号新世纪饭店写字楼 1460 室 邮编:100044

More Related Content

Similar to Framebuffer

Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發建興 王
 
TI702_Android_MID
TI702_Android_MIDTI702_Android_MID
TI702_Android_MIDguestd2ec7f
 
系統程式 -- 第 11 章
系統程式 -- 第 11 章系統程式 -- 第 11 章
系統程式 -- 第 11 章鍾誠 陳鍾誠
 
MySQL新技术探索与实践
MySQL新技术探索与实践MySQL新技术探索与实践
MySQL新技术探索与实践Lixun Peng
 
How to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMCHow to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMCBo-Yi Wu
 
部門會議 950619 Leon的錦囊妙計
部門會議 950619 Leon的錦囊妙計部門會議 950619 Leon的錦囊妙計
部門會議 950619 Leon的錦囊妙計Leon Chuang
 
0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)Timothy Chen
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化taobao.com
 
Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121meru2ks
 
Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121meru2ks
 
尚观Linux研究室 linux驱动程序全解析
尚观Linux研究室   linux驱动程序全解析尚观Linux研究室   linux驱动程序全解析
尚观Linux研究室 linux驱动程序全解析hangejnu
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Yiwei Ma
 
Introduction To Direct Show
Introduction To Direct ShowIntroduction To Direct Show
Introduction To Direct Showguestce3937
 
Introduction To Direct Show
Introduction To  Direct ShowIntroduction To  Direct Show
Introduction To Direct Showguestce3937
 
VCACICM6_M05_Blueprints_and_Catalog Services.pptx
VCACICM6_M05_Blueprints_and_Catalog Services.pptxVCACICM6_M05_Blueprints_and_Catalog Services.pptx
VCACICM6_M05_Blueprints_and_Catalog Services.pptxLoessPlateau
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍haozes
 
Ezilla
EzillaEzilla
Ezillahs1250
 
Vcon90 Final
Vcon90 FinalVcon90 Final
Vcon90 Finalxobo
 
第11讲 管理Cisco互联网络
第11讲 管理Cisco互联网络第11讲 管理Cisco互联网络
第11讲 管理Cisco互联网络F.l. Yu
 

Similar to Framebuffer (20)

Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發
 
TI702_Android_MID
TI702_Android_MIDTI702_Android_MID
TI702_Android_MID
 
系統程式 -- 第 11 章
系統程式 -- 第 11 章系統程式 -- 第 11 章
系統程式 -- 第 11 章
 
MySQL新技术探索与实践
MySQL新技术探索与实践MySQL新技术探索与实践
MySQL新技术探索与实践
 
How to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMCHow to write Platform Devices and Drivers with FPGA via GPMC
How to write Platform Devices and Drivers with FPGA via GPMC
 
部門會議 950619 Leon的錦囊妙計
部門會議 950619 Leon的錦囊妙計部門會議 950619 Leon的錦囊妙計
部門會議 950619 Leon的錦囊妙計
 
0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
 
Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121
 
Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121Mini6410+++º +¦ß-20101121
Mini6410+++º +¦ß-20101121
 
尚观Linux研究室 linux驱动程序全解析
尚观Linux研究室   linux驱动程序全解析尚观Linux研究室   linux驱动程序全解析
尚观Linux研究室 linux驱动程序全解析
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
 
Introduction To Direct Show
Introduction To Direct ShowIntroduction To Direct Show
Introduction To Direct Show
 
Introduction To Direct Show
Introduction To  Direct ShowIntroduction To  Direct Show
Introduction To Direct Show
 
VCACICM6_M05_Blueprints_and_Catalog Services.pptx
VCACICM6_M05_Blueprints_and_Catalog Services.pptxVCACICM6_M05_Blueprints_and_Catalog Services.pptx
VCACICM6_M05_Blueprints_and_Catalog Services.pptx
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
Ezilla
EzillaEzilla
Ezilla
 
Vcon90 Final
Vcon90 FinalVcon90 Final
Vcon90 Final
 
第11讲 管理Cisco互联网络
第11讲 管理Cisco互联网络第11讲 管理Cisco互联网络
第11讲 管理Cisco互联网络
 

Recently uploaded

EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制kathrynalvarez364
 
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书kathrynalvarez364
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单jakepaige317
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书kathrynalvarez364
 
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,Xin Yun Teo
 
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单kathrynalvarez364
 

Recently uploaded (11)

EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
 
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
 
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
 
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
 

Framebuffer

  • 1. Tel:010-68492999 Fax: 010-68492337 www.zylogic.com.cn uClinux 下如何写 framebuffer 设备驱动 下面的内容主要是关于 framebuffer 的一些知识, 主要是根据我们实际开发过 程中的一些体会,其中难免错漏之处, 欢迎指正。 什么是 framebuffer 设备 framebuffer 是一种能够提取图形的硬件设备,是用户进入图形界面很好的接 口。有了 framebuffer,用户的应用程序不需要对底层的驱动的深入了解就能够做 出很好的图形。 对 于 用 户 而 言 , 它 和 /dev 下 面 的 其 他 设 备 没 有 什 么 区 别 , 用 户 可 以 把 framebuffer 看成一块内存,既可以向这块内存中写入数据,也可以从这块内存中 读取数据。 第一个被注册的 framebuffer 的 minor 等于 0,第二个被注册的 framebuffer 的 minor 等于 1,以此类推。 framebuffer 内部结构 数据结构:framebuffer 设备很大程度上依靠了下面四个数据结构。这三个结构 在 fb.h 中声明。 Struct fb_var_screeninfo Struct fb_fix_screeninfo Struct fb_info 第一个结构是用来描述图形卡的特性的。通常是被用户设置的。 第二个结构定义了图形卡的硬件特性, 是不能改变的,用户选定了哪一个图形 卡,那么它的硬件特性也就定下来了。 第三个结构定义了当前图形卡 framebuffer 设备的独立状态,一个图形卡可能 有两个 framebuffer, 在这种情况下,就需要两个 fb_info 结构。这个结构是唯一 在内核空间可见的。 #1460, New Century Hotel Office Building. No.6 Southern Road Capital Gym. Beijing 100044 北京首都体育馆南路六号新世纪饭店写字楼 1460 室 邮编:100044
  • 2. Tel:010-68492999 Fax: 010-68492337 www.zylogic.com.cn 设计自己的 framebuffer 设备驱动 用户首先需要添加下面的代码到 fbmem.c static struct { const char *name; int (*init)(void); int (*setup)(char*); } fb_drivers[] __initdata = { #ifdef CONFIG_FB_YOURCARD { "driver_name", xxxfb_init, xxxfb_setup }, #endif 其 次 在 xxfb.c 中 根 据 自 己 的 需 要 重 新 分 配 显 存 大 小 。 例 如 : #define VIDEOMEMSIZE (1*1024*1024) /* 1 MB */ 再次根据自己的硬件设备修改相应的 var 信息。主要修改 xxfb_set_var(struct fb_var_screeninfo *var, int con, struct fb_info *info)函数。 如何添加 framebuffer 设备驱动 首先在 config.in 文件中添加一行代表用户自己驱动的选项。具体做法请参考 config.in 的帮助文档。 在 make menuconfig 的时候首先进入 Character devices,选中里面的 Virtual terminal 和 Support for console on virtual terminal. 退到上一层界面我们就可以看到 Console device 的选项,进入后将光标落在 Framebuffer Support 上,按回车键进入,在里面选择自己所需要的 framebuffer 设备即可。自己所添加的设备驱动的类型(如果在 uclinux 下,应该以*选中,而不 是 M 选中),在编译的时候就会产生相应的 o 文件。 在 Advanced low level 中可以配置 bpp packed pixel support,然后选中 Select compiled-in fonts 即可。 #1460, New Century Hotel Office Building. No.6 Southern Road Capital Gym. Beijing 100044 北京首都体育馆南路六号新世纪饭店写字楼 1460 室 邮编:100044
  • 3. Tel:010-68492999 Fax: 010-68492337 www.zylogic.com.cn 等操作系统运行以后就会在/dev 下面看到 fb 这个设备。它的 major 应该是 29, 第一个设备的 minor 应该是 0。 如何使用 framebuffer 设备 我们可以在几个支持图形显示的平台上开发一些图形界面。例如 microwindows, minigui,Qtembed,等等。在这里我们就不详细介绍具体做法,感兴趣的朋友可以 到我们网站上下载。 这里我们假设用户已经通过 tftp 或者 mount 命令将测试例子 demo 传到 /var/test 目录下。在/test 目录下启动后台服务程序./nano-X &,这时可以看到屏 幕有一个闪动,然后会变为黑色,接着就可以运行测试程序了,执行./demo 即可。 #1460, New Century Hotel Office Building. No.6 Southern Road Capital Gym. Beijing 100044 北京首都体育馆南路六号新世纪饭店写字楼 1460 室 邮编:100044