Firefly开源社区

标题: 自編译出的system.img打开MIPI相机失败 [打印本页]

作者: ancientcc    时间: 2018-5-22 11:49
标题: 自編译出的system.img打开MIPI相机失败
本帖最后由 ancientcc 于 2018-5-22 11:54 编辑

开发板:AIO-3288J
因为怕不是最新,昨天重下的源码,能确认下载的是最新Android源码:firefly-rk3288_android5.1_git_20180126.tar.gz
-----------------------------------------------

从firefly买的MIPI接口的摄像头,运行开发板自带的Andorid5.1固件,一切正常,包括用摄像头拍照。我们要增加功能,需要自定义固件。按网站写的用以下命令进行編译。
  1. source build.sh
  2. lunch rk3288_AIO_box-userdebug
  3. make -j8
  4. ./mkimage.sh
复制代码

編译出system.img。然后在ubuntu下用upgrade_tool把这system.img烧入开发板。开发板进入桌面,HDMI正常,但一运行“相机”就非法退出。通过看调试信息应该是打开摄像头失败。

按上面方法編译出的system.img是不是不支持MIPI摄像头?

网站另外提供了“官方脚本編译 HDMI+MIPI显示编译”,但我运行以下命令后(ubuntu 16.04 LTS)。
./FFTools/make.sh -d firefly-rk3288-AIO_mipi -j8 -l rk3288_AIO_box-userdebug
执行出现了错误。
  1. ancientcc@ancientcc-TM1604:~/firefly-rk3288$ ./FFTools/make.sh -d firefly-rk3288-AIO_mipi -j8 -l rk3288_AIO_box-userdebug
  2. ./FFTools/make.sh: 非法选项 -- d
  3. usage: make.sh [-j make_thread]
  4. ancientcc@ancientcc-TM1604:~/firefly-rk3288$
复制代码


用手动编译方法,该怎么編译出支持HDMI+MIPI显示的Android固件?
作者: jpchen    时间: 2018-5-22 14:18
内核:
make firefly-rk3288-AIO_mipi_defconfig;
make firefly-rk3288-AIO_mipi.img -j8;
android:
source build.sh;lunch rk3288_AIO_box-userdebug; make installclean;make -j8

作者: ancientcc    时间: 2018-5-22 14:23
jpchen 发表于 2018-5-22 14:18
内核:
make firefly-rk3288-AIO_mipi_defconfig;
make firefly-rk3288-AIO_mipi.img -j8;

自編译system.img已经可以访问MIPI摄像头了。

另外,我们定制固件的一个主要目的是要用USB摄像头(支持UVC),对让AIO3328J支持USB摄像头,有什么参考资料吗?
作者: jpchen    时间: 2018-5-22 14:30
内核:
make firefly-rk3288-AIO_mipi_defconfig;
make firefly-rk3288-AIO_mipi.img -j8;
android:
source build.sh;lunch rk3288_AIO_box-userdebug; make installclean;make -j8

作者: jpchen    时间: 2018-5-29 15:58
ancientcc 发表于 2018-5-22 14:23
自編译system.img已经可以访问MIPI摄像头了。

另外,我们定制固件的一个主要目的是要用USB摄像头(支 ...

一般的UVC摄像头都是可以使用的,如果使用不了可以把log发上来看看
作者: ancientcc    时间: 2018-5-30 08:23
jpchen 发表于 2018-5-29 15:58
一般的UVC摄像头都是可以使用的,如果使用不了可以把log发上来看看

已在用uvc摄像头,把CAMERAS_SUPPORTED_SIMUL_MAX改为2后,可以同时取两个摄像头图像了。

有人说开发板存在无法区分两个USB摄像头问题,接下我会去测,但不知这问题是否真的存在?

重启开发板,系统的日期、时期会回到默认值。由于app要调用有日期限制的人脸识别sdk,这给开发带来点小麻烦。你们要是有新版,建议修正下,像在联网状态时,如果使能“设置”中的“自动确定日期和时间”就立即较正下。
作者: jpchen    时间: 2018-5-30 09:01
ancientcc 发表于 2018-5-30 08:23
已在用uvc摄像头,把CAMERAS_SUPPORTED_SIMUL_MAX改为2后,可以同时取两个摄像头图像了。

有人说开发 ...

开发板有个RTC接口接钮扣电池,接上可以让RTC保持时间
作者: ancientcc    时间: 2018-5-30 22:22
jpchen 发表于 2018-5-30 09:01
开发板有个RTC接口接钮扣电池,接上可以让RTC保持时间

如何区分两个USB摄像头。

让开发板只连一个uvc摄像头,当连的USB口是位在只有一个的那个口时,open时用的设备驱动路径是/dev/video0。把摄像头换到两个叠着的上面那个USB口,open时用的设备驱动路径还是/dev/video0。这意味着虽然是两个不同的物理USB口,但设备驱动路径是同一个,那我该怎么区分两个USB摄像头,或你们建议是用什么方案区分呢?
作者: jpchen    时间: 2018-5-31 11:30
可以尝试使用摄像头的idVendor 和 idProduct当创建节点的时候区分
作者: ancientcc    时间: 2018-5-31 19:22
jpchen 发表于 2018-5-31 11:30
可以尝试使用摄像头的idVendor 和 idProduct当创建节点的时候区分

希望能说得更详细些。用的摄像头是一同厂家、同一型号,因而idVendor、idProduct是同一个值。

你说“使用摄像头的idVendor 和 idProduct当创建节点”,这里的创建节点指的是uvc_alloc_entity(<media>/usb/uvc/uvc_driver.c)函数吗?区分不同USB口靠的是什么参数?




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1