Skip to main content

代码编译

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. x2580_evb_v1.0 开发板编译方法

x2580_evb_v1.0 开发板使用的工程配置文件为: x2580_nor_defconfig

如果需要更改默认配置,可以使用工具 IConfigTool 进行配置(见2 开发板 IConfigTool 配置方法

配置文件确定并保存后,编译方法可参考x2000 linux 工程编译方法

  • 编译配置文件

    xxx/build/$make x2580_nor_defconfig
  • 全局编译

    xxx/build/$make

    编译通过后在build/output下生成uboot, kernel, rootfs的镜像文件

3. 编译以后,固件生成目录

build$ ls output/ -lh   
total 16M
-rw-r--r-- 1 kenny kenny 12M 39 17:41 rootfs.squashfs
-rw-rw-r-- 1 kenny kenny 24K 39 17:41 u-boot-spl-pad.bin
-rw-rw-r-- 1 kenny kenny 3.6M 39 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生成的所有文件