大佬教程收集整理的这篇文章主要介绍了全志A33编译脚本分析,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
分析所使用的SDK为锐尔威视的开发板的资料中的Linux-SDK
顶层目录下的build.sh:
本质上是调用的 buildroot/scripts/mkcommon.sh 并直接把所有的参数传过去
@H_685_22@mkcommon.sh前几行:设置目录,导入相关命令
然后是:
往后是:
根据传入的参数进行相关的操作,从上到下判断的参数依次是:
按照编译时的操作顺序,首先执行时传入的参数为 config,调用的是 该目录下的 mksetup.sh:
可以知道具体流程如下:
在 SELEcT_Board 中需要用户设置 chip、platform、kernel、board 等配置
在 init_defconf 则主要设置一些编译时所需要的路径信息
最终会在顶层目录的 .buildconfig 文件中生成如下信息(不同的选择会有所差异):
在 Linux 内核的顶层目录下生成编译配置文件 .config
后续可以通过命令修改配置:
当然也可以直接进行编辑
编译时直接调用 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 的一些细节
最后贴上笔者分析过程中的简单笔记,分析的时候可以凑合着看
以上是大佬教程为你收集整理的全志A33编译脚本分析全部内容,希望文章能够帮你解决全志A33编译脚本分析所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。