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

前言

  • 开发板:【正点原子】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 镜像支持等

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

穿越代码之海:探寻结构体深层逻辑,展望未来应用新天地

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看,已成习惯 创作不易,多多支持! 结构体作为一种数据结构,其定义和特点决定了它在各种应用中的广泛适用性。随着科技的进步和新兴行业的不断涌现&#xf…

2024年选择云渲染平台必须注意这5点!看完你就懂了

云渲染平台这么多,你是不是正在为选择哪一家而困惑? 随着云渲染技术的进一步发展,市面上的云渲染平台也越来越多,其中鱼龙混杂的也不在少数。对于设计师和设计公司来说,如何选择一个可靠且适合自己的云渲染平台成为一…

【ZIP技巧】ZIP分卷压缩包如何合并为一个?

通常,ZIP压缩文件文件体积过大的时候,大家可能都会选择“分卷压缩”来压缩ZIP文件,但是你是否遇到过需要将分卷压缩的文件合并回一个完整zip文件的情况?今天我们分享两个ZIP分卷压缩包合并的方法给大家。 方法一: 我…

java之static详细总结

static也叫静态,可以修饰成员变量、成员方法。 成员变量 按照有无static分为两种: 类变量:static修饰,属于类,与类一起加载一次,在内存中只有一份,会被类的全部对象共享实例变量(…

docker-compose安装adguard给局域网提供dns加速服务

启动配置 docker-compose.yaml配置文件 version: 3.3 services:adguard:image: adguard/adguardhome:latestcontainer_name: adguardrestart: unless-stoppedvolumes:- ./workdir:/opt/adguardhome/work- ./confdir:/opt/adguardhome/confports:- 53:53/tcp- 53:53/udp- 81:8…

蓝桥-回文日期

目录 题目链接 ​编辑 ​编辑 什么是回文数?​编辑 代码 100%过 90%暴力 优化写的暴力代码 题目链接 2.回文日期 - 蓝桥云课 (lanqiao.cn) 什么是回文数? 代码 100%过 把那个90%的代码的循环限制条件去掉就行了,题目只是限制了N…

每日一题(leetcode1026):节点与其祖先的最大差值--dfs

考虑到只能计算祖先之间的节点差而不能计算兄弟之间的节点差,所以思考使用dfs来解决该题。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), ri…

axure谷歌插件(直接下载)

axure谷歌插件 在网上找一个谷歌的axure,不是登陆就是收费,离谱。找了好久才找到这个,我下载保存到网盘了,直接下载就ok,永久无提取码。 下载插件文件,打开开发者模式,直接拖进来就ok。 网盘…

YOLOv8改进 | 细节涨点篇 | 利用YOLOv8自带的RayTune进行超参数调优

一、本文介绍 本文给大家带来的改进机制是利用Ray Tune进行超参数调优,在YOLOv8的项目中目前已经自带了该超参数调优的代码,我们无需进行任何的改动,只需要调用该方法输入我们的一些指令即可,当然了,这些超参数的设置还是比较又学问的,本文的内容也是应群友的需求进行发…

mid转MP3怎么转?一分钟搞定~

MIDI(Musical Instrument Digital Interface)文件格式的诞生可以追溯到上世纪80年代,音频技术迅速崛起。为了让不同音乐设备之间能够互相通信,MIDI格式成为了音乐的标准。它不同于常见的音频文件格式,不包含实际的声音…

JavaEE 初阶篇-深入了解线程池(线程池创建、线程池如何处理任务)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 线程池概述 1.1 线程池的优点 1.2 不使用线程池的问题 1.3 线程池的工作原理图 1.4 如何创建线程池? 2.0 通过 ThreadPoolExecutor 类自定义创建线程…

关于交叉小波变换

小波变换可以很好的在时频域中分析单个信号的瞬态和突变等时变特性,交叉小波变换是在小波变换的基础上提出的, 主要用来处理两个信号之间的相关程度。传统的互相关分析方法, 是通过傅里叶变换将信号从时域上转换到频域上,然后在频…

neo4j图数据库下载安装配置

neo4j下载地址Index of /doc/neo4j/3.5.8/ 1.说明:jdk 1.8 版本对应的 neo4j 数据库版本 推荐安装3.X版本 2.配置系统环境变量 3.启动 neo4j.bat console 4.访问

ENSP防火墙,解决不兼容及报错等问题,windows命令行修改网卡配置,配置cloud及防火墙连接,web连接防火墙

解决不兼容和报错等问题 原因1:VirtualBox版本太低(5.1.x)或太高(6.x.x)和eNSP不兼容 卸载virtualbox,下载virtualbox 5.2.28,安装稳定版本的virtualbox 删除原有程序:c:\用户\***\.…

烤羊肉串引来的思考--命令模式

1.1 吃羊肉串! 烧烤摊旁边等着拿肉串的人七嘴八舌地叫开了。场面有些混乱,由于人实在太多,烤羊肉串的老板已经分不清谁是谁,造成分发错误,收钱错误,烤肉质量不过关等。 外面打游击烤羊肉串和这种开门店做烤…

FSQ8罗德与施瓦茨FSQ8信号分析仪

181/2461/8938产品概述: R&S FSQ8 信号分析仪将两种仪器合二为一。它提供高达 120 MHz 解调带宽的信号分析以及高端频谱分析仪的动态范围。 频率范围:20 Hz 至 8 GHz高端频谱分析仪的动态范围 TOI 25 dBm,典型值1 dB 压缩 13 dBm&…

【已解决】HalconDotNet.HOperatorException:“HALCON error #1201: Wrong type of control

前言 最近在学习Halcon视觉和C#的联合开发,碰到一个比较有意思的问题记录一下,大致的报错信息是说我用的halcondotnet版本和我在halcon导出的使用的halcondotnet.dll版本不一致,所以才报错的! 解决 首先你得找到你安装halcon的…

安全测试概述和用例设计

一、安全测试概述 定义:安全测试是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程。 概念:安全测试是检查系统对非法侵入渗透的防范能力。 准则:理论上来讲,只要有足够的时间和资源&a…

哈希字典Dict

目录 Dict的组成 1.hash表的节点 2.hash表结构 3.字典 4.Dict结构 hash算法 哈希函数 什么情况下使用 rehash rehash主要的函数dictExpand 怎么判断要进行扩容还是收缩 什么时候会用到扩展和收缩 渐进式rehash 渐进式rehash主要的函数dictRehash 字典API 字典的…

shopee虾皮运营技巧,学会这几招能有效提高销量

在电商的运营过程中,新手总会踩上不少的坑,运气好的累计成经验值,应用于日后的店铺运营中,运气不好的,进坑了就再也爬不上来了,特别是跨境电商,本身与国内电商存在很大的信息差,不可…