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/bashexport 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.hqwc.cn/news/588159.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis.配置文件

基础篇Redis 6.1.2 .配置文件 spring:redis:host: 192.168.150.101port: 6379password: 123321lettuce:pool:max-active: 8 #最大连接max-idle: 8 #最大空闲连接min-idle: 0 #最小空闲连接max-wait: 100ms #连接等待时间6.1.3.测试代码 SpringBootTest class RedisDemo…

图神经网络实战(7)——图卷积网络(Graph Convolutional Network, GCN)详解与实现

图神经网络实战(7)——图卷积网络详解与实现 前言1. 图卷积层2. 比较 GCN 和 GNN2.1 数据集分析2.2 实现 GCN 架构 小结系列链接 前言 图卷积网络 (Graph Convolutional Network, GCN) 架构由 Kipf 和 Welling 于 2017 年提出,其理念是创建一…

数据结构(初阶)第一节:数据结构概论

本篇文章是对数据结构概念的纯理论介绍,希望系统了解数据结构概念的友友可以看看,对概念要求不高的友友稍做了解后移步下一节: 数据结构(初阶)第二节:顺序表-CSDN博客 正文 目录 正文 1.数据结构的相关概…

Word的”交叉引用“和”插入题注“快捷键设置

Word的”交叉引用“和”插入题注“快捷键设置 在MSWord2021中,可以自定义设置快捷键。方法如下:文件-选项-自定义功能区-键盘快捷方式(自定义)。具体过程如图所示。 最后,按照上述流程将插入题注(Insert…

Node | Node.js 版本升级

目录 Step1:下载 Step2:安装 Step3:换源 发现其他博客说的 n 模块不太行,所以老老实实地手动安装 Step1:下载 Node 中文官网:https://nodejs.cn/download 点击后,将会下载得到一个 .msi 文件…

全志 Linux Qt

一、简介 本文介绍基于 buildroot 文件系统的 QT 模块的使用方法: • 如何在 buildroot 工具里编译 QT 动态库; • 编译及运行 qt_demo 应用程序; • 适配过程遇到的问题。 二、QT动态库编译 在项目根路径执行 ./build.sh buildroot_menuc…

go连接数据库(原生)

根据官网文档 Go Wiki: SQL Database Drivers - The Go Programming Language 可以看到go可以连接的关系型数据库 ​ 常用的关系型数据库基本上都支持,下面以mysql为例 下载mysql驱动 打开上面的mysql链接 GitHub - go-sql-driver/mysql: Go MySQL Driver i…

QT5-qmediaplayer播放视频及进度条控制实例

qmediaplayer是QT5的播放视频的一个模块。它在很多时候还是要基于第三方的解码器。这里以Ubuntu系统为例,记录其用法及进度条qslider的控制。 首先,制作一个简单的界面文件mainwindow.ui: 然后,下载一个mp4或其他格式视频&#x…

C语言 | Leetcode C语言题解之第5题最长回文子串

题目&#xff1a; 题解&#xff1a; char* longestPalindrome(char* s) {int lenstrlen(s),max0;int p0;for(int i0;i<len;i)//这种是判断奇数回文{int lefti-1,righti1;//left左边&#xff0c;right右边while(left>0&&right<len&&s[left]s[right]){/…

是否有替代U盘,可安全交换的医院文件摆渡方案?

医院内部网络存储着大量的敏感医疗数据&#xff0c;包括患者的个人信息、病历记录、诊断结果等。网络隔离可以有效防止未经授权的访问和数据泄露&#xff0c;确保这些敏感信息的安全。随着法律法规的不断完善&#xff0c;如《网络安全法》、《个人信息保护法》等&#xff0c;医…

Linux提权!!!

上一篇文章讲了Windows的提权&#xff0c;那么这篇文章就来讲一下Linux的提权 1.SUID提权 suid权限 作用&#xff1a;让普通用户临时拥有该文件的属主的执行权限&#xff0c;suid权限只能应用在二进制可执行文件&#xff08;命令&#xff09;上&#xff0c;而且suid权限只能设置…

基于Springboot会员制医疗预约服务管理信息系统

采用技术 基于Springboot会员制医疗预约服务管理信息系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 系统功能 首页 医院信息 坐诊信息…