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 复制代码
# 待续-----
相关推荐
赵优秀一一3 小时前
FastAPI 核心
linux·python·fastapi
大数据新鸟3 小时前
NIO 三大核心组件
服务器·网络·nio
相醉为友3 小时前
024 嵌入式Linux应用开发——文字显示与freetype的使用显示
linux·运维·驱动开发
陳10303 小时前
Linux:进程的基本理解
linux·计算机外设·进程
七七powerful3 小时前
运维养龙虾--用Excalidraw Skill 手绘各种配图:从安装 Skill 到批量生成配图
运维
Hello World . .3 小时前
Linux驱动编程1:imxull上移植Linux系统
linux·运维·服务器
小夏子_riotous3 小时前
openstack的使用——5. Swift服务的基本使用
linux·运维·开发语言·分布式·云计算·openstack·swift
学Linux的语莫3 小时前
Hyper-V的安装使用
linux·windows·ubuntu·hyper-v
IMPYLH3 小时前
Linux 的 numfmt 命令
linux·运维·服务器·bash