news 2026/4/16 10:14:24

20241125从零构建NanoPi R3S开发板【RK3566】镜像:完整编译与备份指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20241125从零构建NanoPi R3S开发板【RK3566】镜像:完整编译与备份指南

1. 环境准备与源码获取

第一次接触NanoPi R3S开发板时,我花了两天时间才搞清楚整个编译流程。RK3566这颗芯片性能不错,但官方文档有些细节没讲清楚,这里把我的踩坑经验完整分享出来。

硬件准备清单

  • 一台x86_64架构的Linux主机(实测Ubuntu 20.04/22.04最稳定)
  • 至少200GB可用磁盘空间(编译过程会产生大量中间文件)
  • 16GB以上内存(链接阶段很吃内存)
  • 稳定的网络连接(需要下载约2GB的源码和依赖)

先安装基础依赖包,这个步骤很多人会漏掉libssl-dev导致后续出错:

sudo apt update sudo apt install -y git make gcc g++ bison flex libssl-dev \ python3 unzip patchelf bc pigz rsync

获取源码有两种方式,我推荐直接用官方压缩包:

wget https://download.friendlyelec.com/NanoPiR3S/buildroot-rk3566-20241007.tar tar xvf buildroot-rk3566-20241007.tar cd buildroot-rk3566

如果是通过repo同步(适合需要最新代码的情况):

.repo/repo/repo sync -l

注意:国内用户可能会遇到同步缓慢问题,建议在晚上网络空闲时段操作。我在深圳电信网络下实测完整同步需要40分钟左右。

2. 编译配置与初始化

进入目录后先处理预编译文件,这个unpack.sh脚本很多人会漏执行:

cd pre-download ./unpack.sh # 解压内核驱动和文件系统 cd ..

关键的一步是选择板型配置,这里有个隐藏坑点:

./build.sh rk3566.mk # 必须带.mk后缀

执行后会生成.current_config.mk软链接,验证是否成功:

ls -l .current_config.mk # 应指向device/friendlyelec/rk3566/rk3566.mk

遇到过最头疼的问题是dl目录冲突。由于Rockchip的包管理策略变化,需要手动清理旧缓存:

cd buildroot mv dl dl_bak # 备份原有目录 mkdir dl # 新建空目录 cd ..

3. 完整编译流程

开始全量编译前,建议先开个screen会话防止中断:

screen -S build_rk3566 ./build.sh all # 首次编译约2小时

编译过程会输出各阶段日志,重点观察:

  1. uboot编译:约15分钟,输出idbloader.img和uboot.img
  2. 内核编译:约30分钟,生成resource.img和kernel.img
  3. 根文件系统:最耗时的部分,约1小时

遇到编译错误时,90%的情况是网络问题导致包下载失败。这时候可以:

  1. 检查buildroot/dl目录下是否有对应的.tar.gz包
  2. 手动下载后放入dl目录
  3. 重新执行./build.sh all

编译成功的标志是在scripts/sd-fuse/out目录下生成镜像文件:

ls -lh scripts/sd-fuse/out/*.img # 应该看到 buildroot_YYYYMMDD_rk3566_arm64_sd.img

4. 镜像备份与优化

备份策略是我特别要强调的。每次完整编译后,一定要保存这两个目录:

  1. dl目录:包含所有下载的源码包(约700MB)
cd buildroot tar --use-compress-program=pigz -cvpf dl_backup_$(date +%Y%m%d).tgz dl/
  1. output目录:包含编译产物(约15GB)
tar -cvpf output_backup_$(date +%Y%m%d).tar output/

实测备份后下次编译可节省90%时间。我的测试数据:

  • 首次编译:118分钟
  • 使用备份后编译:22分钟

镜像刷写技巧

xz -d buildroot_20241125_rk3566_arm64_sd.img.xz sudo dd if=buildroot_20241125_rk3566_arm64_sd.img of=/dev/sdX bs=1M status=progress

重要提醒:刷写前务必确认设备路径,误操作会导致数据丢失。我曾在凌晨3点误刷了工作硬盘...

5. 常见问题解决

问题1:编译中途报错"Failed to download package xxx"

  • 解决方案:手动下载对应的包到dl目录
  • 示例(以zlib为例):
wget https://www.zlib.net/zlib-1.2.13.tar.gz -P buildroot/dl/

问题2:uboot编译失败提示"missing dtc"

  • 原因:设备树编译器路径问题
  • 修复:
export PATH=$PATH:$(pwd)/buildroot/output/rockchip_rk3566/host/bin

问题3:生成的镜像启动卡在uboot阶段

  • 检查步骤:
    1. 确认板型配置正确(rk3566.mk)
    2. 验证电源供应是否充足(建议5V/3A)
    3. 更换质量更好的TF卡(推荐SanDisk Extreme)

最后分享一个实用技巧:在build.sh all之前先执行以下命令可以大幅减少编译时间:

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

MATLAB毕设论文新手入门:从选题到代码实现的完整技术路径

MATLAB毕设论文新手入门:从选题到代码实现的完整技术路径 摘要:许多工科学生在撰写 MATLAB 毕设论文时面临无从下手、代码结构混乱、仿真结果难以复现等痛点。本文面向零基础开发者,系统梳理 MATLAB 毕设的核心流程:如何结合专业背…

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

3个突破音高分析瓶颈的实战方案:pYIN插件深度优化指南

3个突破音高分析瓶颈的实战方案:pYIN插件深度优化指南 【免费下载链接】sonic-visualiser Visualisation, analysis, and annotation of music audio recordings 项目地址: https://gitcode.com/gh_mirrors/so/sonic-visualiser 你是否曾遇到音高检测结果像&…

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

【技术拆解】网盘加速工具:破解限速潜规则的逆向工程

【技术拆解】网盘加速工具:破解限速潜规则的逆向工程 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#…

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

ComfyUI图片生成视频大模型选型指南:效率优化与实战对比

ComfyUI图片生成视频大模型选型指南:效率优化与实战对比 在AI视频生成领域,ComfyUI结合不同大模型时面临效率差异显著的痛点。本文深度对比Stable Diffusion Video、AnimateDiff等主流方案在ComfyUI中的推理速度、显存占用和输出质量表现,提供…

作者头像 李华