20260116让天启AIO-3576Q38开发板在天启Android14下适配摄像头模块8ms1m为8M拍照

20260116让天启AIO-3576Q38开发板在天启Android14下适配摄像头模块8ms1m为8M拍照

2026/1/15 18:04

缘起:给飞凌OK3588-C开发板适配Rockchip原厂的Android14后,需要适配CAM3接口的摄像头OV5645。

给飞凌OK3588-C开发板适配Rockchip原厂的Android14后,需要适配CTP触摸屏FT5X06。

当你把荣品RD-RK3588开发板重新适配一把,就相当于从头做了一个项目:【荣品RD-RK3588开发板】。

当然,开发板的功能都是好的,你免除了调试的过程,也就没有解决相关硬件出错的经验/机会了!

https://wiki.t-firefly.com/CAM-8MS1M/cam-8ms1m.html

800W单目摄像头

YUV的话,我们适配的只有这个

开发板收到。今天 要进行全接口功能测试。请提供 测试 步骤?

请提供 icore-3576JQ38开发板的 全套SDK(Andorid14/Buildroot Linux-6.1内核?)?

链接: https://pan.baidu.com-s/1ixM4N83KRiArLLKPkgCyVg

提取码: 1234

收到。应该 3576的 buildroot。

Android14也发一下。方便我司比对。

还有就是 预编译 固件 等相关资料也发一下

【全套的相关资料都发一下。我一次性搞定!】

麻烦看下客户要的资料,这边出差了

Baidu Drive: 链接:https://pan.baidu.com-s/1G9o8UTuO3Zkyq7YW4452_w?pwd=1234 PASSWD:1234

再更新bundle后选中rk3576_firefly_aio_3576q38-userdebug后编译

我在官网看了一下。没有 看到 Buildroot/Linux的预编译固件呀?

https://wiki.t-firefly.com/zh_CN/AIO-3576Q38/linux_compile.html

1.3.2. 编译前配置

https://www.t-firefly.com/doc/download/293.html

AIO-3576Q

https://www.t-firefly.com/doc/download/327.html

ICORE-3576Q38

https://www.t-firefly.com/doc/download/320.html#other_825

需要把bundle也下载更新

一、天启AIO-3576Q38开发板在天启Android14下是不能启动的,刷机就进入MASKROM模式。

更新为天启的buildroot的rkbin目录即可!【整体替换】

二、天启AIO-3576Q38开发板在天启Buildroot下无法打开摄像头模块8ms1m

1、将摄像头 接入 哪一个接口?CSI1/2 还是CSI3/4

还是都可以?

2、SDK中的DTS需要 改不?默认 有加入 摄像头吗??@梁凯迪

默认有加的

CSI3/4不能用

其他都可以

已经 接到CSI1/2了。

按个试一下 /dev/video节点。都不能显示呀!

Microsoft Windows [版本 10.0.19045.6466]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
* daemon not running; starting now at tcp:5037
* daemon started successfully
root@rk3576-buildroot:/# v4l2-ctl --list-devices
rkisp-statistics (platform: rkisp):
/dev/video28
/dev/video29

rkcif-mipi-lvds (platform:rkcif-mipi-lvds):
/dev/media0

rkcif-mipi-lvds1 (platform:rkcif-mipi-lvds1):
/dev/media1

rkisp_mainpath (platform:rkisp-vir1):
/dev/video22
/dev/video23
/dev/video24
/dev/video25
/dev/video26
/dev/video27
/dev/video30
/dev/media2

rkvpss_scale0 (platform:rkvpss-vir1):
/dev/video32
/dev/video33
/dev/video34
/dev/video35
/dev/media3

Failed to open /dev/video0: No such device
root@rk3576-buildroot:/#

<!-- ******************PSL specific section end **************************************************************-->

</Profiles>

<Profiles cameraId="0" name="xc7160" moduleId="m00">

<Supported_hardware>

<hwType value="SUPPORTED_HW_RKISP1"/>

</Supported_hardware>

<Android_metadata> <!-- Android static metadata only -->

<!-- Color Correction -->

<colorCorrection.availableAberrationModes value="OFF"/>

<!-- Control -->

<control.availableModes value="AUTO"/>

<control.aeAvailableAntibandingModes value="OFF,50HZ,60Hz,AUTO"/>

<control.aeAvailableModes value="ON,OFF"/>

<control.aeLockAvailable value="FALSE"/>

<!-- <control.aeAvailableTargetFpsRanges value="15,30,30,30,60,60"/> -->

<control.aeAvailableTargetFpsRanges value="15,30,30,30,60,60"/>

<control.aeCompensationRange value="-6,6"/>

<control.aeCompensationStep value="1,3"/>

<control.afAvailableModes value="OFF,AUTO,MACRO,CONTINUOUS_VIDEO,CONTINUOUS_PICTURE,EDOF"/>

<control.availableEffects value="OFF"/>

<!-- <control.awbAvailableModes value="AUTO"/> -->

<control.awbAvailableModes value="AUTO,INCANDESCENT,FLUORESCENT,DAYLIGHT,CLOUDY_DAYLIGHT"/>

<control.awbLockAvailable value="true"/>

<control.availableSceneModes value="DISABLED"/>

<control.availableVideoStabilizationModes value="OFF"/>

<control.maxRegions value="1,0,1"/>

<!-- JPEG -->

<jpeg.maxSize value="19267584"/> <!-- 2688*1520*1.5 -->

<jpeg.availableThumbnailSizes value="0,0,160,120,320,180,320,240"/> <!-- INCREASING ORDER -->

<!-- Lens Info-->

<!-- TODO: availableApertures now is fake for we do not get the real apertures -->

<lens.info.availableApertures value="2.0"/> <!-- HAL may override this value from CMC for RAW sensors -->

<lens.info.availableFocalLengths value="70"/> <!-- HAL may override this value from CMC for RAW sensors -->

<lens.info.availableOpticalStabilization value="OFF"/> <!-- OPTIONS: OFF, ON -->

<lens.info.hyperfocalDistance value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->

<lens.info.minimumFocusDistance value="0.1"/> <!-- HAL may override this value from CMC for RAW sensors -->

<!-- Lens -->

<lens.facing value="BACK"/>

<!-- Request -->

<request.maxNumOutputStreams value="1,2,1"/>

<request.pipelineMaxDepth value="4"/>

<request.maxNumInputStreams value="0"/>

<request.partialResultCount value="1"/>

<!-- <request.availableCapabilities value="BACKWARD_COMPATIBLE,YUV_REPROCESSING,PRIVATE_REPROCESSING"/> -->

<request.availableCapabilities value="BACKWARD_COMPATIBLE"/>

<request.availableRequestKeys value="blackLevel.lock,

colorCorrection.aberrationMode,

colorCorrection.gains,

colorCorrection.transform,

control.aeAntibandingMode,

control.aeExposureCompensation,

control.aeLock,

control.aeMode,

control.aeTargetFpsRange,

control.aePrecaptureTrigger,

control.afMode,

control.aeRegions,

control.afRegions,

control.afTrigger,

control.awbLock,

control.awbMode,

control.captureIntent,

control.effectMode,

control.mode,

control.sceneMode,

control.videoStabilizationMode,

edge.mode,

flash.mode,

jpeg.gpsLocation,

jpeg.orientation,

jpeg.quality,

jpeg.thumbnailQuality,

jpeg.thumbnailSize,

lens.aperture,

lens.focalLength,

lens.opticalStabilizationMode,

noiseReduction.mode,

scaler.cropRegion,

statistics.faceDetectMode,

statistics.hotPixelMapMode,

statistics.sceneFlicker,

statistics.lensShadingMapMode

"/>

<request.availableResultKeys value="colorCorrection.mode,

colorCorrection.transform,

colorCorrection.gains,

colorCorrection.aberrationCorrectionMode,

control.aeAntibandingMode,

control.aeExposureCompensation,

control.aeLock,

control.aeMode,

control.aeTargetFpsRange,

control.aePrecaptureTrigger,

control.afMode,

control.aeRegions,

control.afRegions,

control.afTrigger,

control.awbLock,

control.awbMode,

control.captureIntent,

control.effectMode,

control.mode,

control.sceneMode,

control.videoStabilizationMode,

control.aeState,

control.afState,

control.awbState,

sync.frameNumber,

edge.mode,

flash.mode,

jpeg.gpsLocation,

jpeg.orientation,

jpeg.quality,

jpeg.thumbnailQuality,

jpeg.thumbnailSize,

lens.focalLength,

lens.aperture,

lens.opticalStabilizationMode,

request.pipelineDepth,

scaler.cropRegion,

sensor.testPatternData,

sensor.testPatternMode,

sensor.timestamp,

sensor.rollingShutterSkew,

statistics.faceDetectMode,

statistics.hotPixelMapMode,

statistics.faces,

noiseReduction.mode,

statistics.sceneFlicker,

statistics.lensShadingMapMode

"/>

<request.availableCharacteristicsKeys value="0"/>

<!-- Scaler -->

<scaler.availableMaxDigitalZoom value="4.0"/>

<scaler.availableInputOutputFormatsMap value="IMPLEMENTATION_DEFINED,2,YCbCr_420_888,BLOB,YCbCr_420_888,2,YCbCr_420_888,BLOB"/>

<scaler.availableStreamConfigurations value="

BLOB,3840x2160,OUTPUT,

BLOB,1920x1080,OUTPUT,

BLOB,1280x960,OUTPUT,

BLOB,1280x720,OUTPUT,

BLOB,640x480,OUTPUT,

BLOB,320x240,OUTPUT,

BLOB,176x144,OUTPUT,

YCbCr_420_888,3840x2160,OUTPUT,

YCbCr_420_888,1920x1080,OUTPUT,

YCbCr_420_888,1280x960,OUTPUT,

YCbCr_420_888,1280x720,OUTPUT,

YCbCr_420_888,640x480,OUTPUT,

YCbCr_420_888,320x240,OUTPUT,

YCbCr_420_888,176x144,OUTPUT,

IMPLEMENTATION_DEFINED,3840x2160,OUTPUT,

IMPLEMENTATION_DEFINED,1920x1080,OUTPUT,

IMPLEMENTATION_DEFINED,1280x960,OUTPUT,

IMPLEMENTATION_DEFINED,1280x720,OUTPUT,

IMPLEMENTATION_DEFINED,640x480,OUTPUT,

IMPLEMENTATION_DEFINED,320x240,OUTPUT,

IMPLEMENTATION_DEFINED,176x144,OUTPUT"/>

<scaler.availableMinFrameDurations value="

BLOB,3840x2160,33333333,

BLOB,1920x1080,16666667,

BLOB,1280x960,33333333,

BLOB,1280x720,33333333,

BLOB,640x480,33333333,

BLOB,320x240,33333333,

BLOB,176x144,33333333,

YCbCr_420_888,3840x2160,33333333,

YCbCr_420_888,1920x1080,16666667,

YCbCr_420_888,1280x960,33333333,

YCbCr_420_888,1280x720,33333333,

YCbCr_420_888,640x480,33333333,

YCbCr_420_888,320x240,33333333,

YCbCr_420_888,176x144,33333333,

IMPLEMENTATION_DEFINED,3840x2160,33333333,

IMPLEMENTATION_DEFINED,1920x1080,16666667,

IMPLEMENTATION_DEFINED,1280x960,33333333,

IMPLEMENTATION_DEFINED,1280x720,33333333,

IMPLEMENTATION_DEFINED,640x480,33333333,

IMPLEMENTATION_DEFINED,320x240,33333333,

IMPLEMENTATION_DEFINED,176x144,33333333" />

<scaler.availableStallDurations value="

BLOB,3840x2160,33333333,

BLOB,1920x1080,16666667,

BLOB,1280x960,33333333,

BLOB,1280x720,33333333,

BLOB,640x480,33333333,

BLOB,320x240,33333333,

BLOB,176x144,33333333" />

<scaler.croppingType value="CENTER_ONLY"/>

<!-- Sensor Info -->

<sensor.info.activeArraySize value="0,0,3840,2160"/>

<sensor.info.sensitivityRange value="32,2400"/>

<sensor.info.colorFilterArrangement value="BGGR"/> <!-- HAL may override this value from CMC for RAW sensors -->

<sensor.info.exposureTimeRange value="100000,15000000"/>

<sensor.info.maxFrameDuration value="66666666"/>

<sensor.info.physicalSize value="5.5,4.5"/> <!-- 4224x1.12um 3136x1.12um -->

<sensor.info.pixelArraySize value="3840x2160"/>

<sensor.info.whiteLevel value="0"/> <!-- HAL may override this value from CMC for RAW sensors -->

<sensor.info.timestampSource value="UNKNOWN"/>

<!-- Sensor -->

<sensor.baseGainFactor value="0,1"/> <!-- HAL may override this value from CMC for RAW sensors -->

<sensor.blackLevelPattern value="0,0,0,0"/>

<sensor.maxAnalogSensitivity value="2400"/> <!-- HAL may override this value from CMC for RAW sensors -->

<sensor.orientation value="0"/>

<sensor.profileHueSatMapDimensions value="0,0,0"/>

<sensor.availableTestPatternModes value="OFF,COLOR_BARS"/>

<!-- Info -->

<info.supportedHardwareLevel value="LIMITED"/>

<!-- shading -->

<!-- <shading.availableModes value="OFF"/> -->

<!-- Statistics Info -->

<statistics.info.availableFaceDetectModes value="OFF"/>

<statistics.info.histogramBucketCount value="0"/>

<statistics.info.maxFaceCount value="0"/>

<statistics.info.availableHotPixelMapModes value="OFF"/>

<statistics.info.availableLensShadingMapModes value="OFF"/>

<!-- Flash -->

<flash.colorTemperature value="0"/>

<flash.maxEnergy value="0"/>

<!-- Flash info -->

<flash.info.available value="FALSE"/>

<flash.info.chargeDuration value="1000000"/>

<flash.maxEnergy value="10"/>

<!-- Sync -->

<sync.maxLatency value="PER_FRAME_CONTROL"/>

<!-- maxCaptureStall -->

<reprocess.maxCaptureStall value="4"/>

<!-- Edge -->

<edge.availableEdgeModes value="OFF,FAST,HIGH_QUALITY"/>

<!-- Noise Reduction -->

<noiseReduction.availableNoiseReductionModes value="OFF,FAST,HIGH_QUALITY"/>

</Android_metadata>

<!-- ******************PSL specific section start **************************************************************-->

<Hal_tuning_RKISP1> <!-- Parameters to tune the HAL and hacks for the HAL that are camera dependent -->

<flipping value="" value_v=""/> <!-- value: SENSOR_FLIP_H or "", value_v: SENSOR_FLIP_V or "" -->

<supportIsoMap value="false"/>

<supportTuningSize value="3840x2160,1920x1080"/>

</Hal_tuning_RKISP1>

<Sensor_info_RKISP1> <!-- Information that parametrizes the behavior or qualities of the physical sensor -->

<sensorType value="SENSOR_TYPE_SOC"/> <!-- SENSOR_TYPE_SOC or SENSOR_TYPE_RAW -->

<exposure.sync value="true"/> <!-- compensate expsure sync-->

<sensor.digitalGain value="false"/> <!-- digital gain support on sensor-->

<gain.lag value="2"/> <!-- camera3 HAL CPF parameters moved here start-->

<exposure.lag value="2"/>

<fov value= "54.8" value_v="42.5"/>

<statistics.initialSkip value="1"/> <!-- camera3 HAL CPF parameters moved here end-->

<frame.initialSkip value="3"/> <!-- should equal actual skipFrames - 2 for driver dropped 2 frames -->

<isoAnalogGain1 value="75"/> <!--Pseudo ISO corresponding analog gain value 1.0. -->

<cITMaxMargin value="10"/> <!--coarse integration time max margin -->

<aiq.workingMode value="NORMAL"/> <!-- NORMAL or HDR2 or HDR3 -->

</Sensor_info_RKISP1>

三、天启AIO-3576Q38开发板在天启Android14下测试摄像头模块8ms1m拍照默认为2M,录像为480p

刷机了 你们提供的Android14,我默认编译的固件 摄像头可以亮。

拍照分辨率 最大8M?

录像 分辨率?最大4K。

请帮忙修改一下!

固件没上传最新的.

默认摄像头8MS1M拍照是200w像素

Android14/Buildroot的测试 固件都给一下!

我看这个 摄像头 最大分辨率?8M,请将 拍照录像 都改一下为8M,并提供方法!

四、【重新/更新编译Android14】让天启AIO-3576Q38开发板在天启Android14下适配摄像头模块8ms1m为8M拍照

改下hardware/rockchip/camera/etc/camera/camera3_profiles_rk3576.xml

xc7160里面的scaler.availableStreamConfigurations

scaler.availableMinFrameDurations

scaler.availableStallDurations

sensor.info.activeArraySize , 改成3840x2160

替换Android系统里的/vendor/etc/camera/camera3_profiles.xml

【感觉通过adb推进不行,更新编译之后有用!】

https://wiki.t-firefly.com/zh_CN/AIO-3576Q38/android_compile_android14.0_firmware.html

3.2.2. 分步编译

编译 kernel:

cd ~/proj/RK3576_Android14.0/kernel-6.1

export PATH=../prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH

alias msk='make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1'

msk ARCH=arm64 firefly_defconfig android-14.config rk3576.config

msk ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3576_firefly_aio_3576q38/boot.img rk3576-firefly-aio-3576q38.img -j8

编译 uboot:

cd ~/proj/RK3576_Android14.0/u-boot/

make rk3576_defconfig

./make.sh --spl-new

编译 Android:

cd ~/proj/RK3576_Android14.0/
source build/envsetup.sh
lunch rk3576_firefly_aio_3576q38-userdebug
make installclean
make -j8
./mkimage.sh
3.2.3. 打包成统一固件 update.img
编译完可以用Firefly官方的脚本打包成统一固件,执行如下命令:

./FFTools/mkupdate/mkupdate.sh -l rk3576_firefly_aio_3576q38-userdebug
打包完成后将在rockdev/Image-rk3576_firefly_aio_3576q38/ 目录下生成统一固件: product名XXX_XXX_日期XXX.img

在 Windows 下打包统一固件 update.img 也很简单,将编译生成的文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行 rockdev 目录下的 mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image 目录里。

五、拍照8M分辨率的效果图:

相关推荐
南棱笑笑生16 小时前
20260116让天启AIO-3576Q38开发板在天启Android14下适配摄像头模块8ms1m为8M拍照时向左旋转90度
rockchip
南棱笑笑生4 天前
20260113给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时点亮飞凌的7寸屏时适配CTP触摸屏FT5X06
单片机·嵌入式硬件·rockchip
南棱笑笑生4 天前
20260113给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时适配CAM3接口的OV5645
c语言·开发语言·rockchip
南棱笑笑生11 天前
20260105给荣品PRO-RK3566开发板适配Rockchip原厂的Buildroot【linux-5.10】系统时解决eth0不能开机就打开的问题
linux·运维·服务器·rockchip
南棱笑笑生12 天前
20260105给荣品RD-RK3588S-AHD开发板适配Rockchip原厂的Buildroot【linux-6.1】系统
linux·运维·服务器·rockchip
习惯就好zz22 天前
Android 12 RK3588平台电源菜单深度定制指南
android·rockchip·3588·电源按钮
南棱笑笑生23 天前
20251224给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时确认ssh服务【内置dropbear】
linux·c语言·ssh·rockchip
南棱笑笑生1 个月前
20251219给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-5.10】后解决启动不了报atf-2的问题
linux·c语言·开发语言·rockchip
南棱笑笑生1 个月前
20251217给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-5.10】后调通ov5645【只能预览】
linux·c语言·开发语言·rockchip