uClinux 摄像头 mmap错误

论坛落寞 不许连续发问  只能放这了

 一

使用uClinux接摄像头,想采集摄像头图形然后以太网传出去。
在虚拟机上测试mjpg_streamer是没问题的,可uClinux上没mmu,不支持动态库,所以移植mjpg-streaner暂停。
自己从网上搜集了图像采集程序,在虚拟机上测试通过。
摄像头驱动编译进内核,应该可以识别出摄像头,/sys/class/video4linux下有video0设备出来。
拿到uClinux上,一些ioctl操作如req、querybuf、fmtset等都能通过,到mmap将内核空间映射到用户空间这一步出问题了。
提示“no such device”...意思应该是不支持mmap吧。
问题:
1、uC为什么不能支持mmap()?
2、uClinux上怎么实现这个功能?(最好能详细点,新手)

 

UVC免驱摄像头 还需要对应这个的驱动吗?
比如现在手里有松瀚(0c45:62f0)、sigma micro(1c4f:3000)两个摄像头
目前uclinux可以识别出设备号 识别为input设备 但是没有产生/dev/video0 内核是2.6.33 按照网上说明 这两个都已经装进内核了 但把所有gspca的驱动全部加载了 也还是没有/dev/video0
但在Fedora linux下就可以产生/dev/video0
这种情况还需要摄像头对应驱动吗?linux下怎么办,找不到驱动源码?

 

虚拟机上程序可以运行 因此从虚拟机入手 看他加载了哪些驱动模块 
lsmod 可以看到 v4l1_compat.ko videodev.ko uvcvideo.ko 三个模块 所以可以断定不需要其他驱动了 将内核编译时把这三个选成module编出ko文件就可以了 


mmap(NULL,buf.length.PROT_READ,0x01,fd,0)
不报invalid argumentsle,报错no such device

fd=open("/dev/video0",O_RDONLY);  打开设备正常
0x01 -> PROT_SHARED

google一下,搜索出不少资料,看来英文搜索还是google管用。

下面是关于linux-UVC的补丁,都是提到内核不支持nommu的情形,在XXX版本打了补丁,开始支持nommu。

http://lists.openwall.net/linux-kernel/2011/03/10/53

http://lists.openwall.net/linux-kernel/2011/04/08/122

自己尝试了一下,出现USB底层错误。

移植停止。

结论:

使用uclinux的话,若要使用uvc通用摄像头驱动或者其他什么,最好先看一下版本是否支持nommu。否则,尽是折磨。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值