当前位置: 首页 > news >正文

保姆级教程:在Ubuntu 22.04上从零编译RK3568 Linux SDK(含Python2.7避坑指南)

在Ubuntu 22.04上从零构建RK3568 Linux SDK的完整实战指南

当拿到一块RK3568开发板时,第一道门槛往往不是代码编写,而是环境搭建。不同于x86平台的即插即用,嵌入式开发的环境配置就像解一道多维方程——系统版本、工具链兼容性、依赖包冲突,每个变量都可能让编译过程戛然而止。本文将带你穿越这片雷区,特别针对Ubuntu 22.04这个较新但Python 2.7已退役的系统版本,展示如何优雅地搭建完整的RK3568 Linux开发环境。

1. 开发环境准备:避开新系统的旧坑

1.1 系统基础配置

在全新的Ubuntu 22.04 LTS上,首先需要确保软件源是最新的:

sudo apt update && sudo apt upgrade -y sudo apt install -y software-properties-common

接着安装基础编译工具链,这里有个细节:Ubuntu 22.04默认的gcc版本是11.x,而RK3568 SDK可能需要较旧的工具链。建议同时安装gcc-9作为备用:

sudo apt install -y gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90

1.2 Python 2.7的生存之道

RK3568的某些构建脚本仍依赖Python 2.7,这在已淘汰Python 2的Ubuntu 22.04上是个挑战。以下是安全安装方案:

# 下载并编译Python 2.7.18 wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz tar -xf Python-2.7.18.tar.xz cd Python-2.7.18 ./configure --enable-optimizations --prefix=/usr/local/python2.7 make -j$(nproc) sudo make install

关键技巧在于不破坏系统默认的Python 3环境。创建符号链接时使用显式路径:

sudo ln -s /usr/local/python2.7/bin/python /usr/local/bin/python2

验证安装:

python2 --version # 应输出: Python 2.7.18

2. 获取SDK:网络优化与权限处理

2.1 Repo工具配置

RK3568 SDK使用Google的repo工具管理,国内开发者需要特别配置:

mkdir -p ~/bin curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo chmod a+x ~/bin/repo

在~/.bashrc中添加:

export PATH=~/bin:$PATH export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

2.2 SDK下载加速

使用国内镜像源同步代码能极大提升效率:

mkdir ~/rk3568_linux_sdk cd ~/rk3568_linux_sdk repo init -u https://gitlab.com/firefly-linux/manifests.git -b master -m rk356x_linux_release.xml --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo repo sync -j$(nproc) --no-tags --no-clone-bundle

遇到权限问题时,尝试:

git config --global credential.helper store git config --global http.postBuffer 524288000

3. 编译实战:从配置到打包

3.1 编译环境初始化

进入SDK根目录,加载环境变量:

cd ~/rk3568_linux_sdk source build/envsetup.sh

选择板级配置时,RK3568常见的选项有:

1. BoardConfig-rk3568-evb1-ddr4-v10.mk 2. BoardConfig-rk3568-xxx.mk

使用交互式菜单选择:

lunch

3.2 分步编译指南

首次编译建议分步进行,便于定位问题:

# 编译U-Boot ./build.sh uboot # 编译内核 ./build.sh kernel # 编译文件系统(以buildroot为例) export RK_ROOTFS_SYSTEM=buildroot ./build.sh buildroot

常见错误处理:

  • 证书错误:在build.sh开头添加export GIT_SSL_NO_VERIFY=1
  • 内存不足:添加-j$(($(nproc)/2))减少并行任务数
  • Python版本冲突:显式指定python2路径

3.3 完整编译与打包

验证各组件编译成功后,进行完整构建:

./build.sh all ./build.sh firmware

生成的固件位于rockdev目录,关键文件包括:

文件作用
MiniLoaderAll.bin初级引导加载程序
uboot.imgU-Boot镜像
boot.img内核与设备树
rootfs.img根文件系统
update.img完整升级包

4. 高级技巧与疑难排解

4.1 交叉编译工具链定制

SDK自带的工具链可能不是最优选择。可以手动指定工具链路径:

export RK_TOOLCHAIN=/path/to/your/toolchain

验证工具链:

${RK_TOOLCHAIN}/bin/aarch64-linux-gnu-gcc --version

4.2 网络代理配置

如果代码同步缓慢,可为repo和git配置代理:

git config --global http.proxy http://proxy.example.com:8080 export REPO_HTTP_PROXY=http://proxy.example.com:8080

4.3 常见错误解决方案

问题1fatal error: openssl/opensslv.h: No such file or directory

sudo apt install libssl-dev

问题2error while loading shared libraries: libpython2.7.so.1.0

sudo cp /usr/local/python2.7/lib/libpython2.7.so.1.0 /usr/lib/ sudo ldconfig

问题3mkimage command not found

sudo apt install u-boot-tools

5. 开发效率提升实践

5.1 增量编译技巧

修改内核后快速重编译:

./build.sh kernel && ./build.sh updateimg

仅更新文件系统:

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

5.2 自动化脚本示例

创建build_all.sh自动化脚本:

#!/bin/bash set -e echo "=== 清理旧编译 ===" ./build.sh cleanall echo "=== 开始全量编译 ===" ./build.sh all echo "=== 打包固件 ===" ./build.sh firmware echo "=== 生成update.img ===" ./build.sh updateimg echo "编译完成!固件位于:rockdev/"

5.3 开发板快速测试

使用adbfastboot快速刷机:

sudo apt install android-tools-adb android-tools-fastboot fastboot flash boot boot.img fastboot flash system rootfs.img fastboot reboot

对于需要保留数据的场景:

fastboot flash --skip-reboot boot boot.img fastboot flash --skip-reboot system rootfs.img fastboot reboot
http://www.rkmt.cn/news/1439730.html

相关文章:

  • Downkyi哔哩下载姬:如何快速免费获取B站高清视频的完整教程
  • Win11下JLink驱动安装与激活避坑指南:从6.14版本到V6.40b的完整流程
  • 为什么92%的用户写不出合格古风诗?——Gemini诗歌生成的5个隐性约束条件与绕过方案
  • Python进阶 网络编程笔记-多进程
  • 基于精调大语言模型与双重校验机制构建高精度领域知识图谱
  • 260亿美元估值!Cognition如何在AI编程赛道完成转身,成企业软件工程新入口?
  • 2026年类似OpenClaw但无安全风险的软件推荐:支持内网部署的OpenClaw替代品TOP榜——龙虾国产化替代方案选型指南 - 品牌2025
  • GPT-3技术解析:从Transformer架构到应用实践
  • M1/M2 Mac到手后,我这样配置Java开发环境(JDK 8 + Maven + MySQL 8.0)
  • 数据科学家核心算法工具箱:从PCA到深度学习实战指南
  • 微信小程序图书商城毕业设计全套资料(含可运行源码、论文、PPT与数据库设计)
  • 计组课设求助
  • 阿里、字节 AI 战略大不同:一个“卖货”,一个“做产品”,上市与否成关键因素
  • 最新护发精油排名TOP 6产品全面测评 - 资讯快报
  • AI小说家杜威:解构大语言模型如何实现长篇叙事创作
  • MySQL连接串参数详解:除了allowMultiQueries,这些配置项也能帮你解决Spring Boot里的奇葩数据库错误
  • 科研绘图太耗时?AI一招搞定,效率拉满!
  • 支付宝消费券别让它躺过期!30天倒计时,95折回收认准畅回收 - 畅回收小程序
  • 月入3000和月入3万的博主,2026年配音工具差在哪?实测4款算笔账 - AI测评
  • 2026年5月武汉手表回收机构全方位测评——六家平台谁更胜一筹? - 薛定谔的梨花猫
  • Polatuzumab vedotin泊洛妥珠单抗作为CD79b靶向ADC治疗复发难治性弥漫大B细胞淋巴瘤效果如何
  • 昆明除甲醛公司哪家好?前五名口碑排行榜深度测评 - 绿舒环保母婴除甲醛
  • 赋能公安刑侦 无感追踪 黎阳之光破解视频侦查实战难点
  • 6款好用降AI率网站 合规程度拉满 - 降AI小能手
  • 美食探店、影视解说、个人IP,2026年不同视频类型配音怎么选?实测4款 - AI测评
  • vue中对列表行进行编辑时,弹窗关闭使用this.$refs[addForm].resetFields()不能重置表单
  • 【MySQL高阶】3.工具包中的其他程序(1)
  • 2026年5月江门黄金回收全域避坑指南:【余生黄金回收】综合实力排行第一 - 余生黄金回收
  • Hugging Face数据集实战:10大NLP数据集解析与高效应用指南
  • 分享一些日常爱牙小习惯