在docker容器中编译 rk3588 ubuntu固件

ops/2024/12/21 20:59:37/

文件准备

  • Linux SDK ---- rk3588_linux_release_20230114_v1.0.6c_0*
  • Ubuntu根文件系统 ---- Ubuntu22.04-Xfce_RK3588_v3.11-27_20240410.img.7z

硬件环境

  • 一个可联网的linux机器,并且装有docker

docker编译环境">打包一个docker编译环境

dockerfile内容">Dockerfile内容

直接通过dockerfile构建方便快捷

# Base Image
from ubuntu:18.04# Author
LABEL maintainer="huangjiaobai <huangjiaobai@demo.com>"# expect
RUN apt-get update && apt-get install -y \build-essential \cmake \git \libcurl4-openssl-dev \libgtest-dev \libxml2-dev \pkg-config repo ssh make gcc libssl-dev liblz4-tool \g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \qemu-user-static live-build bison flex fakeroot gcc-multilib g++-multilib \unzip device-tree-compiler ncurses-dev p7zip bc tree# workspace
WORKDIR /app

容器">构建并启动容器

docker build -t huangjiaobai/uos:1.0.0 .
docker run --privileged --runtime=nvidia --gpus all --name uos -tid -v /dev/mem:/dev/mem -v /home/demo/work/uos:/app/uos --rm huangjiaobai/uos:1.0.0

容器">进入容器

我们所有的操作都在挂载的文件夹里边进行防止数据丢失

docker exec -ti uos /bin/bash

下载文件

SDK 源码存放于 gitlab,国内用户可能下载完整的 SDK 仓库速度比较慢,所以FireFly提供了一个 SDK 基础包Linux SDK,国内用户只需要在此基础包上同步 gitlab 上的代码就可以了,本人使用的linux sdk基础包
下载完毕后得到6个压缩包文件

c3bcb3f92bd139f72551c89f75d39bfa  rk3588_linux_release_20230114_v1.0.6c_00
ebb658571a645d4af1e2b569709480b7  rk3588_linux_release_20230114_v1.0.6c_01
9761cc324e9f7133500b590c441b0307  rk3588_linux_release_20230114_v1.0.6c_02
7adc9fe2158d7681554dce1def238f49  rk3588_linux_release_20230114_v1.0.6c_03
3d9201e3849b8a523c05920bebe28b39  rk3588_linux_release_20230114_v1.0.6c_04
6faaee006fe60fc9be60a64a01506cb6  rk3588_linux_release_20230114_v1.0.6c_05

解压文件,并同步

# 解压
mkdir -p rk3588_sdk
cd rk3588_sdk
cat path/to/rk3588_linux_release_20230114_v1.0.6c_0* | tar -xv# 导出数据
.repo/repo/repo sync -l

同步代码

# 同步
.repo/repo/repo sync -c --no-tags
.repo/repo/repo start firefly --all# 更新SDK
.repo/repo/repo sync -c --no-tags

因为网络环境等原因,.repo/repo/repo sync -c --no-tags 命令更新代码可能会失败,可多次反复执行。

下载根文件系统

Ubuntu根文件系统(64位)

下载完毕后,计算md5值
61451fa7e4fe36a6bda8df81265661d9  Ubuntu22.04-Xfce_RK3588_v3.11-27_20240410.img.7z
解压文件重命名,复制到指定位置
7z x Ubuntu22.04-Xfce_RK3588_v3.11-27_20240410.img.7z
cd rk3588_sdk
mkdir ubuntu_rootfs
mv ubuntu-aarch64-rootfs.img ubuntu_rootfs/rootfs.img

完整目录树

|-- app                                     # 上层应用
|-- build.sh -> device/rockchip/common/build.sh          # 编译脚本
|-- buildroot                                  # Buildroot 根文件系统编译目录
|-- device                                    # 编译相关配置文件
|-- docs                                     # 文档
|-- envsetup.sh -> buildroot/build/envsetup.sh
|-- external                                  # 第三方库
|-- firefly-update.sh -> device/rockchip/common/firefly-update.sh
|-- kernel
|-- mkfirmware.sh -> device/rockchip/common/mkfirmware.sh   # 链接脚本
|-- prebuilts                                  # 交叉编译工具链
|-- rkbin
|-- rkflash.sh -> device/rockchip/common/rkflash.sh       # 烧写脚本
|-- rockdev                                  # 打包好的固件目录
|-- tools                                    # 工具目录
|-- u-boot
|-- ubuntu_rootfs                              # ubuntu根文件系统
|-- uefi
`-- yocto

执行编译命令

## 选择配置
./build.sh device/rockchip/rk3588/itx-3588j-BE45-A1-ubuntu.mk## 编译
./build.sh

 


http://www.ppmy.cn/ops/11964.html

相关文章

Docker知识点总结

Docker 一句话解释 解决了运行环境和配置问题的软件容器&#xff0c;方便做持续集成并有助于整体发布的容器虚拟化技术。 1、启动命令 启动docker&#xff1a; systemctl start docker 停止docker&#xff1a; systemctl stop docker 重启docker&#xff1a; systemctl rest…

《AI聊天类工具之五——Copilot》

一.简介 官网:Microsoft Copilot: 你的日常 AI 助手 Copilot是微软在Windows 11操作系统中引入的一款先进的AI助手。这款工具集成在操作系统的侧边栏中,旨在帮助用户完成各种任务。它依托于底层大语言模型(LLM),用户只需通过简单的语言指示,Copilot就能够创建类似人类撰…

信息系统项目管理师0066:过程管理(5信息系统工程—5.1软件工程—5.1.6过程管理)

点击查看专栏目录 文章目录 5.1.6过程管理1.成熟度模型2.成熟度等级5.1.6过程管理 软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。软件过程能力成熟度是指组织在提升软件产…

HashData获得华为鲲鹏Validated认证 信创版图持续壮大

近日&#xff0c;经过一系列严格测试评估&#xff0c;酷克数据自研企业级HashData云数仓通过华为鲲鹏高阶调优认证&#xff0c;成功获得鲲鹏Validated技术认证书。 在本次Validated认证过程中&#xff0c;酷克数据携手北京鲲鹏联合创新中心&#xff0c;针对数据仓库的典型应用…

【计算机网络】(三)物理层 - 通信基础

文章目录 【计算机网络】&#xff08;三&#xff09;物理层 - 通信基础前言3.1 物理层的基本概念3.2 数据通信的基础知识3.2.1 数据、信号、码元3.2.2 信源、信宿、信道3.2.3 编码、调制3.2.3.1 基带调制&#xff08;编码&#xff09;3.2.3.2 带通调制&#xff08;调制&#xf…

python制作ppt

在Python中&#xff0c;你可以使用python-pptx库来创建和修改PowerPoint (.pptx) 文件。这个库允许你添加幻灯片、文本框、图片、形状、表格等元素&#xff0c;并可以调整它们的格式和布局。 下面是一个简单的例子&#xff0c;展示了如何使用python-pptx库来创建一个PPT文件&a…

【教程】使用vitepress搭配githubPages构建自己的在线笔记

1. 创建VitePress项目 确保自己已经安装好了node&#xff0c;我这个笔记用的是node 18.16.0, 怎么安装nvm这个可以csdn或者掘金&#xff0c;再或者等我有空了我就更新一下 使用nvm安装node # 查看可用版本 nvm list avaliable # 安装node nvm install 18.16.0 # 切换node nvm …

算法和数据结构4.23:

1.测试工程师算法总结&#xff1a; L1排序和查找算法&#xff1a; 复杂度分析 查找算法&#xff1a;顺序查找、二分查找、其他查找算法 排序算法&#xff1a;冒泡排序、快速排序、其他排序算法 L2数据结构-线性表&#xff1a;链表、栈、队列、堆 L3数据结构-非线性表&…