Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了全志A33编译脚本分析大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

0x00 环境说明: 分析所使用的SDK为锐尔威视的开发板的资料中的Linux-SDK 0x01 脚本分析: 顶层目录下的build.sh: buildroot/scripts/mkcommon.sh [email protected] 本质上是调用的  buildroot/scripts/mkcommon.sh 并直接把所有的参数传过去 mkcommon.sh前几行: BR_SCRIPTS_DI

0x00 环境说明:

分析所使用的SDK为锐尔威视的开发板的资料中的Linux-SDK

0x01 脚本分析:

顶层目录下的build.sh:

本质上是调用的  buildroot/scripts/mkcommon.sh 并直接把所有的参数传过去

@H_685_22@mkcommon.sh前几行:

设置目录,导入相关命令

然后是:

.buildconfig 文件存在时source该文件

往后是:

根据传入的参数进行相关的操作,从上到下判断的参数依次是:

step1:“./build.sh  config

按照编译时的操作顺序,首先执行时传入的参数为 config调用的是 该目录下的 mksetup.sh:

可以知道具体流程如下:

SELEcT_Board 中需要用户设置 chip、platform、kernel、board 等配置

在 init_defconf 则主要设置一些编译时所需要的路径信息

最终会在顶层目录的 .buildconfig 文件生成如下信息(不同的选择会有所差异):

step2:“cp  a33_vstar_defconfig  .config

在 Linux 内核的顶层目录下生成编译配置文件 .config

后续可以通过命令修改配置:

当然也可以直接进行编辑

step3:“./build.sh ”

编译时直接调用 build.sh,不传入任何参数,在 mkcommon.sh 中执行的是第六条分支:

其中 init_defconf 确保环境的初始化

编译时主要执行的命令是 mklichee

在 mkcmd.sh 文件中查看 mklichee 的实现:

其中 mk_info 设置打印字符串的格式:

@H_685_22@mklichee 大致流程为:

@H_685_22@mkbr:

该命令实现:进入顶层目录下的 buildroot 文件夹,并执行文件夹下的 scripts/build.sh

buildroot/scripts/build.sh 先进行编译环境的配置,然后执行:

调用时未传入任何参数,直接跳过第一种参数为 “clean” 时的情况,后续为:

其中 build_buildroot 与 build_external :

build_buildroot 编译生成 交叉工具链(arm-linux-gnueabi),其中:

build_external 编译扩展的软件工具包,其中:

build_toolchain:

作用是直接安装交叉工具链(gcc-linaro),路径为:${LICHEE_BR_DIR}/dl/gcc-linaro.tar.bz2

@H_685_22@mkbr到这里就分析完了,下面看mkkernel:

流程为处理配置文件之后调用 linux3.4/scripts/build.sh 编译Linux内核:

下面分析 mkrootfs:

作用是生成文件系统,按照配置的平台的不同分为以下情况:

如果需要进行根文件系统的定制修改,需要分析 mkrootfs 的一些细节

 

0x02 简单汇总:

最后贴上笔者分析过程中的简单笔记,分析的时候可以凑合着看

大佬总结

以上是大佬教程为你收集整理的全志A33编译脚本分析全部内容,希望文章能够帮你解决全志A33编译脚本分析所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。