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

【超级详细】正点原子RK3588安装和编译SDK

一、安装 RK3588 Linux SDK包

参考文档:开发板光盘A盘-基础资料\10、用户手册\02、开发文档\02【正点原子】ATK-DLRK3588嵌入式Linux系统开发手册V1.1.pdf

视频:第6.1讲 Linux SDK包编译与使用-SDK包全编译(必做)_哔哩哔哩_bilibili

1、首先在Ubuntu系统下安装SDK编译环境所依赖的软件包,命令如下

sudo apt-get update && sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect expect-dev 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 bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev libmpc-dev bc python-is-python3 python2

2、设置 DNS 支持 kgithub.com,命令如下

sudo sed -i '$a 43.154.68.204\tkgithub.com' /etc/hosts
sudo sed -i '$a 43.155.83.75\traw.kgithub.com objects.githubusercontent.kgithub.com' /etc/hosts

3、配置Git

使用 repo 之前需要配置自己的 git 信息

git config --global user.name "your name"
git config --global user.email "your email"

4、查看自己的配置信息

git config --list

5、将下面的文件传输到Ubuntu虚拟机中,我放在了/home/alientek

文件路径:开发板光盘B盘-开发环境及SDK\02、ATK-DLRK3588开发板SDK\01、linux_sdk\atk-rk3588_linux_release_v1.2_20250104.tgz

注:在路径zhengdianyuanziRK3588\开发板光盘B盘-开发环境及SDK\02、ATK-DLRK3588开发板SDK\06、linux_r8_sdk下还有一个atk-rk3588_linux_release_R8_v1.0_20250104.tgz文件,这跟R8主要是支持Buildroot系统可以同时使用4IMX415摄像头的功能。

我只有一个摄像头,就没有使用这个

6、解压,命令如下

mkdir ~/rk3588_linux_sdk
tar xvf atk-rk3588_linux_release_v1.2_20250104.tgz -C ~/rk3588_linux_sdk

7、同步。依次执行如下步骤:

  • 解压完成后,~/rk3588_linux_sdk/目录下会存在一个.repo 文件夹
    在这里插入图片描述

  • 检出源码,命令如下

    cd ~/rk3588_linux_sdk/
    .repo/repo/repo sync -l -j10
    

    在这里插入图片描述

    repo

等待…

  • 同步完成后,~/rk3588_linux_sdk/目录下的内容如下所示

    在这里插入图片描述

8、安装第三方开源库

在编译根文件系统时会通过网络下载很多第三方开源库,很费时。这里我们直接提前把所需的第三方开源库拷贝到 SDK 中

文件路径:开发板光盘B盘-开发环境及SDK\02、ATK-DLRK3588开发板SDK\01、linux_sdk\dl.tgz

  • 将上面的dl.tgz传输到Ubuntu虚拟机中。然后解压,命令如下
tar -xzf dl.tgz -C ~/rk3588_linux_sdk/buildroot/
二、SDK包全自动编译

1、进入到 SDK 根目录下,依次执行如下命令

./build.sh lunch
2
alientek_rk3588_defconfig
回车

Tips:

进入到 SDK 根目录下,直接执行如下命令即可

./build.sh alientek_rk3588_defconfig

注:

  • build.sh 是 RK 封装好的一个编译脚本,可以快速构建出系统镜像文件以及对镜像进行打包操作,既可以一键全自动编译整个 Linux SDK,也可以单独编译 U-Boot、 Linux Kernel、buildroot 等!
  • 使用命令./build.sh -h可以查看 build.sh 脚本的使用方法

2、选择屏幕,进入SDK 根目录下,执行如下命令

vi kernel/arch/arm64/boot/dts/rockchip/rk3588-atk-screen_choose.dtsi
正点原子 5.5 寸 1080x1920(竖屏)MIPI 屏
正点原子 5.5 寸 720x1280(竖屏)MIPI 屏
正点原子 10.1 寸 800x1280(竖屏)MIPI 屏
标准 HDMI 显示屏(通过 HDMI 线连接)
标准 DP 显示屏(通过 type-c 转 dp 线连接)
  • 我的是正点原子 5.5 寸 1080x1920(竖屏)MIPI 屏,保留HDMI和DP。所以,保持默认如下:

    在这里插入图片描述

3、进入到 SDK 根目录下,开始自动编译整个 Linux SDK

./build.sh all

4、出现Running 99-all.sh - build_all succeeded.就是成功了
5、编译完成后,生成的镜像存放在 output/firmware/目录

三、SDK单独编译
单独编译 U-Boot
  • SDK 根目录下执行如下命令

    ./build.sh uboot
    
  • 编译完成后,会生成两个镜像文件:uboot.imgMiniLoaderAll.bin,镜像存放在output/firmware/目录

单独编译Linux内核
  • SDK 根目录下执行如下命令

    ./build.sh kernel # 编译内核
    ./build.sh recovery # 编译 recovery
    
  • 编译完成后,生成 boot.imgrecovery.img,镜像存放在 output/firmware/ 目录

单独编译 Linux 内核模块
  • SDK 根目录下执行如下命令

    ./build.sh modules
    
单独编译 rootfs
  • SDK 根目录下执行如下命令单独编译 buildroot 根文件系统

    ./build.sh buildroot
    
  • 编译完成后,生成 buildroot 根文件系统镜像 rootfs.img,镜像存放在 output/firmware/ 目录

单独编译 recovery
  • SDK 根目录下执行如下命令

    ./build.sh recovery
    
  • 编译完成后,生成 recovery.img,该镜像存放在 output/firmware/ 目录

制作 update.img 固件
  • update.img 固件是多个镜像的集合体,它由多个镜像打包而成。

  • 在 SDK 根目录下执行如下命令,可以将output/firmware/目录下的各分立镜像打包成一个 update.img 固件

    ./build.sh updateimg
    
四、SDK清理
  • 在 SDK 根目录下执行如下命令可对整个 SDK 进行清理:

    ./build.sh cleanall
    
  • 执行如下命令可以对各模块进行清理:

    # 清理 U-Boot
    ./build.sh clean:loader 
    # 清理 Linux 内核
    ./build.sh clean:kernel 
    # 清理 recovery
    ./build.sh clean:recovery
    # 清理 rootfs
    ./build.sh clean:rootfs
    

SDK瘦身

如果 Ubuntu 磁盘空间比较紧张,可以对 SDK 进行瘦身,将 SDK 根目录下的.repo(隐藏文件夹,使用 ls-a 可看到)文件夹删除、可释放出一部分磁盘空间;注意,.repo 文件夹中保存了SDK 所有仓库的 git 提交记录,一旦删除,后续将无法查看到任何仓库的 git 提交信息,所以不建议用户删除

http://www.dtcms.com/a/548566.html

相关文章:

  • AI 图像生成技术发展时间脉络:从 GAN 到多模态大模型的知名模型概略解析
  • “一网通办”查询响应优化:金仓索引如何支撑政务高效服务
  • 微信小程序(H5)上传文件到阿里云 OSS(使用 STS 临时凭证)
  • 建设局网站打不开是什么原因先做网站先备案
  • Bootstrap 按钮
  • Qt 外观之Qt样式表(QSS)
  • Adobe Lightroom安卓版(手机调色软件)绿色版
  • 服务器 Web 安全:Nginx 配置 X-Frame-Options 与 CSP 头,防御 XSS 与点击劫持
  • 嵌入式AI Arm_linux_第一个Demo_让IPU跑起来
  • Solon 项目升级 JDK 25
  • 手写自己的小型react
  • 3秒传输GB级文件:FastSend让P2P共享告别云存储依赖
  • 【Docker】P2 Docker 命令:从Nginx部署到镜像分享的全流程指南
  • VLAN协议简介
  • 递归专题1 - 递归基础与思维方法
  • 黄金分割与对数螺线
  • Vue 数据绑定深入浅出:从 v-bind 到 v-model 的实战指南
  • python - day10
  • MySQL 中的 行锁(Record Lock) 和 间隙锁(Gap Lock)
  • 【Docker】P1 Docker 基础入门指南
  • 【OD刷题笔记】- API集群负载统计
  • 韩城市网站建设wordpress 手工网站
  • Java—常见API(String、ArrayList)
  • 【STM32项目开源】STM32单片机医疗点滴控制系统
  • 游戏类网站备案需要前置审批吗怎么制作图片表格
  • AWS EC2 服务器弹性伸缩:基于 CPU 使用率创建伸缩组,实现资源动态调整
  • srt服务器,推拉流
  • Rust API 设计中的零成本抽象原则:从原理到实践的平衡艺术
  • Work-Stealing 调度算法:Rust 异步运行时的核心引擎
  • 服务器恶意进程排查:从 top 命令定位到病毒文件删除的实战步骤