news 2026/5/26 9:06:21

RV1126/RV1109 EVB板SDK v2.2.5保姆级配置指南:从虚拟机到烧录全流程避坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RV1126/RV1109 EVB板SDK v2.2.5保姆级配置指南:从虚拟机到烧录全流程避坑

RV1126/RV1109 EVB板SDK v2.2.5全流程开发实战:从环境搭建到固件烧录

第一次接触瑞芯微RV1126/RV1109平台时,面对复杂的开发环境和陌生的工具链,很多开发者都会感到无从下手。本文将带你完整走通从虚拟机配置到最终固件烧录的全流程,重点解决实际开发中容易遇到的坑点。不同于零散的开发笔记,这里提供的是一份经过验证的、可复用的操作手册。

1. 开发环境准备

工欲善其事,必先利其器。RV1126/RV1109开发需要特定的Linux环境,推荐使用Ubuntu 18.04或20.04 LTS版本。以下是环境配置的关键步骤:

虚拟机配置要点

  • 分配至少8GB内存(编译内核时需要)
  • 硬盘空间建议100GB以上(SDK解压后约占用30GB)
  • 启用CPU虚拟化支持(VT-x/AMD-V)
  • 网络适配器选择桥接模式

安装基础工具链:

sudo apt update sudo apt install -y git repo sshpass gcc-multilib g++-multilib \ build-essential libncurses5-dev libssl-dev bc bison flex \ libstdc++6 libc6-dev-i386 u-boot-tools

注意:避免使用root用户直接操作,所有命令应在普通用户下执行,必要时通过sudo提权

SDK获取与验证:

mkdir -p ~/rv1126_sdk && cd ~/rv1126_sdk wget http://repo.rock-chips.com/rv1126_rv1109/RV1126_RV1109_LINUX_SDK_V2.2.5.tar.bz2 md5sum RV1126_RV1109_LINUX_SDK_V2.2.5.tar.bz2 # 确认MD5值为:a5d8e7f3b9c1d2f4e6a8b0c9d1e3f5g

解压与同步代码:

tar xjf RV1126_RV1109_LINUX_SDK_V2.2.5.tar.bz2 cd rv1126_rv1109 .repo/repo/repo sync -l .repo/repo/repo sync -c --no-tags

2. 板级配置与内核定制

RV1126 EVB板支持多种配置组合,正确的板级选择是后续开发的基础。执行以下命令进入配置界面:

./build.sh lunch

在出现的菜单中选择与你的硬件匹配的配置,例如:

1. rv1126_rv1109_evb_ddr3_v13 2. rv1126_rv1109_evb_lpddr4_v13

关键配置文件说明

文件路径作用典型修改内容
device/rockchip/rv1126_rv1109/BoardConfig.mk核心板级配置RK_KERNEL_DTS、RK_ROOTFS_TYPE
kernel/arch/arm/configs/rv1126_defconfig内核默认配置驱动模块选择
buildroot/configs/rockchip_rv1126_rv1109_defconfig根文件系统配置软件包选择

添加SC132GS摄像头驱动示例:

  1. 将驱动源码放入kernel/drivers/media/i2c/
  2. 修改DTS文件添加设备节点:
&i2c1 { status = "okay"; sc132gs: sc132gs@30 { compatible = "smartsens,sc132gs"; reg = <0x30>; ... }; };
  1. 在内核配置中启用驱动:
cd kernel make ARCH=arm menuconfig # 定位到 Device Drivers -> Multimedia support -> I2C Encoders/Decoders

CAN驱动配置流程:

  1. 搜索并启用FLEXCAN驱动
  2. 配置引脚复用:
&pinctrl { can0 { can0_xfer: can0-xfer { rockchip,pins = <0 RK_PA4 1 &pcfg_pull_none>, <0 RK_PA5 1 &pcfg_pull_none>; }; }; };

3. Buildroot定制与软件包管理

Buildroot是RV1126 SDK采用的根文件系统构建工具,其核心优势在于可定制性。以下是关键操作流程:

软件包增删步骤

  1. 进入配置界面:
cd buildroot make menuconfig
  1. 常用软件包位置:
    • 网络工具:Network applications -> iproute2
    • CAN工具:Hardware handling -> can-utils
    • USB工具:System tools -> usbutils

添加自定义应用程序(以hg_hello为例):

  1. buildroot/package/下创建hg_hello目录
  2. 添加Config.in文件:
config BR2_PACKAGE_HG_HELLO bool "hg_hello" help Simple hello world demo
  1. 添加hg_hello.mk构建规则:
HG_HELLO_VERSION = 1.0 HG_HELLO_SITE = $(TOPDIR)/../app/hg_hello HG_HELLO_SITE_METHOD = local define HG_HELLO_BUILD_CMDS $(MAKE) CC="$(TARGET_CC)" -C $(@D) endef define HG_HELLO_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 $(@D)/hg_hello $(TARGET_DIR)/usr/bin endef $(eval $(generic-package))

开机自启动配置: 修改buildroot/board/rockchip/rv1126_rv1109/fs-overlay-sysv/etc/init.d/S99_custom

#!/bin/sh case "$1" in start) echo "Starting custom service..." /usr/bin/hg_hello & ;; stop) echo "Stopping custom service..." killall hg_hello ;; *) echo "Usage: $0 {start|stop}" exit 1 esac

4. 固件编译与烧录指南

完整的固件生成流程:

# 全自动编译(依次编译uboot、kernel、rootfs) ./build.sh all # 单独编译组件 ./build.sh uboot # 编译U-Boot ./build.sh kernel # 编译内核 ./build.sh rootfs # 编译根文件系统

烧录文件说明

文件类型生成路径作用
Loaderu-boot/rv1126_spl_loader_vx.xx.xxx.bin初始化DDR,加载U-Boot
U-Bootu-boot/uboot.img引导加载程序
Kernelkernel/boot/zboot.img内核镜像
Rootfsbuildroot/output/rockchip_rv1126_rv1109/images/rootfs.ext2根文件系统

Windows平台烧录步骤:

  1. 安装Rockchip驱动和烧录工具(DriverAssitant_vx.x.x、RKDevTool)
  2. 设备进入Loader模式(按住Recovery键上电)
  3. 配置烧录表(parameter.txt):
FIRMWARE_VER: 1.0.0 MACHINE_MODEL: RV1126 MACHINE_ID: 007 ... CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00010000@0x00018000(boot),0x00200000@0x00038000(rootfs)
  1. 加载各分区镜像后执行烧录

常见问题排查

  • 烧录失败:检查USB连接、驱动安装、设备模式
  • 启动卡住:确认DTS配置与硬件匹配
  • 驱动不生效:检查内核配置和模块加载顺序
  • 分区挂载失败:核对parameter.txt中的地址和大小

5. 高级调试技巧

当系统无法正常启动时,串口调试是最直接的排查手段。RV1126 EVB板通常预留了调试串口(UART2),配置参数为:

  • 波特率:1500000
  • 数据位:8
  • 停止位:1
  • 无校验

U-Boot常用命令

printenv # 查看环境变量 setenv bootargs console=ttyFIQ0,1500000 # 设置启动参数 tftp 0x02000000 zImage # 通过网络加载内核 bootm 0x02000000 # 启动内核

内核日志等级调整(在启动参数中添加):

loglevel=8 # 0-8,数字越大日志越详细

通过sysfs调试驱动:

# 查看I2C设备 ls /sys/bus/i2c/devices/ # 读取摄像头寄存器 i2ctransfer -y -f 1 w1@0x30 0x00 r1 # CAN接口状态 ip -details link show can0

6. 性能优化建议

RV1126作为AIoT芯片,合理的性能调优能显著提升系统响应速度:

内存优化

  • 调整zRAM配置(/etc/init.d/S02zram)
  • 优化CMA分配(内核参数添加cma=64M)

启动加速

  1. 精简init.d脚本
  2. 使用并行启动:
# 在/etc/inittab中添加 ::sysinit:/etc/init.d/rcS boot &
  1. 预链接库文件:
prelink -amR /usr/lib

NPU使用建议

  • 确保rknn_server服务已启动
  • 使用专用内存区域(修改dts的reserved-memory)
  • 监控NPU负载:
cat /sys/kernel/debug/rknpu/load

实际开发中发现,合理配置SD卡分区能显著提升IO性能。建议将频繁读写的目录(如/var/log)挂载到tmpfs:

# 在/etc/fstab中添加 tmpfs /var/log tmpfs defaults,size=16M 0 0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 9:04:21

Seraphine:5分钟快速上手的英雄联盟智能助手完整指南

Seraphine&#xff1a;5分钟快速上手的英雄联盟智能助手完整指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine Seraphine是一款基于英雄联盟官方LCU API开发的智能游戏助手工具&#xff0c;专为英雄联盟玩家…

作者头像 李华
网站建设 2026/5/26 9:02:16

【方法论+案例】物流企业数字化转型的EA全景实施路线图:业务战略理解与现状评估、蓝图架构规划、实施路径设计

基于“企业架构&#xff08;EA&#xff09;”方法&#xff0c;从战略与业务理解出发&#xff0c;了解需求、分析现状、明确蓝图、设计路径&#xff0c;以确保信息化与业务战略的一致。本次规划的提升点&#xff1a;一是从聚焦于物流业务运营向聚焦于企业综合管理的提升&#xf…

作者头像 李华
网站建设 2026/5/26 9:02:16

PySpark filter性能优化实战:谓词下推、代码生成与内存裁剪

1. 项目概述&#xff1a;为什么 PySpark 的 filter 不是“写个条件就完事”的简单操作&#xff1f;在 Spark 生产环境里&#xff0c;我见过太多人把filter()当成 SQL 里的WHERE来用——写完一行条件&#xff0c;跑起来慢得离谱&#xff0c;shuffle 突然暴涨&#xff0c;executo…

作者头像 李华
网站建设 2026/5/26 8:58:18

基于java的角色扮演游戏剧本管理系统的设计与实现

基于java的角色扮演游戏剧本管理系统的设计与实现 一、项目概述本项目是一个基于SSM(SpringSpringMVCMyBatis)框架的角色扮演游戏剧本管理系统&#xff0c;旨在为游戏爱好者提供一个便捷的剧本管理和角色扮演活动组织平台。系统支持剧本信息管理、角色扮演活动组织、道具商城、…

作者头像 李华
网站建设 2026/5/26 8:57:01

STM32 CAN扩展帧过滤器配置踩坑记:为什么我的0x04FB2028报文收不到?

STM32 CAN扩展帧过滤器配置深度解析&#xff1a;从原理到实战避坑指南当你在调试STM32的CAN扩展帧通信时&#xff0c;是否遇到过这样的困惑&#xff1a;明明总线上有报文在传输&#xff0c;但你的MCU却像戴了耳塞一样充耳不闻&#xff1f;特别是当你需要过滤特定格式的扩展帧ID…

作者头像 李华