news 2026/4/18 7:14:37

RK1126 SDK编译实战:从环境配置到模块化编译指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK1126 SDK编译实战:从环境配置到模块化编译指南

1. RK1126 SDK开发环境搭建全攻略

刚拿到RK1126开发板时,我最头疼的就是环境搭建。折腾了整整两天才把编译环境配好,这里把踩过的坑都总结出来,让你少走弯路。

Ubuntu系统选择:官方推荐18.04版本,但我实测20.04和22.04也能用。不过要注意,22.04需要额外处理一些依赖包冲突。建议新手直接用18.04最省心。安装系统时记得勾选"安装开发者工具"选项,能自动装好基础编译环境。

依赖包安装是第一个拦路虎。有次我漏装了device-tree-compiler,编译到一半报错,不得不从头开始。完整的依赖清单如下:

sudo apt-get install -y repo git-core gitk git-gui gcc-arm-linux-gnueabihf \ u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted \ libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools \ autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make \ binutils build-essential gcc g++ bash patch gzip gawk bzip2 perl tar \ cpio python unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev \ libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client \ subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 \ libssl-dev expect lib32gcc-7-dev g++-7 libstdc++-7-dev flex bison

SDK目录结构解析

  • buildroot:定制根文件系统的核心目录
  • kernel:内核源码,修改驱动主要在这里
  • u-boot:bootloader相关代码
  • device/rockchip:平台特定的编译脚本和配置文件
  • external:多媒体、AI等扩展库
  • prebuilts:交叉编译工具链
  • rockdev:编译输出目录

环境变量配置有个小技巧:在~/.bashrc最后添加以下内容,避免每次开终端都要重新设置:

export PATH=$PATH:/path/to/sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin export RK_PROJECT_PATH=/path/to/your/project

2. 首次编译实战指南

第一次编译RK1126 SDK就像拆盲盒,永远不知道下一个报错是什么。我记录下最完整的流程,帮你一次通关。

初始化配置

source envsetup.sh # 选择对应板型,比如rockchip_rv1126_rv1109_spi_nand ./build.sh lunch # 选择对应的BoardConfig,比如BoardConfig-38x38-spinand.mk

全自动编译(适合首次):

./build.sh all

这个过程会持续1-3小时,取决于你的机器性能。建议用nohup ./build.sh all &放到后台运行,避免网络中断导致失败。

模块化编译(后续开发推荐):

# 单独编译U-Boot ./build.sh uboot # 单独编译Kernel ./build.sh kernel # 单独编译Buildroot ./build.sh buildroot # 生成完整固件 ./build.sh firmware

常见报错处理

  1. Python版本问题:确保系统有python2.7或python3,可通过ln -s创建软链接
  2. 工具链缺失:检查prebuilts目录权限,确保可执行
  3. 内存不足:在swap分区,建议至少16GB物理内存+8GB swap
  4. 网络超时:修改repo的镜像源,或者用proxychains加速

编译成功后,固件会生成在rockdev目录下,update.img就是完整的升级镜像。我习惯用ls -lh rockdev/查看生成的文件大小,正常应该在100MB左右。

3. U-Boot深度配置与编译

U-Boot相当于嵌入式设备的BIOS,掌握它的配置能解决很多启动问题。有次我的板子无法从TF卡启动,就是通过修改U-Boot配置解决的。

进入配置界面

cd u-boot make rv1126_defconfig make menuconfig

关键配置项

  • Boot options -> Boot media:选择SPI NAND/eMMC/SD卡
  • Device Tree Control -> Device Tree Source:确认是rv1126对应的dts
  • Rockchip options -> DDR初始化配置

保存配置时要用这个命令序列:

make savedefconfig cp defconfig configs/rv1126_defconfig

编译与烧写

# 在SDK根目录执行 ./build.sh uboot # 生成的uboot.img在u-boot目录下

调试技巧

  1. 通过串口查看启动日志,注意DDR初始化信息
  2. 修改include/configs/rv1126.h可以调整启动参数
  3. 使用mdmw命令可以查看和修改内存内容

遇到过最坑的问题是uboot无法保存环境变量,后来发现是存储介质配置错误。建议新手先用默认配置,等跑通后再逐步定制。

4. Linux内核定制化编译

RK1126的Linux内核经过Rockchip深度定制,包含很多专用驱动。我遇到摄像头无法识别的问题,就是通过重新配置内核解决的。

内核配置步骤

cd kernel make ARCH=arm rv1126_defconfig make ARCH=arm menuconfig

重点配置区域

  • Device Drivers -> Multimedia support -> Rockchip ISP驱动
  • Device Drivers -> Graphics support -> RGA2加速器
  • Device Drivers -> Staging drivers -> Rockchip NPU驱动

保存配置

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

编译命令

# 返回SDK根目录 cd .. ./build.sh kernel

内核调试经验

  1. 使用dmesg | grep error快速定位启动错误
  2. 修改设备树文件arch/arm/boot/dts/rv1126.dtsi调整硬件配置
  3. 通过make ARCH=arm dtbs单独编译设备树

记得上次调试MIPI摄像头,发现时钟配置不对,通过修改dts里的camera0节点就解决了。内核编译一般需要10-30分钟,可以用-j$(nproc)加速。

5. Buildroot文件系统定制

Buildroot可以生成超轻量级的根文件系统,我做过最小化配置只有8MB大小。但实际项目可能需要添加各种软件包。

基础配置

make menuconfig

关键配置路径

  • Target packages -> Audio/Video:添加ffmpeg、gstreamer等
  • Target packages -> Graphic:支持Qt/LVGL等GUI框架
  • Target packages -> Hardware handling:添加GPIO工具

添加自定义软件包

  1. 在package目录创建新目录,比如myapp
  2. 编写Config.in和myapp.mk文件
  3. 在menuconfig中选择该软件包

保存配置

make savedefconfig cp defconfig configs/rv1126_defconfig

编译命令

./build.sh buildroot

实用技巧

  1. 通过output/rockchip_rv1126/build/buildroot-fs/查看生成的文件系统内容
  2. 使用make busybox-menuconfig定制busybox
  3. board/rockchip/common/overlay添加自定义文件

我曾经需要添加一个Python脚本到文件系统,直接在overlay目录创建对应路径就行,比修改Buildroot配置更简单。

6. 应用程序开发实战

RK1126的SDK提供了丰富的多媒体开发框架,比如rkmedia。我开发过一个视频监控应用,分享下具体步骤。

编译官方示例

./build.sh external/rkmedia

示例代码在external/rkmedia/examples目录,编译好的可执行文件会输出到buildroot/output/rockchip_rv1126/build/rkmedia/examples

添加自定义应用

  1. 在external/rkmedia/examples下新建your_app.c
  2. 修改CMakeLists.txt,添加:
add_executable(your_app your_app.c ${COMMON_SRC}) target_link_libraries(your_app easymedia)
  1. 重新编译:./build.sh external/rkmedia

交叉编译技巧

# 设置工具链路径 export PATH=$PATH:$(pwd)/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin # 编译单个文件 arm-linux-gnueabihf-gcc test.c -o test

调试方法

  1. 使用gdbserver远程调试
  2. 通过strace查看系统调用
  3. 在buildroot中启用core dump功能

记得第一次调试rkmedia时,发现视频无法显示,原来是忘记配置环境变量export DISPLAY=:0。建议新手先从官方示例入手,再逐步修改。

7. 固件打包与烧录技巧

当所有组件编译完成后,需要打包成完整固件。我遇到过多次烧录后无法启动的情况,总结出这些经验。

生成完整固件

./build.sh firmware

生成的update.img位于rockdev目录,这个文件可以直接用工具烧录。

分区表解析: parameter.txt定义了分区布局,例如:

0x00002000@0x00004000(uboot) 0x00010000@0x0000e800(boot) 0x00030000@0x0001e800(recovery) 0x002d0000@0x000e8800(system)
  • @前是分区大小
  • @后是起始位置
  • 单位是sector(512字节)

烧录方法

  1. 使用RKDevTool工具(Windows)
  2. 使用upgrade_tool(Linux):
upgrade_tool ul update.img
  1. 通过maskrom模式强制烧录

调试经验

  1. 烧录前务必核对parameter.txt与实际硬件匹配
  2. 使用upgrade_tool ef命令可以擦除flash
  3. 串口日志是诊断启动问题的关键

有次烧录后无法启动,发现是parameter.txt里的uboot地址配置错误。建议修改分区表前先备份原始文件。

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

瑜伽女孩图片生成实战:雯雯的后宫-造相Z-Image模型体验

瑜伽女孩图片生成实战:雯雯的后宫-造相Z-Image模型体验 1. 这不是普通AI画图,是专为瑜伽场景优化的视觉生成工具 你有没有试过用通用文生图模型生成瑜伽动作图片?大概率会遇到这些问题:人物比例失调、体式不标准、垫子纹理模糊、…

作者头像 李华
网站建设 2026/4/17 18:21:48

3步构建企业级文档自动化处理系统:从效率瓶颈到智能工作流

3步构建企业级文档自动化处理系统:从效率瓶颈到智能工作流 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&a…

作者头像 李华
网站建设 2026/4/17 13:45:14

Qwen3-ASR-1.7B效果展示:日语动漫配音语音识别+台词时间轴对齐

Qwen3-ASR-1.7B效果展示:日语动漫配音语音识别台词时间轴对齐 你有没有试过把一段热血沸腾的日语动漫片段,比如《进击的巨人》里利威尔兵长那句“お前は、もう死んでいる”,直接变成带时间轴的中文字幕?不是靠人工听写&#xff0…

作者头像 李华
网站建设 2026/4/18 6:19:57

Bili2text视频转文字工具全攻略:从安装到高级应用

Bili2text视频转文字工具全攻略:从安装到高级应用 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text Bili2text是一款专注于B站视频内容提取的语音识…

作者头像 李华
网站建设 2026/4/18 9:10:09

FLUX.1-dev保姆教程:从安装到出图,手把手教你玩转AI绘画

FLUX.1-dev保姆教程:从安装到出图,手把手教你玩转AI绘画 你是不是也试过在本地跑大模型,结果刚点“生成”就弹出红色报错——CUDA out of memory?显卡风扇狂转、温度飙升、画面卡死……最后只能关掉终端,默默打开网页…

作者头像 李华
网站建设 2026/4/17 15:20:01

Nunchaku FLUX.1 CustomV3使用技巧:提升图片质量的秘诀

Nunchaku FLUX.1 CustomV3使用技巧:提升图片质量的秘诀 你是否试过输入一段精心打磨的提示词,却得到一张细节模糊、构图松散、风格不统一的图片?不是模型不行,而是没用对方法。Nunchaku FLUX.1 CustomV3这个镜像,表面…

作者头像 李华