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 rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优