RK3568技术笔记九 编译Linux详细介绍

2024-06-19 02:12

本文主要是介绍RK3568技术笔记九 编译Linux详细介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在编译前需要按照前面的方法始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。

全自动编译包含所有镜像编译,包括:uboot编译、Kernel编译、Recovey编译、文件系统编译、编译完成镜像的更新与打包。

       按照前面的方法初始化编译环境后,还需要设置RK_ROOTFS_SYSTEM环境变量,通过设置此变量,可以决定打包哪个文件系统:

打包buildroot文件系统,则设置RK_ROOTFS_SYSTEM为buildroot,如下所示:

$ export RK_ROOTFS_SYSTEM=buildroot

打包Debian文件系统,则设置RK_ROOTFS_SYSTEM为debian,如下所示:

$ export RK_ROOTFS_SYSTEM=debian

打包Ubuntu文件系统,则设置RK_ROOTFS_SYSTEM为ubuntu,如下所示:

$ export RK_ROOTFS_SYSTEM=ubuntu

查看当前终端设置的RK_ROOTFS_SYSTEM环境变量的值,执行命令:

$ echo $RK_ROOTFS_SYSTEM

下面以编译buildroot文件系统为例,使用全自动编译方法进行编译:

配置RK_ROOTFS_SYSTEM环境变量为buildroot,执行命令:

$ export RK_ROOTFS_SYSTEM=buildroot

查看RK_ROOTFS_SYSTEM环境变量是否配置正确,执行命令:

$ echo $RK_ROOTFS_SYSTEM

如下图所示:

可以看到输出为buildroot,说明配置正确。

执行全自动编译脚本,命令如下:

$ ./build.sh

如下图所示:

编译完成,此时终端最下行显示(END),按下“q”键退出,如下图所示:

最终,编译完成,如下图所示:

       上图中提示“确认板级的电源域配置”,这里已经配置好,请不要改动,改动错误会导致CPU芯片烧坏。

       编译完成后,所有烧写所需要的镜像将都会链接到rockdev目录,可以到rockdev目录下查看,如下图所示:

如需拷贝镜像到Windows参考第4.7节《镜像拷贝》

如需烧写自己编译的镜像请参考第六章《固件烧写》

单独编译

       说明:单独编译涉及镜像较多,较为复杂,若不是十分必须建议使用全自动编译,简单、方便。

Uboot编译

在编译前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。

进入源码目录(目录需按个人实际路径修改),执行命令:

$ cd ~/dianyu/sail_rk356x_linux_release_v1.3.0_20220620/

如下图所示:

编译uboot,执行命令:

$ ./build.sh uboot

如下图所示:

编译完成如下图所示:

编译后在 u-boot 目录生成两个镜像文件,分别是:

rk356x_spl_loader_v1.13.112.bin(这个文件就是MiniLoaderAll.bin,只是名字不同)

uboot.img

如下图所示:

Kernel编译

在编译内核前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。

进入源码目录(目录需按个人实际路径修改),编译kernel,执行命令:

$ ./build.sh kernel

如下图所示:

编译完成如下图所示:

红底字为提示电源域配置,源码中已经配置好,务必不要改动,否则会导致芯片烧坏。

编译后在 kernel 目录生成内核镜像文件:boot.img,如下图所示:

Recovery编译

在编译前需要按照前面的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。

进入源码目录(目录需按个人实际路径修改),编译Recovery,执行命令:

$ ./build.sh recovery

如下图所示:

       编译完成后在 buildroot/output/sail_rk3568_recovery/images 目录生成recovery.img镜像,如下图所示:

文件系统编译

在编译前需要按照前面介绍的方法初始化编译环境,否则会导致编译失败(若配置过则无需重复配置)。

注:在编译完成后进行固件打包的时候,会打包最后一次编译的文件系统,所以这里建议仅编译需要使用的文件系统,不需要的则不编译,否则在最后打包固件时可能会打包成不需要的文件系统。

Buildroot文件系统编译

进入源码目录(目录需按个人实际路径修改),编译Buildroot,执行命令:

$ ./build.sh buildroot

如下图所示:

编译后在 buildroot/output/sail_rk3568/images 目录生成rootfs.ext4镜像。如下图所示:

Debian文件系统编译

按下述方法编译的Debian系统,用户名是:linaro       密码:linaro

进入源码目录(目录需按个人实际路径修改),安装依赖包,执行如下所示命令:

注意,一定要在开发板源码目录下执行下述命令,否则会安装失败

$ sudo apt-get install binfmt-support qemu-user-static live-build

$ sudo dpkg -i debian/ubuntu-build-service/packages/*

$ sudo apt-get install -fy

安装过程如下图所示:

安装完成后,编译Debian,执行命令:

$ ./build.sh debian

如下图所示:

编译过程中会提示输入密码,直接输入即可(密码默认是隐式的)。

编译后在 debian 目录生成 linaro-rootfs.img 镜像。如下图所示:

这篇关于RK3568技术笔记九 编译Linux详细介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073721

相关文章

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置