20230520查找中国移动的APP在RK3566下调用UVC摄像头出错

news2024/11/24 4:21:13

20230520查找中国移动的APP在RK3566下调用UVC摄像头出错
2023/5/20 23:34


SDK:Android12
RK3566平台  android12  UVC camera  没插摄像头,但是/dev/video0-13标号被占用,是啥原因导致的
板子上也没有摄像头
【板子没有接CSI/MIPI接口的I2C通道的摄像头】


1、查找/dev/videoX尝试确认问题:
v4l2-ctl --list-devices
确定有多余的东西
v4l2-ctl --list-formats-ext --device /dev/video9  


v4l2-ctl --list-formats-ext --device /dev/video9  
rk3566_s:/ # v4l2-ctl --list-devices
rkisp-statistics (platform: rkisp):
    /dev/video12
    /dev/video13

rkcif (platform:rkcif_mipi_lvds):
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3
    /dev/video4

rkisp_mainpath (platform:rkisp-vir0):
    /dev/video5
    /dev/video6
    /dev/video7
    /dev/video8
    /dev/video9
    /dev/video10
    /dev/video11


应该是2手(SDK),没有其他开发板了,所以没测试过。
只对比过之前公司一个项目是其他公司的板子,上面也是RK3566和Android11,是正常的。
怀疑rkcif (platform:rkcif_mipi_lvds)这些节点是RK自己生成的


2、SDK的编译步骤:
source build/envsetup.sh
lunch rk3566_s-userdebug
./build.sh -AUCKu -d rk3566-evb2-lp4x-v10


E/Camera-JNI: android_hardware_Camera_getCameraInfo: Unknown camera ID 114


RK3566使用Android12(linux-5.10)
<11>[  529.484636][    T1] init: Control message: Could not find 'aidl/SurfaceFlinger' for ctl.interface_start from pid: 231 (/system/bin/servicemanager)
<11>[  530.460081][    T1] init: Control message: Could not find 'aidl/SurfaceFlinger' for ctl.interface_start from pid: 231 (/system/bin/servicemanager)
<11>[  530.485531][    T1] init: Control message: Could not find 'aidl/SurfaceFlinger' for ctl.interface_start from pid: 231 (/system/bin/servicemanager)
<14>[  530.832660][    T1] init: starting service 'surfaceflinger'...

卡在开机了起不来


3、这里的100改为0就可以
/media/imab/data/rk/RK3566/hardware/interfaces/camera/device/3.4/default /ExternalCamerautils.cpp (hardware)

Z:\RK3588-sdk\hardware\interfaces\camera\device\3.4\default\ExternalCameraUtils.cpp


int AllocatedV4L2Frame::getData(uint8_t** outData, size_t* dataSize) {
    if (outData == nullptr || dataSize == nullptr) {
        ALOGE("%s: outData(%p)/dataSize(%p) must not be null", __FUNCTION__, outData, dataSize);
        return -1;
    }

    *outData = mData.data();
    *dataSize = mData.size();
    return 0;
}

AllocatedV4L2Frame::~AllocatedV4L2Frame() {}

}  // namespace implementation
}  // namespace V3_6
}  // namespace device


namespace external {
namespace common {

namespace {
    const int kDefaultCameraIdOffset = 0;  // 100
    const int kDefaultJpegBufSize = 5 << 20; // 5MB
    const int kDefaultNumVideoBuffer = 4;
    const int kDefaultNumStillBuffer = 2;
    const int kDefaultOrientation = 0; // suitable for natural landscape displays like tablet/TV
                                       // For phone devices 270 is better
} // anonymous namespace

const char* ExternalCameraConfig::kDefaultCfgPath = "/vendor/etc/external_camera_config.xml";


结论:
移动云APP是调用的camera1接口,那个接口应该是被camera2接口取代了,那里面对camera id的判断逻辑有点问题。
而我们现在的USB camera的id默认会加100的offset值,比如说设备节点是/dev/video14,camera id就是114。
这样导致在那里面会直接抛异常,现在就是在camera的HAL层生成camera id时去掉那个offset值,直接和设备节点保持匹配就能适配camera1了。


这样干之后会有其他后果不!比如和i2c摄像头冲突
不会的,如果有其他摄像头会排在usb camera前面


cvitek晶视的cv1826也出现这种情况了 
从video100开始:
/dev/video100
/dev/video102
/dev/video103
/dev/video104
/dev/video105
/dev/video106
/dev/video107
/dev/video109


RK3566+Android12:我那个代码是4.19

Z:\smartpen\linux\build\cv1826_wevb_0005a\.config
CV1826:# Linux/arm 4.19.164 Kernel Configuration


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/549683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统(持续更新)

操作系统的定义 操作系统&#xff08;operating system&#xff0c;OS&#xff09;是配置在计算机硬件上的第一层软件&#xff0c;是对硬 件系统的首次扩充&#xff0c;其主要作用是管理硬件设备&#xff0c;提高它们的利用率和系统吞吐量&#xff0c;并为 用户和应用程序提供一…

Spring Cloud 和3种架构分析 以及微服务的详细分析和示意图

目录 SpringCloud & SpringCloud Alibaba架构介绍 Spring Cloud 基本介绍 官方文档 提出问题, 引出微服务 单机架构 - 示意图 动静分离架构&#xff1a;静态缓存 文件存储 解析 分布式架构&#xff1a;业务拆分负载均衡 解析 微服务架构&#xff1a;使用Spring Clo…

UE C++ Windows平台调用讯飞语音合成接口

UE C Windows平台调用讯飞语音合成接口 环境设置调用讯飞语音接口回放语音数据输出EXE 环境设置 下载讯飞语音合成的Windows平台的C版本SDK&#xff0c;包含lib库文件和dll动态链接库在UE工程下新建一个ThirdParty/msc目录&#xff0c;将lib库文件和dll动态链接库放入其中[PRO…

mybatis是如何集成到spring的之托管mapper接口

前言 mybatis集成到spring可以参考spring mvc集成mybatis进行数据库访问 &#xff0c;其中mybatis集成到spring最重要的两个配置分别是SqlSessionFactoryBean和MapperScannerConfigurer&#xff0c;如下所示&#xff1a; <!--mybatis sqlSeesionFactory配置--><bean…

实验五 串行通讯建模以及教程

目录 教程&#xff1a; 第一步下载matlib 第二步找到Simulink 相关文件 链接&#xff1a;https://pan.baidu.com/s/1Im-TUVfV4d8dok2ebXbmjw?pwd2222 提取码&#xff1a;2222 【实验目的】 1、了解MATLAB软件环境和Simulink建模过程&#xff0c;掌握Simulink图形化编程方…

给 compose draw 绘制的非规则图形添加点击监听

前言 导言 在之前的两篇文章中&#xff0c;我们从实例出发&#xff0c;以实践的方式简单介绍了 compose 自定义绘制&#xff08;如何自己绘制想要的控件&#xff09;、为自定义绘制增加动画&#xff08;让控件动起来&#xff09;。 在这篇文章中&#xff0c;我们依然从实例出…

Linux 权限-+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 当时间的主人&#xff0c;命运的主宰&#xff0c;灵魂的舵手。上一回已将基础权限全部学习完了&#xff0c;本章开始我们将进入到权限的学习。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分…

基于Gitee的webhook编写hugo的自动构建实现博客自动更新

前言 差不多半年前趁着某云优惠&#xff0c;我买了5年的轻量级应用服务器。 拿着这个服务器原本打算做我的某个APP的服务端的&#xff0c;后来又觉得迁移数据好麻烦&#xff0c;所以随便搞了个博客上去。 选来选去&#xff0c;使用了 hugo 作为构建引擎。 正好&#xff0c;…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(1)整体实现思路

前言 为什么写这系列文章 虽然 compose 正式版已经出来很久了&#xff0c;也有很多大佬写了很多教程文章和实例 demo &#xff0c;但是对于 compose 其实我也还是一知半解的。 特别是对于 compose 的状态管理&#xff0c;由于 compose 声明式的特性&#xff0c;如果不对状态…

chatgpt赋能Python-pythonfor怎么用

PythonFor SEO&#xff1a;如何利用Python提高SEO效果 SEO&#xff08;搜索引擎优化&#xff09;是现代数字营销中至关重要的一环。随着搜索引擎算法不断发展&#xff0c;优化网站以提高排名已经成为了一门复杂的艺术。幸运的是&#xff0c;Python提供了一些强大的工具来简化这…

chatgpt赋能Python-pythonelem

PythonELEM - 简易的Python学习工具 作为一名有10年Python编程经验的工程师&#xff0c;我可以深刻地体会到新手们学习Python的难处。PythonELEM是一个以Python为主题的学习工具&#xff0c;它可以帮助初学者更容易地掌握Python编程。 PythonELEM的功能 PythonELEM是一个简易…

餐饮油烟排放监测管理系统的设计与应用

安科瑞虞佳豪 连日来&#xff0c;河东区生态环境保护综合行政执法支队组织开展餐饮行业油烟净化专项检查工作&#xff0c;有效应对即将到来的夏季餐饮油烟对环境的污染&#xff0c;着力解决群众身边的环境问题。 执法人员对辖区餐饮商户集中区域开展常态化巡查&#xff0c;重…

Metal入门学习:绘制渲染三角形

一、编程指南PDF下载链接(中英文档&#xff09; 1、Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习PDF/Metal 编程指南.pdf 2、Metal着色语言(Metal Shader Language:简称MSL)编程指南PDF链接 https://github.com/dennie-lee/ios_te…

chatgpt赋能Python-pythoncumsum

Python中的cumsum-累积求和函数 在数据处理中&#xff0c;经常需要对一个序列的元素进行累加。Python中提供了累积求和函数cumsum()&#xff0c;用于对一个序列的元素进行累加求和操作。 什么是cumsum()函数 cumsum()函数是Python中numpy模块中的一个函数&#xff0c;用于对…

通过小米万兆路由器将小米SoundMove 无缝接入 ChatGPT

通过小米万兆路由器将小米SoundMove 无缝接入 ChatGPT 本教程内容参考 Github 地址(可选)部署查看小米 SoundMove 信息的环境(可选)查看小米 SoundMove 的信息以容器方式部署程序到小米万兆路由器实际效果有待改善点 本教程内容 1 是记录了将小米 SoundMove 接入 ChatGPT 的操…

面向《海贼王》领域数据的知识图谱项目

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本次任务试图为《海贼王》中出现的各个实体&#xff0c;包括人物、地点、组织等&#xff0c;构建一个知识图谱&#xff0c;帮助我们更好的理解这部作品。 项目内容包括数据采集、知识存储、知识抽取、知识计算、知识应用五大部…

【运动规划算法项目实战】如何使用Pure Pursuit算法进行路径跟踪(附ROS C++代码)

文章目录 前言一、简介二、Pure Pursuit算法优缺点三、 代码实现3.1 算法实现步骤3.2 pure_pursuit.h3.3 pure_pursuit.cpp3.4 cubic_spline_path.py3.5 节点连接关系3.6 RVIZ显示四、总结前言 在自动驾驶和机器人导航领域,路径跟踪是一项关键技术,它使车辆或机器人能够按照…

多线程排序法

多线程排序法 chatGPT给我改的多线程排序法 using System.Collections.Concurrent; using System.Threading; ConcurrentBag<int> sortedList new ConcurrentBag<int>(); void Sort() { int[] arr {2, 6, 12, 8}; List<Thread> threads new List<Threa…

chatgpt赋能Python-pythondone

PythonDone&#xff1a;将Python编程变得更加简单 介绍 Python是一种有着广泛应用的高级编程语言&#xff0c;由于其简洁易学、开发效率高、可移植性好等特点&#xff0c;成为业内最热门的技术之一。但是&#xff0c;对于一些初学者来说&#xff0c;Python的学习过程可能还是…

【论文分享|SIGMOD‘22】WeTune 自动发现和验证重写规则

作者&#xff1a;谢其骏 北京航空航天大学在读硕士&#xff0c; Databend 研发工程师实习生 https://github.com/jun0315 论文原文&#xff1a; Zhaoguo Wang, Zhou Zhou, Yicun Yang, Haoran Ding, Gansen Hu, Ding Ding, Chuzhe Tang, Haibo Chen, Jinyang Li. WeTune: Auto…