📄 关于framebuffer的一些文章_ - 我的文章 - t_t.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0183)http://cache.baidu.com/c?word=%23%3Binclude%2Clibfbx%2Clibfbx%3B%2E%3Bh&url=http%3A//blog%2Echinaunix%2Enet/u/12335/showart%5F236942%2Ehtml&p=8e769a45d1934ea85facdd3c5c08cd&user=baidu -->
<!--STATUS OK--><HTML><HEAD><TITLE>关于FrameBuffer的一些文章. - 我的文章 - T.T</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<FORM action=http://www.baidu.com/s>
<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY style="BACKGROUND: none transparent scroll repeat 0% 0%" leftMargin=0
topMargin=0>
<TABLE cellPadding=0 width="100%" bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD width=254><A href="http://www.baidu.com/"><IMG alt=到百度首页
src="关于FrameBuffer的一些文章_ - 我的文章 - T_T.files/logo-kz.gif" border=0></A></TD>
<TD><FONT color=black size=-1><INPUT
style="FONT-SIZE: 16px; FONT-FAMILY: Verdana,Arial,Helvetica,sans-serif"
size=30 name=wd> <INPUT type=submit value=百度一下></FONT> </TD></TR>
<TR>
<TD colSpan=2><FONT color=black size=-1>您的查询字词都已标明如下:<B
style="COLOR: black; BACKGROUND-COLOR: #ffff66"><A
href="http://cache.baidu.com/c?word=%23%3Binclude%2Clibfbx%2Clibfbx%3B%2E%3Bh&url=http%3A//blog%2Echinaunix%2Enet/u/12335/showart%5F236942%2Ehtml&p=8e769a45d1934ea85facdd3c5c08cd&user=baidu#baidusnap0">#include</A> </B><B
style="COLOR: black; BACKGROUND-COLOR: #99ff99"><A
href="http://cache.baidu.com/c?word=%23%3Binclude%2Clibfbx%2Clibfbx%3B%2E%3Bh&url=http%3A//blog%2Echinaunix%2Enet/u/12335/showart%5F236942%2Ehtml&p=8e769a45d1934ea85facdd3c5c08cd&user=baidu#baidusnap2">libfbx</A> </B><B
style="COLOR: black; BACKGROUND-COLOR: #ff9999"><A
href="http://cache.baidu.com/c?word=%23%3Binclude%2Clibfbx%2Clibfbx%3B%2E%3Bh&url=http%3A//blog%2Echinaunix%2Enet/u/12335/showart%5F236942%2Ehtml&p=8e769a45d1934ea85facdd3c5c08cd&user=baidu#baidusnap3">libfbx.h</A> </B>
(点击查询词,可以跳到它在文中首次出现的位置) <BR>如果打开速度慢,您可以尝试打开<A
href="http://cache.baidu.com/c?word=%23%3Binclude%2Clibfbx%2Clibfbx%3B%2E%3Bh&url=http%3A//blog%2Echinaunix%2Enet/u/12335/showart%5F236942%2Ehtml&p=8e769a45d1934ea85facdd3c5c08cd&user=baidu&im=0"><FONT
style="TEXT-DECORATION: underline" color=blue>无图片的快照</FONT></A>;
如果您想保存该页面,可以<A
onclick="window.open('http://cang.baidu.com/do/add?it='+encodeURIComponent(document.title)+'&iu='+encodeURIComponent(location.href)+'&fr=ps#nw=1','_s','scrollbars=no,width=600,height=450,right=75,top=20,status=no,resizable=yes'); return false;"
href="http://cang.baidu.com/do/add" target=_blank><FONT
style="TEXT-DECORATION: underline" color=blue>添加到搜藏</FONT></A><BR><FONT
color=gray>(百度和网页<A
href="http://blog.chinaunix.net/u/12335/showart_236942.html"><FONT
color=blue>http://blog.chinaunix.net/u/12335/showart_236942.html</FONT></A>的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)</FONT></FONT>
</TD></TR></TBODY></TABLE></FORM>
<HR>
<LINK href="关于FrameBuffer的一些文章_ - 我的文章 - T_T.files/index.css"
rel=stylesheet></LINK><LINK title="ChinaUnix Blog RSS Feed"
href="http://blog.chinaunix.net/u/rss.php?id=12335" type=application/rss+xml
rel=alternate></LINK>
<TABLE style="BORDER-COLLAPSE: collapse; HEIGHT: 25px" height=25 cellSpacing=0
cellPadding=0 width=760 align=center
background="关于FrameBuffer的一些文章_ - 我的文章 - T_T.files/tophem1.gif" border=0>
<TBODY>
<TR>
<TD id=tool-bar noWrap align=left> <A
href="http://blog.chinaunix.net/" target=_blank>博客首页</A> <A
href="http://blog.chinaunix.net/register.php" target=_blank>注册</A> <A
href="http://bbs.chinaunix.net/forumdisplay.php?fid=51"
target=_blank>建议与交流</A> <A href="http://blog.chinaunix.net/top/"
target=_blank>排行榜</A> <A
onclick="NewWindows('http://www.cublog.cn/addlink.php?url='+location.href+'&title='+document.title);return false;"
href="http://blog.chinaunix.net/u/12335/" target=_blank>加入友情链接</A> </TD>
<FORM id=loginForm action=/search.php method=get target=_blank>
<TD noWrap align=right><IMG id=starimg height=12 alt=""
src="关于FrameBuffer的一些文章_ - 我的文章 - T_T.files/userstar.gif" width=55
border=0> <A id=star title=给此博客推荐值
onclick="NewWindows(this.href);return false;"
href="http://blog.chinaunix.net/u2/star.php?blogid=12335">推荐</A> <A
id=complaint title=投诉此博客 onclick="NewWindows(this.href);return false;"
href="http://blog.chinaunix.net/u2/complaint.php?blogid=12335">投诉</A>
搜索:<INPUT name=q> <INPUT class=button1 type=submit value=搜索> <A
href="http://blog.chinaunix.net/help/">帮助</A></TD></FORM></TR></TBODY></TABLE>
<TABLE style="BACKGROUND-IMAGE: none; BORDER-COLLAPSE: collapse" height=130
cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD align=middle width=500>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#2870c7 cellSpacing=0
cellPadding=0 border=1>
<TBODY>
<TR>
<TD bgColor=#ecfdfd>
<P style="MARGIN: 5px; LINE-HEIGHT: 150%"><FONT>T.T
</FONT></P>佛谚:大其心客天下之物,虚其心纳天下之善,平其心论天下之事,空其心应天下之变。</TD></TR></TBODY></TABLE></TD>
<TD width=260></TD></TR></TBODY></TABLE>
<TABLE style="BORDER-COLLAPSE: collapse" height=27 cellSpacing=0 cellPadding=0
width=760 align=center bgColor=#c3ddf6 border=0>
<TBODY>
<TR>
<TD align=middle><A class=list1 href="http://tanat.cublog.cn/"
target=_blank>tanat.cublog.cn</A> </TD>
<TD style="COLOR: #2a5200" align=right width=620>
<UL id=navmenu>
<LI class=ul0><A class=list1 href="http://control.cublog.cn/"
target=_blank>管理博客</A> </LI>
<LI class=ul0><A class=list1
href="http://control.cublog.cn/article_new.php" target=_blank>发表文章</A>
</LI>
<LI class=ul0 style="WIDTH: 40px"><A class=list1
href="http://blog.chinaunix.net/u/12335/guestbook.html">留言</A> </LI>
<LI class=ul0><A class=list1
href="http://blog.chinaunix.net/u/12335/links.html">收藏夹</A> </LI>
<LI class=ul0><A class=list1
href="http://blog.chinaunix.net/u/12335/group.html">博客圈</A> </LI>
<LI class=ul0 style="WIDTH: 40px"><A class=list1
href="http://blog.chinaunix.net/u/12335/music.html">音乐</A> </LI>
<LI class=ul0 style="WIDTH: 40px"><A class=list1
href="http://blog.chinaunix.net/u/12335/photo.html">相册</A> </LI>
<LI class=ul0 style="WIDTH: 40px"><A class=list1
href="http://blog.chinaunix.net/u/12335/article.html">文章</A> </LI>
<LI class=ul0 style="WIDTH: 40px"><A class=list1
href="http://blog.chinaunix.net/u/12335/index.html">首页</A> </LI></UL></TD>
<TD width=2></TD></TR></TBODY></TABLE>
<TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0
cellPadding=0 width=760 align=center bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD align=middle height=30><FONT style="FONT-SIZE: 14pt"
color=#02368d><B>关于FrameBuffer的一些文章.</B></FONT><BR></TD></TR>
<TR>
<TD align=middle height=9><IMG height=9 alt=""
src="关于FrameBuffer的一些文章_ - 我的文章 - T_T.files/right_line.gif" width=502
border=0></TD></TR>
<TR>
<TD align=middle>
<TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word"
cellSpacing=0 cellPadding=0 width=740 border=0>
<TBODY>
<TR>
<TD width=740>
<DIV id=art style="MARGIN: 15px" width="560">
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN
lang=EN-US>一.介绍<BR> FrameBuffer </SPAN><SPAN
style="FONT-FAMILY: 宋体">是出现在</SPAN><SPAN lang=EN-US> 2.2.xx
</SPAN><SPAN style="FONT-FAMILY: 宋体">内核当中的一种驱动程序接口。</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN
lang=EN-US>Linux</SPAN><SPAN
style="FONT-FAMILY: 宋体">是工作在保护模式下,所以用户态进程是无法象</SPAN><SPAN
lang=EN-US>DOS</SPAN><SPAN
style="FONT-FAMILY: 宋体">那样使用显卡</SPAN><SPAN
lang=EN-US>BIOS</SPAN><SPAN
style="FONT-FAMILY: 宋体">里提供的中断调用来实现直接写屏,</SPAN><SPAN
lang=EN-US>Linux</SPAN><SPAN style="FONT-FAMILY: 宋体">抽象出</SPAN><SPAN
lang=EN-US>FrameBuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">这个设备来供用户态进程实现直接写屏。</SPAN><SPAN
lang=EN-US>Framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过</SPAN><SPAN
lang=EN-US>Framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">的读写直接对显存进行操作。用户可以将</SPAN><SPAN
lang=EN-US>Framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由</SPAN><SPAN
lang=EN-US>Framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">设备驱动来完成的。</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN
style="FONT-FAMILY: 宋体">但</SPAN><SPAN
lang=EN-US>Framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">本身不具备任何运算数据的能力</SPAN><SPAN
lang=EN-US>,</SPAN><SPAN
style="FONT-FAMILY: 宋体">就只好比是一个暂时存放水的水池</SPAN><SPAN
lang=EN-US>.CPU</SPAN><SPAN
style="FONT-FAMILY: 宋体">将运算后的结果放到这个水池</SPAN><SPAN
lang=EN-US>,</SPAN><SPAN
style="FONT-FAMILY: 宋体">水池再将结果流到显示器</SPAN><SPAN
lang=EN-US>.</SPAN><SPAN
style="FONT-FAMILY: 宋体">中间不会对数据做处理</SPAN><SPAN lang=EN-US>.
</SPAN><SPAN style="FONT-FAMILY: 宋体">应用程序也可以直接读写这个水池的内容</SPAN><SPAN
lang=EN-US>.</SPAN><SPAN
style="FONT-FAMILY: 宋体">在这种机制下,尽管</SPAN><SPAN
lang=EN-US>Framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">需要真正的显卡驱动的支持,但所有显示任务都有</SPAN><SPAN
lang=EN-US>CPU</SPAN><SPAN style="FONT-FAMILY: 宋体">完成</SPAN><SPAN
lang=EN-US>,</SPAN><SPAN style="FONT-FAMILY: 宋体">因此</SPAN><SPAN
lang=EN-US>CPU</SPAN><SPAN style="FONT-FAMILY: 宋体">负担很重</SPAN><SPAN
lang=EN-US>.</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US>framebuffer</SPAN><SPAN
style="FONT-FAMILY: 宋体">的设备文件一般是</SPAN><SPAN lang=EN-US>
/dev/fb0</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN
lang=EN-US>/dev/fb1 </SPAN><SPAN
style="FONT-FAMILY: 宋体">等等。</SPAN></P>
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体">可以用命令</SPAN><SPAN
lang=EN-US>: #dd if=/dev/zero of=/dev/fb </SPAN><SPAN
style="FONT-FAMILY: 宋体">清空屏幕</SPAN><SPAN lang=EN-US>.</SPAN></P>
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体">如果显示模式是</SPAN><SPAN
lang=EN-US> 1024x768-8 </SPAN><SPAN
style="FONT-FAMILY: 宋体">位色,用命令:</SPAN><SPAN lang=EN-US>$ dd
if=/dev/zero of=/dev/fb0 bs=1024 count=768 </SPAN><SPAN
style="FONT-FAMILY: 宋体">清空屏幕</SPAN></P>
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体">用命令</SPAN><SPAN
lang=EN-US>: #dd if=/dev/fb of=fbfile
<SPAN> </SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体">可以将</SPAN><SPAN lang=EN-US>fb</SPAN><SPAN
style="FONT-FAMILY: 宋体">中的内容保存下来;</SPAN></P>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体">可以重新写回屏幕</SPAN><SPAN lang=EN-US>: #dd
if=fbfile of=/dev/fb</SPAN></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -