这两天看了一些关于Linux下Gui的介绍,但是对Framebuffer有一些疑问,请高人帮忙解答一下: 1.framebuffer在操作系统中处于什么位置呢?驱动和应用中间?和framebuffer一级的还有什么技术? 也就是说在开发一个系统的时候除了framebuffer还有什么别的选择? 2.我们在开发一个新系统的时候如果想要用framebuffer的话,是否还需要自己写相关显示芯片基于framebuffer的驱动呢? 那么如果我的芯片本身支持一些加速的特殊处理,在freambuffer中怎么体现? 3.如何知道显示芯片是否支持framebuffer的操作?选择framebuffer时候需要注意什么?怎样知道自己的系统是否适合使用framebuffer呢? 在这里先谢谢啦 :) 更多2分享到: |
发表于: 2009-04-22 11:06:08 楼主 回复次数:32 |
morris88
| 帧缓冲设备提供了显卡的抽象描述。他同时代表了显卡上的显存,应用程序通过定义好的接口可以访问显卡,而不需要知道底层的任何操作。该设备使用特殊的设备节点,通常位于/dev目录,如/dev/fb*. |
回复于: 2009-04-22 11:10:13#1 得分:20 |
猫已经找不回了 | http://hi.baidu.com/abor/blog/item/8520942b7d5a24f9e6cd40fc.html |
回复于: 2009-04-22 11:31:27#2 得分:20 |
zhou_CC | framebuffer在操作系统中处于什么位置呢? |
回复于: 2009-04-22 13:31:49#3 得分:0 |
sunwill_chen |
|
回复于: 2009-04-22 15:20:41#4 得分:30 |
rzsheng | 一楼,二楼的说得都很好。 |
回复于: 2009-04-22 15:29:26#5 得分:2 |
zhou_CC | 引用 4 楼 sunwill_chen 的回复:
1.framebuffer在操作系统中处于什么位置呢?framebuffer属于驱动层 感谢sunwill_chen 的耐心回答 想再问一下,那framebuffer和Xserver是什么关系呢? 我们现在很多的GUI也有直接建立在Xserver上的。我想问这类的选择都有那些?? |
回复于: 2009-04-22 15:34:40#6 得分:0 |
hjx855 | 长见识了 |
回复于: 2009-04-22 15:35:52#7 得分:1 |
disikj | 简单的说就是 你写到fb里面的数据会立刻以像素的方式显示到屏幕上, |
回复于: 2009-04-22 20:17:49#8 得分:5 |
zhou_CC | 引用 8 楼 disikj 的回复:
简单的说就是 你写到fb里面的数据会立刻以像素的方式显示到屏幕上, 你说的这个我明白,但是我想知道在Framebuffer与Xwindows之外 还有什么底层描画库是我们在Linux开发Gui的时候常用的呢? 例如Qt/Embedded他基于的是什么? |
回复于: 2009-04-22 20:54:56#9 得分:0 |
xempo | 设备文件:/dev/fb0 ... |
回复于: 2009-04-22 20:58:36#10 得分:1 |
sunwill_chen | 引用 6 楼 zhou_CC 的回复:
引用 4 楼 sunwill_chen 的回复: Linux下的显卡驱动有两层, 一个是kernel层的也就是framebuffer驱动, 另一个是Xserver层驱动, 在进入X-windows之前是由framebuffer来驱动, 进入X-windows之后由XSERVER层的驱动作用(/etc/X11/xorg.conf中可以设置显卡等驱动), 当然如果你想要在X-WINDOWS上用framebuffer驱动也可以, 可以使用Xserver中的fbdev驱动, 这个驱动可以指定你要使用kernel层的framebuffer, 比如在xorg.conf中这样写 Section "Device" Identifier "Videocard0" Driver "fbdev" VendorName "Videocard vendor" BoardName "VESA driver (generic)" BusID "PCI:0:14:0" Option "fbdev" "/dev/fb1" #使用/dev/fb1这个framebuffer驱动 EndSection |
回复于: 2009-04-23 09:21:28#11 得分:10 |
zhou_CC | 说白了Framebuffer是在内核中,而Xwindows只不过是一个用户进程而已。 |
回复于: 2009-04-23 10:09:20#12 得分:0 |
bxhzct | 这个问题个很好,终于学习了。/dev/fb* 的字符节点的含义,谢谢 |
回复于: 2009-04-23 11:27:53#13 得分:1 |
cfy84 | framebuffer是一块显示内存,相当于存放着一桢视频数据当然是I桢。硬件会将这块内存中的数据以事先设定好的格式以及一定的刷新速率来进行显示。格式中规定了一个像素所占的字节,是否有透明等。所有的图形库都是在framebuffer之上的,将数据写入framebuffer让硬件显示出来。 |
回复于: 2009-04-23 11:37:05#14 得分:4 |
sunwill_chen | 引用 12 楼 zhou_CC 的回复:
那我要是想在Framebuffer上搭建自己的Gui的话,那么是不是事件相关的事情就要自己处理了?? framebuffer驱动有提供很多硬件接口, 比如DirectFB, QT等都是基于这些硬件接口来工作的. 应该说控制台程序是基于framebuffer的, 控制台驱动程序指的应该就是framebuffer驱动吧. |
回复于: 2009-04-23 11:41:09#15 得分:5 |
once_and_again | 引用 5 楼 rzsheng 的回复:
一楼,二楼的说得都很好。长见识了. |
回复于: 2009-04-23 17:43:05#16 得分:1 |
xiaoguo1416 | 非常感谢楼主的介绍 |
回复于: 2010-01-07 14:31:18#17 得分:0 |
imafool | 很多人看明白了,而我却看得糊涂,寒…… |
回复于: 2010-07-05 10:51:19#18 得分:0 |
changing_better | 看回复 |
回复于: 2011-05-24 11:13:10#20 得分:0 |
zengyi820306 | 哪位高人,能讲讲 framebuffer 与qt的关联么,原理流程以及具体怎么调用的,好像qt里的最后一个调用就是ioctrl函数,但是这怎么就跟内核的framebuffer 关联起来了?? |
回复于: 2011-11-08 23:10:48#21 得分:0 |
eliry | 不懂,求解! |
回复于: 2011-12-22 15:48:14#22 得分:0 |
cxxy328 | 关于framebuffer的问题,求解 |
回复于: 2011-12-28 15:43:27#23 得分:0 |
cxxy328 | 关于framebuffer的问题,求解 |
回复于: 2011-12-28 15:44:45#24 得分:0 |
灼眼的超哥 | 引用 21 楼 zengyi820306 的回复:
哪位高人,能讲讲 framebuffer 与qt的关联么,原理流程以及具体怎么调用的,好像qt里的最后一个调用就是ioctrl函数,但是这怎么就跟内核的framebuffer 关联起来了?? qt绘制的图形需要写入framebuffer才能显示在屏幕上,否则,qt生成的图形只是在内存中,而不能显示到屏幕。 |
回复于: 2012-01-05 15:13:05#25 得分:0 |
luke1989 | 来学期啊 |
回复于: 2012-01-08 21:44:04#26 得分:0 |
chengliangqq | 向各位高手学习了! |
回复于: 2012-07-09 11:02:43#28 得分:0 |
lvtingting2007 | 好帖,谢谢 |
回复于: 2012-07-19 20:49:10#29 得分:0 |
kevin-Liu | 从上到下看了一遍,但可能是我愚钝,还是不太明白。对于framebuffer有了一个大概的认识,但对于如何使用framebuffer还是不太清楚。还有就是现在跟framebuffer相似的还有哪些技术。 |
回复于: 2012-07-23 10:33:07#30 得分:0 |
天道张 | 学习了,好帖! |