代码编译
1.编译环境搭建
本章介绍 Linux SDK 的编译环境搭建
注意:
(1)推荐在 X86_64 Ubuntu 16.04 或者X86_64 Ubuntu 20.04系统环境下进行开发,不要使用X86_64 Ubuntu 20.04以上的版本,若使用其它系统版本,可能需要对编译环境做相应调整。(2)同步代码Python版本号的要求:电脑系统安装的 python 的版本要使用 Python 2.7,不然会导致同步代码报错。
(3)使用普通用户进行编译,不要使用 root 用户权限进行编译。
2. X2000H Darwin_x2000_v2.0 开发板编译方法
Darwin_X2000_V2.0开发板使用的工程配置文件为:x2000_darwin_factory_defconfig
如果需要更改默认配置,可以使用工具 IConfigTool 进行配置,详细使用方法下面的文档:
整体编译命令如下:
build$ make clean
build$ make x2000_darwin_factory_defconfig
build$ make
编译生成的固件
3. 编译以后,固件生成目录
build$ ls output/ -lh
total 16M
-rw-r--r-- 1 kenny kenny 12M 3月 9 17:41 rootfs.squashfs
-rw-rw-r-- 1 kenny kenny 24K 3月 9 17:41 u-boot-spl-pad.bin
-rw-rw-r-- 1 kenny kenny 3.6M 3月 9 17:41 xImage
4. 模块编译命令
执行工程编译流程后可执行以下命令
命令执行目录:build/ 目录下
4.1. 单独编译uboot
make uboot
作用:单独编译系统引导文件,并将生成引导文件u-boot-spl-pad.bin拷贝到output目录下(当编译以mmc为存储介质配置时,生成引导文件u-boot-with-spl-mbr-gpt.bin在uboot目录下)
make clean_uboot
作用:清除编译uboot生成的所有文件
4.2. 单独编译kernel
make kernel
作用:单独编译内核镜像文件,并将生成的内核镜像文件拷贝到output目录下
make clean_kernel
作用:清除编译内核生成的所有文件
4.3.单独编译buildroot
make buildroot
作用:单独编译文件系统,并将生成的文件系统拷贝到output目录下
make clean_buildroot
作用:清除编译文件系统生成的所有文件
4.4.单独编译app
make apps
作用:编译模块驱动module_driver以及库函数libhardware2、libutils2、libisp等
make clean_apps
作用:清除编译模块驱动以及库函数生成的所有文件
make apps、make app_module_driver、make app_libhardware2、make app_libisp、make app_libutils2等、后都需要执行make buildroot 命令将编译出来的文件打包到文件系统镜像中,并烧录到开发板
5. 编译app应用程序
编译app应用程序以编译app_module_driver和app_libhardware2为例
5.1.单独编译app_module_driver
make app_module_driver
作用:编译模块驱动并将模块安装脚本和ko文件拷贝到module_driver/output目录下。
make clean_app_module_driver
作用:清除编译模块驱动生成的所有文件
5.2.单独编译app_libhardware2
make app_libhardware2
作用:编译libhardware2目录下的函数并将生成的命令和库拷贝到libhardware2/output目录下
make clean_app_libhardware2
作用:清除编译libhardware2生成的所有文件