news 2026/7/13 23:30:44

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 13:14:11

Java集合接口深度剖析:List、Map、Set的特点及应用

文章目录 Java集合接口深度剖析&#xff1a;List、Map、Set的特点及应用一、引言&#xff1a;为什么要学习集合框架&#xff1f;二、List接口&#xff1a;有序的“购物车”1. List的特点2. 常用实现类&#xff08;1&#xff09;ArrayList&#xff08;2&#xff09;LinkedList&a…

作者头像 李华
网站建设 2026/7/13 21:51:31

React 项目的启动方式

一、启动前先确认 3 件事&#xff08;很重要&#xff09; 在项目根目录&#xff08;有 package.json 的地方&#xff09;&#xff1a; 1. 确认 Node 版本 node -v npm -v一般建议 Node ≥ 18&#xff08;Vite / 现代 React 很稳&#xff09; 如果报错&#xff0c;大概率是…

作者头像 李华
网站建设 2026/7/1 20:20:51

小目标识别表现:远处路牌、微小文字能否清晰读取?

小目标识别表现&#xff1a;远处路牌、微小文字能否清晰读取&#xff1f; 一张照片里&#xff0c;有近处的行人、中景的车辆、远处的楼宇——但你有没有注意过&#xff0c;街角那块被树影遮挡的交通指示牌&#xff1f;或者广告牌角落里几毫米高的联系方式&#xff1f;又或者监控…

作者头像 李华
网站建设 2026/7/1 23:36:36

音频太长怎么办?分段处理5分钟以上录音的小技巧

音频太长怎么办&#xff1f;分段处理5分钟以上录音的小技巧 你有没有遇到过这样的情况&#xff1a;一段40分钟的会议录音&#xff0c;想转成文字整理纪要&#xff0c;结果上传到语音识别工具时被提示“文件超时”或“处理失败”&#xff1f;又或者等了十几分钟&#xff0c;界面…

作者头像 李华
网站建设 2026/7/1 10:46:48

Clawdbot+Qwen3-32B:企业内部智能客服系统快速搭建方案

ClawdbotQwen3-32B&#xff1a;企业内部智能客服系统快速搭建方案 1. 为什么企业需要自己的智能客服系统 你有没有遇到过这些情况&#xff1a; 客户咨询高峰期&#xff0c;客服团队手忙脚乱&#xff0c;响应延迟超过5分钟&#xff1b; 新员工入职要花两周时间背产品手册和FAQ…

作者头像 李华