FrameBuffer
来源:互联网 发布:传智播客 c语言笔记 编辑:程序博客网 时间:2024/05/29 06:53
在做USB摄像头采集数据并显示到屏幕上的时候,由于之前没有学过openCV之类的界面编程,所以只能使用FrameBuffer进行显示了。下面对FrameBuffer进行一下总结。
FrameBuffer的作用我的理解和/dev/mem的作用的是相似的。/dev/mem是一个pcie总线所有设备的用户层驱动,即/dev/mem能操作pcie总线设备中的任何内存,可以对其进行读写。FrameBuffer是显卡内存的一个映像,即我们可以通过FrameBuffer设备对显卡进行直接读写操作。
那么,这里有一个问题是,既然是通过FrameBuffer对显卡进行操作的,那么是不是就不用到显卡的实际驱动了,我的理解这里是没有用到显卡的实际驱动的,这在后面会有验证。
1,在设置Framebuffer的过程中,出现了一个问题,就是设置命令行界面的分辨路。晚上有很多教程,对于centos6,只需要在grub的启动控制文件/boot/grub/menu.lst里添加vga=?就可以实现:
kernel /vmlinuz-2.6.32-573.22.1.e16.x86_64 ro root =/dev/mapper/VolGroup-lv_root....quiet vga=0x31B这里vga=0x31B本意是设置命令行终端的分辨率为1280x1024x32,但是在我使用的这个主机中,一直不成功,直到后来我查看/var/log/messages文件看启动日志,在日志里面有一行:
fb: conflicting fb hw usage nouveaufb vs VESA VGA-removing generic driver Console: switching to colour dummy device 80x25在启动启动fb驱动的时候,网上的很多教程应该都是vesafb来作为fb驱动启动的,但是这里出现了nouveaufb作为fb的驱动来启动,而且nouveaufb覆盖了原先在grub下面设置的应该传给vesafb的参数(vga=0x31B),其实在我这个主机中,查看/var/log/messages看到,首先启动的是vesafb:
vesafb: mode is 1280x1024x32 vesafb: scrolling: redraw Console: switching to colour frame buffer device 80x30 fb0: VESA VGA frame buffer device但是后来的nouveaufb的启动替代了vesafb,所以grub里面的设置就无效了。,
2,nouveau是Nvidia显卡的开源驱动,在nouveau里面有一个模块的nouveaufb作为framebuffer,这里我想把nouveaufb这个在内核启动的时候禁用了,但是我尝试了一下,失败了,在网上看,可以在mene.lst里面加上nomodeset这个参数,这个参数是在内核启动的时候不加载nouveau驱动,这样的话,驱动显卡就是vesafb了,当然menu.lst里面的vga=?参数也就有效了。在/var/log/messages里面,没有出现nouveau的记录。
即使这样成功了,但是显卡驱动没有驱动,只是利用vesafb来驱动显卡,这样会不会有什么问题我现在还不清楚。
- FrameBuffer
- FrameBuffer
- FrameBuffer
- Framebuffer
- framebuffer
- FrameBuffer
- Framebuffer
- FrameBuffer
- FrameBuffer
- framebuffer
- framebuffer
- FrameBuffer
- framebuffer
- framebuffer
- framebuffer
- FrameBuffer
- framebuffer
- FrameBuffer
- ZPL 打印条码、二维码及小票(中文/汉字),生成条码、二维码图片【Asp.Net】-含示例代码
- Struts2验证框架的配置及Validation.Xml常用的验证规则
- [POJ1236]Network of Schools(Tarjan缩点+强连通分量)
- 使用jbox做列表选择
- 用php和mysql开发招聘网站
- FrameBuffer
- VideoView 获取当前播放时间
- 高cpu排查
- sdut 2883 Hearthstone II (第二类Stiring数)
- 万物共享的物联网架构
- 研发管理总结
- 极光推送步骤(ios)
- MVC学习
- Java: JNI完全手册