1.7 构建嵌入式Linux系统
构建一个Linux嵌入式系统需要满足下面几个条件:
1. 选择一个交叉工具链。工具链用于构建所有的软件包,它是开发工作的起点。工具链由以下几个部分组成:汇编器、编译器、链接器、调试器、运行时库和工具程序集。交叉编译器编译生成可执行程序,这些可执行程序能够运行在其他平台上而不是编译机上。
2. 选择将运行在目标平台上的软件包(引导加载器、内核和根文件系统)。
3. 配置并构建这些软件包。
4. 把它们部署到目标设备上。
构建一个嵌入式Linux系统有下面几种方法:
1. 手动方式(创建自己的构建脚本):此方法可以完全控制构建过程,但是它也比较乏味和辛苦,并且很难在其他计算机上复制构建的过程。它要求你非常了解软件组件的安装过程。例如,自己动手从无到有创建一个根文件系统,需要做以下这些事情:
- 下载所有软件组件的源代码(库、工具集或者应用程序)。
- 解决软件的依赖问题和版本冲突问题并给软件打补丁。
- 配置每个软件组件。
- 交叉编译每一个软件组件。
- 安装每一个软件组件。
2. 使用完全发行版(例如Ubuntu/Debian):很容易获得和使用,但是不容易定制。每一个Linux发行版已经预先定好了内核版本和根文件系统,根文件系统中包含预先指定的库文件、工具集和应用程序集。
3. 使用构建框架(例如Buildroot、Yocto):这种方式让你很容易地定制化,也可以方便地在其他计算机上重复构建过程。在嵌入式Linux领域,这种方式变得越来越流行。一个典型的构建框架由脚本和控制构建过程的配置元数据组成。构建框架一般包含了系统需要的所有软件组件的下载、配置、编译和安装,并且解决了软件组件的版本冲突和依赖问题。它允许创建一个定制的根文件系统。构建框架输出一个完整的映像文件,包括工具链、引导加载器、内核和根文件系统。
你将选择“Yocto工程”构建框架为Microchip SAMA5D2和NXP i.MX7D处理器构建映像,也将选择Debian发行版为Broadcom BCM2837处理器构建映像。