嵌入式系统设计(七):Android4.0.3 镜像的编译(包含uboot的编译和linux内核的编译)

前言:
在接下来的时间里将更新一个专栏:嵌入式系统设计。在这个专栏里将会介绍基于iTOP-4412 Cortex A9开发板的嵌入式系统设计,从入门到实践可以无障碍的学习。欢迎大家关注收藏学习!!!!
在这里插入图片描述
文章嵌入式系统设计(一):虚拟机、Ubuntu的安装以及SSH 软件的安装使用:里面详细介绍了SSH软件的安装和ssh 软件在主机和虚拟机之间传文件。
文章嵌入式系统设计(二): 虚拟机和主机之间共享文件夹:里面详细介绍了部分用户无法正常使用 ssh 软件在主机和虚拟机之间传文件,虚拟机和主机之间采用共享文件夹的方式传递文件。
文章嵌入式系统设计(三):Vim编辑器的学习:里面详解介绍了Vim编辑器的安装以及对相关使用命令的介绍。
文章嵌入式系统设计(四):iTOP-4412裸机开发环境搭建(详细介绍DNW 驱动安装):里面详细介绍了iTOP-4412裸机开发环境的搭建以及详细介绍了DNW驱动的安装。
文章嵌入式系统设计(五):详细介绍win8/win10下安装 PL2303 驱动以及android_ADB驱动:里面详细介绍win8/win10下安装 PL2303 驱动以及android_ADB驱动。
文章嵌入式系统设计(六): iTOP-4412 开发板镜像的烧写(包含OTG 接口烧写方式和TF卡烧写方式):里面详细介绍了OTG 接口烧写方式和TF卡烧写方式。


无论什么文件系统都需要和 linux 内核以及 uboot 对应,所以先介绍Android4.0.3 文件系统对应的 uboot 以及 kernel 编译,再介绍Android4.0.3 文件系统的编译。

1 uboot 的编译

1.1 源码目录

在这里插入图片描述

1.2 编译器

如下图所示,编译器是“arm 交叉编译器”下的“arm-2009q3.tar.bz2”,如果使用的是搭建好的环境,确保编译器环境变量,如下图所示。
打开环境变量配置文件命令:“vim .bashrc”,
修改完之后更新环境变量命令:“source .bashrc”。

在这里插入图片描述

1.3 参数配置

编译 uboot 的脚本是源码文件夹中的“build_uboot.sh”,在编译的时候需要向脚本传参数,根据核心板的不同,脚本执行参数如下表所示。

硬件分类 脚本执行参数
核心板 SCP 1G 内存 SCP_1GDDR
核心板 SCP 2G 内存 SCP_2GDDR
核心板 POP 1G 内存 POP_1GDDR
核心板 POP 2G 内存 POP_2GDDR

1.4 编译生成 uboot 镜像举例

这里以 SCP 1G 核心板为例编译 uboot 镜像。
将目录下“CodeSign4SecureBoot_POP”、“CodeSign4SecureBoot_SCP”以及“iTop4412_uboot_xxx.tar.gz”拷贝到 Ubuntu 系统下,然后将“iTop4412_uboot_xxx.tar.gz”解压,得到“iTop4412_uboot”文件夹,如下图所示。
在这里插入图片描述
进入“iTop4412_uboot”文件夹,使用编译脚本“build_uboot.sh”编译 uboot,这里需要编译的是“SCP 1G 核心板”的 uboot 镜像,那么编译命令是
./build_uboot.sh SCP_1GDDR
输入编译命令,如下图所示。这里一定先确定核心板是哪种类型,然后将对应的参数传到脚本。
在这里插入图片描述
如下图所示,编译中。
在这里插入图片描述
如下图所示,脚本执行完成,在“iTop4412_uboot”文件夹下生成了
“u-boot-iTOP-4412.bin”文件。生成的文件“u-boot-iTOP-4412.bin”文件就是 SCP 1G内存核心板对应的 uboot 镜像文件。
在这里插入图片描述

2 Linux 内核的编译

2.1 源码目录

Linux 内核源码uboot 和 kernel目录下,如下图所示。
在这里插入图片描述

2.2 编译器

内核的编译器和 uboot 的编译器一样。

2.3 参数配置

内核的编译是组合式配置文件,基本的配置文件名是“config_for_android_YY_elite”,YY 表示用下表所示的参数替代。

硬件分类 配置文件
核心板 SCP 1G 或者 2G 内存 config_for_android_scp_elite
核心板 POP 1G 内存 config_for_android_pop_elite
核心板 POP 2G 内存 config_for_android_pop2G_elite

2.4 编译生成内核镜像举例

这里以 SCP 1G 核心板为例编译 zImage 内核镜像,那么配置文件为
config_for_android_scp_elite”。
将目录下的压缩包“iTop4412_Kernel_3.0_xxx.tar.gz”拷贝到 Ubuntu,然后解压,得到文件夹“iTop4412_Kernel_3.0 ”,如下图所示。
在这里插入图片描述
进入文件夹“iTop4412_Kernel_3.0 ”,使用命令
cp config_for_android_scp_elite .config”覆盖自带的配置文件,如下图所示。
在这里插入图片描述
然后使用编译命令“make zImage”,如下图所示。
在这里插入图片描述
编译中,如下图所示。
在这里插入图片描述
编译完成,如下图所示。
在这里插入图片描述
文件夹“iTop4412_Kernel_3.0 ”下的“arch”–>“arm”–>“boot”会生成镜像文件
“zImage”,这个 zImage 镜像可以给 SCP 1G 和 SCP 2G 的核心板使用,如下图所示。
在这里插入图片描述

3 Android4.0.3 的编译

3.1 源码目录

Android4.0.3 文件系统的源码,如下图所示。
在这里插入图片描述

3.2 编译器

Android4.0.3 的编译器是 gcc 4.4.7 版本(包括其他所有版本的 Android 编译器都是相同的),如下图所示,在控制台使用命令“gcc -v”,可以查看到 gcc 的版本。
在这里插入图片描述

3.3 参数配置

无参数配置。所有种类核心板对应的 Android4.0.3 都使用同一套源码,同一种编译方法。编译脚本是“build_android.sh”。

3.4 编译生成 Android4.0.3 镜像

将目录下压缩包“iTop4412_ICS_git_xxx.tar.gz”拷贝到 Ubuntu 系统中,解压压缩包,得到文件夹“iTop4412_ICS_git”。这里需要注意的是,Android 源码文件夹“iTop4412_ICS_git ”和内核源码文件夹“iTop4412_Kernel_3.0”需要放到同一目录下,如下图所示。
在这里插入图片描述
进入“iTop4412_ICS_git”目录,使用命令“./build_android.sh”运行编译脚本,编译Android4.0.3,如下图所示。
在这里插入图片描述
开始编译,如下图所示。
在这里插入图片描述
编译比较耗费时间,第一次编译会花费 60 分钟以上。
在这里插入图片描述
编译完成后在文件夹“iTop4412_ICS”–>“out”–>“target”–>“product–>
“smdk4x12”中生成 Android4.0.3 镜像文件“ranmdisk-uboot.img”和“system.img”,如下图所示。
在这里插入图片描述
如果想要支持 wifi,在编译好内核之后,还需要在内核目录中,执行编译模块的命令“make modules”,再执行编译 Android4.0.3 文件系统的脚本。

有用的话各位老铁来个三连击!!!
有用的话各位老铁来个三连击!!!
有用的话各位老铁来个三连击!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ywsydwsbn/article/details/106421824