news 2026/4/15 12:36:08

【RP-RV1126】SDK编译实战:从内核定制到固件打包全流程解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【RP-RV1126】SDK编译实战:从内核定制到固件打包全流程解析

1. RV1126 SDK编译环境搭建指南

第一次接触RV1126开发板时,面对庞大的SDK代码库可能会感到无从下手。这里我把自己在Ubuntu 18.04环境下搭建编译环境的完整过程记录下来,希望能帮到刚入门的开发者。

SDK主要分为完整版和BSP版两种类型。完整版SDK包含Buildroot系统编译支持,文件体积较大(约15GB),适合需要深度定制的场景。BSP版则更为精简,适合只需要更新uboot和kernel的快速开发。我建议新手从完整版开始,可以全面了解整个系统构建流程。

环境准备阶段需要特别注意权限问题——全程使用普通用户操作即可,不要用root权限。安装基础工具链时,这几个包必不可少:

sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \ expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \ qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \ unzip device-tree-compiler ncurses-dev

下载SDK源码时,国内用户可能会遇到网速慢的问题。有个小技巧:先下载基础压缩包(约2GB),再通过repo同步更新剩余代码。解压后执行.repo/repo/repo sync -c --no-tags时,如果中断可以多次重试,它会自动续传。

2. 内核定制与编译实战

内核定制是开发过程中最关键的环节之一。RV1126的kernel目录结构遵循标准Linux风格,但加入了Rockchip特有的驱动支持。我习惯先查看默认配置:

cd kernel make ARCH=arm rv1126_defconfig menuconfig

这里有几个容易踩的坑:

  1. 摄像头驱动需要同时启用VIP和ISP模块
  2. NPU加速器驱动位于Device Drivers -> Rockchip Misc drivers
  3. 内存管理建议使用CMA配置

保存配置后,记得更新defconfig文件:

make ARCH=arm savedefconfig cp defconfig arch/arm/configs/rv1126_defconfig

编译内核镜像时,推荐使用以下命令组合,可以显著提升编译速度:

make ARCH=arm -j$(nproc) rv1126_defconfig make ARCH=arm -j$(nproc) pro-rv1126.img

编译完成后,在arch/arm/boot目录下会生成zImage和dtb文件。通过./build.sh kernel命令会自动打包成boot.img,存放在rockdev目录下。

3. Buildroot文件系统深度定制

Buildroot是构建嵌入式系统的利器,但它的配置选项多达上千项,新手很容易迷失。我总结出几个关键配置区域:

  1. 基础配置:在System configuration中设置主机名、root密码等
  2. 软件包选择:Target packages里可以添加busybox、openssh等常用工具
  3. 内核模块:在Kernel菜单中配置需要编译到文件系统的驱动模块

修改配置后,建议先清理旧编译结果:

make clean

然后重新编译并打包:

./build.sh buildroot && ./build.sh firmware

如果遇到文件系统体积过大的问题,可以通过以下方式优化:

  • 在Filesystem images中启用压缩选项
  • 移除不必要的locale文件
  • 使用musl libc替代glibc

4. 固件打包与分区调整技巧

固件打包是最后也是最重要的一步。RV1126使用Rockchip特有的打包格式,关键文件包括:

  • parameter.txt:定义分区布局
  • package-file:指定镜像组成
  • update.img:最终生成的升级包

调整分区大小时,需要同时修改parameter.txt和package-file。例如要将rootfs分区从1GB扩大到2GB:

# 修改前 0x00200000@0x00038000(rootfs) # 修改后 0x00400000@0x00038000(rootfs)

计算分区大小时记住这个公式:MB = (块数 * 512) / (1024 * 1024)。比如0x200000块等于2097152块,换算后就是1024MB。

打包完整固件的命令序列如下:

./build.sh firmware # 生成各分区镜像 ./build.sh updateimg # 打包成update.img

5. 常见问题排查手册

在实际开发中,这些问题我遇到的最多:

Q1:编译时提示Python找不到

sudo ln -s /usr/bin/python3 /usr/bin/python

Q2:文件系统体积超出分区限制

  • 检查parameter.txt中的分区设置
  • 在Buildroot中启用squashfs压缩
  • 删除不必要的软件包

Q3:内核启动卡住

  • 检查串口日志,通常会在出错位置停止
  • 确认dtb文件是否匹配硬件版本
  • 尝试关闭部分驱动模块

Q4:RKMedia示例程序无法运行

  • 确保已安装相关动态库
  • 检查用户组权限(video组)
  • 验证内核驱动是否加载成功

6. 高级开发技巧

对于需要深度定制的开发者,这些技巧可能会帮到你:

添加自定义内核模块

  1. 在kernel/drivers目录下新建模块代码
  2. 修改Kconfig和Makefile添加编译选项
  3. 通过menuconfig启用模块

集成第三方应用: 在Buildroot的package目录下新建.mk文件,示例模板:

HELLOWORLD_VERSION = 1.0.0 HELLOWORLD_SITE = /path/to/source HELLOWORLD_SITE_METHOD = local define HELLOWORLD_BUILD_CMDS $(MAKE) CC="$(TARGET_CC)" -C $(@D) endef define HELLOWORLD_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/usr/bin endef $(eval $(generic-package))

性能优化建议

  • 启用内核的CONFIG_PREEMPT选项
  • 调整CPU频率调节策略
  • 使用RT补丁提升实时性

7. 开发板实测经验

在实际项目中,我发现RV1126的这些特性特别实用:

  1. 双摄像头支持:通过VIP接口可以同时接入两个MIPI摄像头
  2. NPU加速:1.2TOPS算力足够运行YOLOv5等常见模型
  3. 低功耗设计:待机功耗可控制在0.5W以下

一个典型的视频处理流水线配置如下:

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=NV12 v4l2-ctl --stream-mmap --stream-count=100 --stream-to=test.nv12

调试时建议常备这些工具:

  • rkmedia_venc_test:视频编码测试
  • rknpu_test:NPU功能验证
  • memtester:内存稳定性测试

记得定期更新SDK版本,Rockchip会持续修复已知问题。通过.repo/repo/repo sync命令可以获取最新代码,但要注意备份本地修改。

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

ollama部署QwQ-32B详细步骤:64层Transformer结构调参指南

ollama部署QwQ-32B详细步骤:64层Transformer结构调参指南 QwQ-32B 是一款值得关注的推理型大模型,它不是简单地“回答问题”,而是真正具备链式思考能力的智能体。在ollama生态中,它以轻量级部署、开箱即用的体验和扎实的推理表现…

作者头像 李华
网站建设 2026/4/10 19:21:52

加法器晶体管级设计:从零实现教程

加法器晶体管级设计:不是怀旧,是工程准入的硬门槛 你有没有遇到过这样的场景? 在一次SoC后仿真中,ALU模块在SS工艺角125℃下突然出现进位丢失——功能仿真全绿,RTL综合无警告,甚至标准单元库文档里连“温度…

作者头像 李华
网站建设 2026/4/10 19:21:51

eSPI协议在智能传感器网络中的实践:项目应用

eSPI:让智能传感器真正“会思考”的那根线 你有没有遇到过这样的场景? 在调试一款工业边缘网关时,八路温湿度传感器、四轴IMU、气体模组、噪声麦克风阵列全挂在同一块板子上——IC总线开始丢ACK,SPI片选信号串扰严重,…

作者头像 李华
网站建设 2026/4/14 1:55:12

BAAI/bge-m3与m3e对比评测:中文语义匹配谁更精准?实战分析

BAAI/bge-m3与m3e对比评测:中文语义匹配谁更精准?实战分析 1. 为什么中文语义匹配需要认真比一比? 你有没有遇到过这样的情况:在搭建知识库或做智能客服时,用户问“怎么退订会员”,系统却只召回了“会员续…

作者头像 李华
网站建设 2026/4/14 11:31:55

ClearerVoice-Studio目标说话人提取实战:从MP4视频精准提取采访音频

ClearerVoice-Studio目标说话人提取实战:从MP4视频精准提取采访音频 1. 工具介绍与核心价值 ClearerVoice-Studio 是一个开源的语音处理工具包,专注于提供高质量的音频处理能力。这个工具最大的特点是开箱即用,内置了多个成熟的预训练模型&…

作者头像 李华