当前位置: 首页 > news >正文

20260129让天启AIO-3576Q38开发板在天启Buildroot下适配摄像头模块8ms1m使用4K录像+预览【第二版本/更新DTS】

1、bundle更新到1.0.1h
2、替换xc7160.c
Z:\Linux_SDK\Firefly_SDK\kernel\drivers\media\i2c\xc7160.c
3、更新DTS
Y:\A7_RK3576_LINUX\kernel\arch\arm64\boot\dts\rockchip\rk3576-firefly-aio-3576q38-cam-imx586.dtsi


20260129让天启AIO-3576Q38开发板在天启Buildroot下适配摄像头模块8ms1m使用4K录像+预览【第二版本/更新DTS】
2026/1/29 16:35


https://blog.csdn.net/wb4916/article/details/154075701?spm=1011.2415.3001.5331
20251028在Ubuntu20.04.6上编译AIO-3576Q38开发板的Buildroot系统

rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ sudo apt-get install libassimp-dev
rootroot@rootroot-X99-Turbo:~$ cd Linux_SDK/
rootroot@rootroot-X99-Turbo:~/Linux_SDK$ cd base-v1.0.1c/
rootroot@rootroot-X99-Turbo:~/Linux_SDK/base-v1.0.1c$ chmod 777 sdk_tools.sh
rootroot@rootroot-X99-Turbo:~/Linux_SDK/base-v1.0.1c$ mkdir ../Firefly_SDK
rootroot@rootroot-X99-Turbo:~/Linux_SDK/base-v1.0.1c$ ./sdk_tools.sh --unpack -C ../Firefly_SDK
rootroot@rootroot-X99-Turbo:~/Linux_SDK/base-v1.0.1c$ ./sdk_tools.sh --sync -C ../Firefly_SDK
rootroot@rootroot-X99-Turbo:~/Linux_SDK/base-v1.0.1c$ cd ..
rootroot@rootroot-X99-Turbo:~/Linux_SDK$ cd Firefly_SDK
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ll *.7z
-rwx------ 1 rootroot rootroot 25506 10月 22 14:06 rk3576-v1.0.1c-to-v1.0.1d.7z*
-rwx------ 1 rootroot rootroot 179405810 10月 22 14:08 rk3576-v1.0.1d-to-v1.0.1g.7z*
-rwx------ 1 rootroot rootroot 607340352 10月 22 14:13 rk3576-v1.0.1g-to-v1.0.1h.7z*
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ 7z x rk3576-v1.0.1c-to-v1.0.1d.7z
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ 7z x rk3576-v1.0.1d-to-v1.0.1g.7z
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ 7z x rk3576-v1.0.1g-to-v1.0.1h.7z
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ll
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ./rk3576-v1.0.1c-to-v1.0.1d/bundle_update.sh
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ./rk3576-v1.0.1d-to-v1.0.1g/bundle_update.sh
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ./rk3576-v1.0.1g-to-v1.0.1h/bundle_update.sh

rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ln -s .chips/rk3576/ .chip


rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ./build.sh lunch
8. firefly_rk3576_aio-3576q38_buildroot_defconfig
Which would you like? [1]: 8
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ ./build.sh all

【编译打包后的IMG固件!】
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK$ cd output/update/
-rw-rw-r-- 1 rootroot rootroot 1968349827 10月 28 15:10 AIO-3576Q38_Buildroot_251028.img
rootroot@rootroot-X99-Turbo:~/Linux_SDK/Firefly_SDK/output/update$


1、更新DTS:
diff --git a/arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q38-cam-imx586.dtsi b/arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q38-cam-imx586.dtsi
index 44c30a9ff5c4..ae5a5ed17818 100644
--- a/arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q38-cam-imx586.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q38-cam-imx586.dtsi
@@ -23,14 +23,14 @@ IMX586_0: IMX586-0@1a {
reset-gpios = <&gpio2 RK_PD7 GPIO_ACTIVE_HIGH>;
pwdn-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;

- rockchip,camera-module-index = <1>;
+ rockchip,camera-module-index = <2>;
rockchip,camera-module-facing = "front";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";

port {
imx586_out0: endpoint {
- remote-endpoint = <&mipidphy0_in_ucam0>;
+ remote-endpoint = <&mipidphy0_in_ucam1>;
>rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "front";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";

port {
imx586_out0: endpoint {
remote-endpoint = <&mipidphy0_in_ucam0>;
>mipidphy0_in_ucam0: endpoint@0 {
reg = <0>;
remote-endpoint = <&imx586_out0>;
>rockchip,camera-module-index = <2>;
rockchip,camera-module-facing = "front";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";

port {
imx586_out0: endpoint {
remote-endpoint = <&mipidphy0_in_ucam1>;
>mipidphy0_in_ucam1: endpoint@1 {
reg = <1>;
remote-endpoint = <&imx586_out0>;
>


2、
Z:\Linux_SDK\Firefly_SDK\kernel\drivers\media\i2c\xc7160.c

static const struct regval *xc7160_global_regs = isp_xc7160_1080p_30fps_2022617_regs;
static const struct regval *sc8238_global_regs = sensor_xc7160_1080p_30fps_2022617_regs;
static u32 clkout_enabled_index = 1;

修改为:

static const struct regval *xc7160_global_regs = isp_xc7160_4k_25fps_2022617_regs;
static const struct regval *sc8238_global_regs = sensor_xc7160_4k_25fps_2022617_regs;
static u32 clkout_enabled_index = 1;


static const struct xc7160_mode supported_modes[] = {
{
.width = 1920,
.height = 1080,
.max_fps = {
.numerator = 10000,
.denominator = 300000,
},
.bus_fmt = XC7160_MEDIA_BUS_FMT,
.isp_reg_list = isp_xc7160_1080p_30fps_2022617_regs,
.sensor_reg_list = sensor_xc7160_1080p_30fps_2022617_regs,
.vc[PAD0] = 0, //V4L2_MBUS_CSI2_CHANNEL_0,
},
{
.width = 3840,
.height = 2160,
.max_fps = {
.numerator = 10000,
.denominator = 250000,
},
.bus_fmt = XC7160_MEDIA_BUS_FMT,
.isp_reg_list = isp_xc7160_4k_25fps_2022617_regs,
.sensor_reg_list= sensor_xc7160_4k_25fps_2022617_regs,
.vc[PAD0] = 0,//V4L2_MBUS_CSI2_CHANNEL_0,
},

//driver setting
};

修改为:

static const struct xc7160_mode supported_modes[] = {
{
.width = 3840,
.height = 2160,
.max_fps = {
.numerator = 10000,
.denominator = 250000,
},
.bus_fmt = XC7160_MEDIA_BUS_FMT,
.isp_reg_list = isp_xc7160_4k_25fps_2022617_regs,
.sensor_reg_list= sensor_xc7160_4k_25fps_2022617_regs,
.vc[PAD0] = 0,//V4L2_MBUS_CSI2_CHANNEL_0,
},
{
.width = 1920,
.height = 1080,
.max_fps = {
.numerator = 10000,
.denominator = 300000,
},
.bus_fmt = XC7160_MEDIA_BUS_FMT,
.isp_reg_list = isp_xc7160_1080p_30fps_2022617_regs,
.sensor_reg_list = sensor_xc7160_1080p_30fps_2022617_regs,
.vc[PAD0] = 0, //V4L2_MBUS_CSI2_CHANNEL_0,
},

//driver setting
};


3、效果图:

4K
gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=100 ! video/x-raw,format=NV12, width=3840,height=2160 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=8ms1_h264_4k_100.mp4 t. ! queue ! waylandsink

gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=10000 ! video/x-raw,format=NV12, width=3840,height=2160 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=8ms1_h264_4k_10000.mp4 t. ! queue ! waylandsink


1080p
gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=10000 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=8ms1_h264_1080p_100.mp4 t. ! queue ! waylandsink


25*60=1500【1分钟的4K录像】
gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=1500 ! video/x-raw,format=NV12, width=3840,height=2160 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=8ms1_h264_4k_1500.mp4 t. ! queue ! waylandsink


buildroot用命令进行4k录像
gst-launch-1.0 -e v4l2src device=/dev/video11 io-mode=4 ! \
video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! \
mpph265enc ! h265parse ! video/x-h265,stream-format=hev1,alignment=au ! \
mp4mux -e ! filesink location=hw265.mp4


gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=10000 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=13855_h264_1080p_100.mp4 t. ! queue ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video11 num-buffers=100 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=13855_h264_1080p_100.mp4 t. ! queue ! waylandsink


4、替换xc7160.c
Z:\Linux_SDK\Firefly_SDK\kernel\drivers\media\i2c\xc7160.c


http://www.jsqmd.com/news/319986/

相关文章:

  • Vercel 团队 10 年 React 性能优化经验:10 大核心策略让性能提升 300%
  • 自动解压文件完成csrf攻击删除数据
  • Clawdbot部署Qwen3:32B完整指南:GPU显存适配、Ollama集成与控制台实操
  • 跨境电商多账号运营的“人效打法”:小团队也能跑出矩阵的12个关键动作
  • 跨境电商多账号运营的“管控力”:把风险、效率、利润同时抓住的四张表
  • UDS 31服务在刷写前准备阶段的关键作用解析
  • 企业级web大学生一体化服务平台管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 银发经济新浪潮:适老化设计如何催生“青春化”市场
  • ccmusic-database效果展示:CQT频谱图在低频段(<100Hz)对流派判别的贡献
  • 2026年热门的组合式管道浮筒全方位厂家推荐参考
  • 基于SpringBoot+Vue的开发精简博客系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • Face Analysis WebUI入门指南:如何通过修改config.yaml扩展支持新属性(如戴口罩识别)
  • Qwen3-Reranker-0.6B效果展示:中文社交媒体短文本情感倾向重排序实验
  • 企业级实习管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • Qwen3-32B GPU算力适配方案:Clawdbot网关下显存占用与推理速度优化
  • 【毕业设计】SpringBoot+Vue+MySQL 美食烹饪互动平台平台源码+数据库+论文+部署文档
  • Java SpringBoot+Vue3+MyBatis 多媒体素材库开发与应用系统源码|前后端分离+MySQL数据库
  • 跨境电商多账号运营:从“开更多店”到“可控的增长系统”
  • Java集合接口深度剖析:List、Map、Set的特点及应用
  • 如何通过工业AI体系将工业数据转化为可用的知识燃料?
  • 新加坡公司注册代办机构/新加坡公司注册服务商,2026高成功率新加坡公司注册代办推荐
  • 新兴铸管和莱科钢格板哪家好?2026莱科丝网评测+压焊钢格板厂家推荐
  • 为什么说“简历是这个时代最大的骗局“?中小企业如何避免因招错人造成的巨大损失?
  • 跨境电商多账号运营:把“矩阵”变成可复制的增长流水线
  • 新加坡银行开户代办公司哪家好?2026精选高成功率新加坡公司开户代办推荐
  • 2026光伏走道板生产厂家:平台钢格板厂家+踏步板源头厂家+沟盖板源头厂家汇总
  • 聪明的人已经发现,26年的前端不对劲了!
  • 2026年评价高的铝压铸件打磨台厂家采购参考指南(必看)
  • 2026驻马店全铝蜂窝板定制厂家综合实力盘点
  • 开机自动启动脚本避坑指南,这些错误别再犯了