rk3588s的firfly的linux的sdk版本

1、SDK的解压和更新

bash 复制代码
# 解压
mkdir -p ~/proj/rk3588_sdk
cd ~/proj/rk3588_sdk
cat path/to/rk3588_linux_release_20230114_v1.0.6c_0* | tar -xv

# 导出数据
.repo/repo/repo sync -l

#更新sdk数据,例如编译ubuntu就会无法烧录,因为SDK版本的问题

cd ~/proj/rk3588_sdk
# 同步
.repo/repo/repo sync -c --no-tags
.repo/repo/repo start firefly --all

#导出数据
.repo/repo/repo sync -l

2、烧录

这个问题是没有使用root用户执行的结果,切换root后烧录成功(sudo su)

okay的图片

bash 复制代码
#查看loader设备
sudo upgrade_tool LD  

#重启loader设备   #在单独烧录的时候设备不会自动重新启动,需要这条命令
sudo upgrade_tool RD  

#烧写统一固件 update.img
sudo upgrade_tool uf update.img

#如果升级失败,可以尝试先擦除后再升级。
# 擦除 flash 使用 ef 参数需要指定 loader 文件或者对应的 update.img
sudo upgrade_tool ef update.img   #update.img :你需要烧写的 Ubuntu 固件
# 重新烧写
sudo upgrade_tool uf update.img

烧写分区镜像
sudo upgrade_tool di -b /path/to/boot.img
sudo upgrade_tool di -r /path/to/recovery.img
sudo upgrade_tool di -m /path/to/misc.img
sudo upgrade_tool di -u /path/to/uboot.img
sudo upgrade_tool di -dtbo /path/to/dtbo.img
sudo upgrade_tool di -p paramater   #烧写 parameter
sudo upgrade_tool ul bootloader.bin # 烧写 bootloader


如果因 flash 问题导致升级时出错,可以尝试低级格式化、擦除 emmc:
sudo upgrade_tool lf update.img	# 低级格式化
sudo upgrade_tool ef update.img	# 擦除

fastboot 烧写动态分区
adb reboot fastboot # 进入bootloader
sudo fastboot flash vendor vendor.img
sudo fastboot flash system system.img
sudo fastboot reboot # 烧写成功后,重启

3、编译

bash 复制代码
#编译 Ubuntu 固件
#本教程的编译部分适用于 v1.0.6e 以上 SDK 版本

$ readlink -f .repo/manifest.xml
/home/daijh/p/rk3588/.repo/manifests/rk3588/rk3588_linux_release_20230301_v1.0.6e.xml

#搭建编译环境
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 \

#编译
# 在 device/rockchip/rk3588/ 目录下,有不同板型的配置文件,选择配置文件:

./build.sh roc-rk3588s-pc-ubuntu.mk 
2.3.2.2. 编译
2.3.2.2.1. 全自动编译
下载根文件系统:Ubuntu 根文件系统(64位),放到 SDK 路径下
# 这里没必要纠结aarch64的型号  对应的位置下载,解压跟着做就Okay了 
我的当时 ubuntu-aarch64-rootfs.img 就是Ubuntu20.04-Gnome_RK3588_v2.40-1_20230414.img

7z x ubuntu-aarch64-rootfs.7z
mkdir ubuntu_rootfs
mv ubuntu-aarch64-rootfs.img ubuntu_rootfs/rootfs.img

#开始编译
./build.sh
#生成的完整固件会保存到 rockdev/pack/ 目录。

##部分编译
#编译 u-boot
./build.sh uboot
#编译 kernel
./build.sh extboot
#编译 recovery
./build.sh recovery

#下载根文件系统:Ubuntu 根文件系统(64位),放到 SDK 路径下
# 这里没必要纠结aarch64的型号  对应的位置下载,解压跟着做就Okay了 
#我的当时 ubuntu-aarch64-rootfs.img 就是Ubuntu20.04-Gnome_RK3588_v2.40-1_20230414.img

7z x ubuntu-aarch64-rootfs.7z
mkdir ubuntu_rootfs
mv ubuntu-aarch64-rootfs.img ubuntu_rootfs/rootfs.img

#更新各部分镜像链接到 rockdev/ 目录:
./mkfirmware.sh

#打包固件,生成的完整固件会保存到 rockdev/pack/ 目录。
./build.sh updateimg
注意:当时我没有更新sdk,一直没有编出update.img,版本一直是20230114_v1.0.6c

所以才做了上面的更新sdk版本操作,一下就okay了,刚开始我还以为是rootfs的问题,但是更新了发现不是的 。

如下是SDK更新之后的版本图

4、验证

查看sdk的kernel版本 是否烧录内更新

bash 复制代码
#查看sdk的kernel版本
ZZM@ZZM-PC:~/rk3588_linux/kernel$ head .config -n 10
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 5.10.198 Kernel Configuration                --------5.10
#
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100301
CONFIG_LD_VERSION=236010000
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y

#有对应的设备的话  时间变化 编译的不同版本
root@firefly:~# uname -a
Linux firefly 5.10.198 #3 SMP Sat Apr 11 10:51:36 CST 2026 aarch64 aarch64 aarch64 GNU/Linux
root@firefly:~# 

5、制作rootfs.img的操作

bash 复制代码
# 待续-----
相关推荐
顶点多余13 分钟前
9.18 面试题总结 --- 绿盟
linux·面试
^Rocky18 分钟前
IT 疑难杂症诊疗室:复杂技术问题解决实录
运维·bug
Ivanqhz24 分钟前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
挖掘狂人40 分钟前
当生产环境"变慢",我用这套 perf + strace 30 分钟定位瓶颈
linux·运维·性能优化
Wang's Blog1 小时前
Java 项目实战: 外卖平台-数据库环境搭建与十一张表结构解析
java·服务器·redis
王六米。1 小时前
RAG知识库建设 文档解析 切分与索引如何衔接
服务器·前端·网络·企业数字化转型·智钳智能盒子
wuyk5552 小时前
【Socket 进阶之路】第 7 章 IO 多路复用 select & poll 完整实战|多 fd 监听、超时等待、优缺点横向对比
服务器·开发语言·网络·数据库·物联网
傲世仙尊2 小时前
IO流起步-从fopen到文件描述符fd
linux
Rabitebla2 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
人工智能培训2 小时前
大语言模型:从语言理解到通用智能的跃迁
linux·服务器·前端·人工智能