RK3568 学习笔记 : 独立修改与编译 u-boot

news2025/1/9 19:55:16

前言

  • 开发板:【正点原子】ATomPi-CA1 开发板,配置:RK3568,4GB DDRAM + 64GB emmc

  • 开发板资料给了 u-boot 与 Linux kernel 源码,尝试手动编译。

  • 本篇记录 收到编译 RK3568 平台 u-boot 的方法

环境搭建

  • 由于 RK 平台默认给的 SDK 相当的大,所以本次手动编译 u-boot,并尝试配置与修改 u-boot

  • 解压【正点原子】ATomPi-CA1 开发板 u-boot 源码,然后设置一下交叉编译工具链,我这里使用 gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu,RK3568 属于 ARM 64位,也就是 aarch64 平台,gcc 交叉编译工具链,可以从 https://developer.arm.com/downloads/-/gnu-a 下载

  • 编译环境: ubuntu 20.04,设置 gcc 交叉编译工具链的环境变量,我这里写了一个简单的 shell 脚本,每次运行一下即可,就不需要更改系统的 环境变量了

  • gcc 交叉编译工具链 环境变量设置脚本:env_aarch64.sh

#!/bin/bash

export PATH=$PATH:/home/zhangsz/tools/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin
  • shell 脚本执行权限: chmod 777 env_aarch64.sh
  • 使能 shell 脚本: source env_aarch64.sh ,有效期:当前 shell 窗口,立即生效,重新开启 新的 shell 窗口或者重启 ubuntu 系统,需要再次设置。也就是临时设置

编译准备 rkbin

  • rk 平台 u-boot 在 官方 u-boot 基础上做了大量的修改,有个编译脚本 make.sh 用于手动编译

  • rk 平台 u-boot 依赖 rk 的bin 仓库,里面是一些 编译好的二进制文件,打包 uboot.img 或者生成 spl 时 会使用到,比如 ddr 的初始化。

  • rkbin 仓库位置, https://github.com/rockchip-linux/rkbin.git,需要下载到 rk u-boot 的同级目录,

zhangsz@zhangsz:~/rk3568/uboot/rk-uboot$ ls
rkbin  u-boot  u-boot-atompi-ca1

编译方法

  • 【正点原子】ATomPi-CA1 开发板 提供了 默认配置文件 configs/atompi-ca1_defconfig

  • 编译命令: ./make.sh atompi-ca1,产物 uboot.img

  • 使用 ./make.sh --spl 生成 rk356x_spl_loader_v1.21.113.bin,用于 loader 下载(SPL)

烧写方法

  • 使用 RK 提供的 RKDevTool.exe 进行烧写,注意烧写时,可以只烧写 Loader 与 uboot

在这里插入图片描述

  • 烧写后,启动信息可以看到, SPL 与 u-boot 的编译信息都更新了,说明 u-boot 编译成功

在这里插入图片描述

修改 u-boot 默认配置

  • 经过 ./make.sh atompi-ca1 编译后(完整编译),可以使用如下的命令进行 配置
# 默认已经执行
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- atompi-ca1_defconfig

# 图形界面配置
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- menuconfig

# 修改并保存配置

# 保存默认配置
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- savedefconfig

# 覆盖默认配置
cp defconfig configs/atompi-ca1_defconfig

# 编译
./make.sh

小结

  • 可以自行尝试修改并配置 rk 平台的 u-boot,比如使用 fastboot,关闭 RK 默认的 rkimg 镜像支持等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1563660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“探秘数据结构:栈的奇妙魔力“

每日一言 兰有秀兮菊有芳,怀佳人兮不能忘。 —刘彻- 栈 栈的概念及结构 栈(Stack) :一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守…

软件资源分享六:EPLAN Electric P8 2024 | Eplan 2024 中文版软件介绍+保姆级安装教程

原文链接:安装激活教程 EPLAN Electric P8 2024 | Eplan 2024 中文版软件介绍安装教程 EPLAN 2024是一款电气设计软件,它可以用于自动化系统的设计、文档编制和维护。EPLAN可以对电气设计的各个方面进行完整的支持,包括电气控制系统、机械设…

全栈的自我修养 ———— redux入门(看这么一篇就够了!!!)

redux时react中负责状态管理的工具 一、下载二、配置1、目录2、store配置3、redux中index.js配置4、启动类中index.js配置 三、使用1、调用store的数据2、调用store里面的方法3、改变store里面的值 一、下载 npm I reduxjs/toolkit react-redux二、配置 1、目录 modules里面…

Pygame基础9-射击

简介 玩家用鼠标控制飞机(白色方块)移动,按下鼠标后,玩家所在位置出现子弹,子弹匀速向右飞行。 代码 没有什么新的东西,使用两个精灵类表示玩家和子弹。 有一个细节需要注意,当子弹飞出屏幕…

6、Cocos Creator 2D 渲染组件:​Sprite 组件​

Sprite 组件 Sprite(精灵)是 2D/3D 游戏最常见的显示图像的方式,在节点上添加 Sprite 组件,就可以在场景中显示项目资源中的图片。 属性功能说明Type渲染模式,包括普通(Simple)、九宫格&#x…

【云呐】公司资产怎么盘点,如何做好资产盘点?

固定资产盘点是一个复杂的过程,需要充分的计划、准备和组织。确保盘点团队具备足够的专业知识和技能,并与相关部门和人员进行充分的沟通和协作。  盘点公司的固定资产是确保资产准确性并管理资产风险的重要过程。下面是一般性的指导步骤,供…

Outlook邮箱后缀是什么?如何改邮箱后缀?

Outlook邮箱后缀可以更改吗?微软有哪些后缀的邮箱? 对于许多刚接触Outlook邮箱的新手来说,了解Outlook邮箱后缀是必不可少的一步。那么,Outlook邮箱后缀究竟是什么呢?接下来,AokSend就来详细探讨一下这个问…

element-ui badge 组件源码分享

今日简单分享 badge 组件的源码实现,主要从以下两个方面: 1、badge 组件页面结构 2、badge 组件属性 一、badge 组件页面结构 二、badge 组件属性 补充几个标签的用途: sub:下标、sup:上标、var 变量 代码如下&am…

YPay源支付V7开源版

YPay_V7版本即将停止维护更新,同时我们将开放最新版开源代码供学习和参考。虽然首批阶段的【function_8.1.php文件是加密的】,但授权已经除去,该代码将在新版YPay上线时开放给大家。我们也会定期进行迭代更新,随后将创建对应仓库&…

算法系列--动态规划--背包问题(2)--01背包拓展题目

💕"2024.3.28小米汽车发布"💕 作者:Lvzi 文章主要内容:算法系列–动态规划–背包问题(2)–01背包拓展题目 大家好,今天为大家带来的是算法系列--动态规划--背包问题(2)--01背包拓展题目 1.分割等和⼦集 链接: https:/…

风险与收益

风险与收益 影响资产需求的主要因素财富总量预期收益率资产的流动性影响流动性的主要因素 风险 如何降低风险系统风险和非系统风险机会集合与有效集合资产组合理论 影响资产需求的主要因素 影响资产需求的主要因素包括:财富总量、预期收益率、资产的流动性和风险。…

虚拟机与开发板之间互传文件、文件夹

1.配置桥接模式实现外网访问 1.1设置 VMnet0 要桥接的网卡 打开【编辑】-【虚拟网络编辑器】 选择【更改设置】 选择【VMnet0】,选择桥接到宿主机上的哪个网卡。 通过打开安装虚拟机的宿主机的【网络适配器】,可以查看网卡名称。 1.2虚拟机配置桥接模式…

支持多元AI场景应用,宁畅“NEX AI Lab”开放试用预约中

3月29日,宁畅在京举行发布会,正式发布“全局智算”战略,并在会上推出战略性新品“AI算力栈”,旨在有效解决大模型产业落地的全周期问题。 据宁畅CTO赵雷介绍,“AI算力栈”集成了宁畅在AI计算领域的软硬件能力&#xff…

Python中os.environ基本介绍及使用方法

文章目录 python中os.environos.environ简介os.environ进行环境变量的增删改查 python中os.environ的使用详解1. 简介2. key 字段详解2.1 常见 key 字段 3. os.environ.get() 用法4. 环境变量的增删改查和判断是否存在4.1 新增环境变量4.2 更新环境变量4.3 获取环境变量4.4 删除…

正大国际:安全合规的外盘期货途径

“外盘期货”一词是指在中国大陆以外建立的期货交易市场。交易所基于国内期货和外盘期货的全球定价、价格权威、巨大的外部交易量、成熟的交易市场和交易机制、强大的流动性、巨大的市场容量、在中国大陆没有控制和强劲的趋势。然而,许多人被引诱进入非法甚至非法平…

【MySQL】DML的表操作详解:添加数据&修改数据&删除数据(可cv例题语句)

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

【数字图像处理】图像的最近邻插值、双线性插值和双三次插值

图像最近邻插值、双线性插值和双三次插值 用 O ( X , Y ) O(X,Y) O(X,Y)表示 H W H\times W HW的原始图像, G ( X ^ , Y ^ ) G(\hat{X},\hat{Y}) G(X^,Y^)表示 H ^ Y ^ \hat{H}\times\hat{Y} H^Y^的目标图像。 最近邻插值 最近邻插值法令目标图像在 ( x ^ , y…

代码随想录-二叉树【从中序与后序遍历序列构造二叉树】

题目 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder [9,3,15,20,7]后序遍历 postorder [9,15,7,20,3] 返回如下的二叉树: 思路 首先回忆一下如何根据两个顺序构造一个唯一的二叉…

JavaScript前端学习大全

一、概念 JavaScript简称为JS,这门语言诞生主要用于完成页面的数据验证,因此运行在客户端,需要浏览器来解析JavaScript的代码。是世界上最流行的脚本语言。JavaScript 是一种让网页变得有趣和动态的编程语言。比如,当你在网页上点…

Java的编程之旅44——学生信息管理系统

目录 1.MVC设计模式初探 文件结构的搭建 2.Student类用来初始化学生信息 3.主函数里的两个功能 1.调用初始化学生信息的功能 2.输出欢迎界面功能 4.Global类中方法的编写 5.StuPage类,StuCtrl类,StuModel类中方法的编写 1.查询功能 selStu方法的…