11. 野火定制镜像构建流程 您所在的位置:网站首页 openwrt大小 11. 野火定制镜像构建流程

11. 野火定制镜像构建流程

2024-07-01 04:37| 来源: 网络整理| 查看: 265

11.5.2. 构建kernel、设备树、OpenWrt根文件系统¶

我们借助OpenWrt SDK来编译我们的内核,在编译内核的同时也会编译设备树。

11.5.2.1. 使用准备工作¶

在编译OpenWrt源码前,我们还要进行一些准备工作,以满足编译的要求。我们可以借助 make_fire.sh 脚本来完成这项工作。

1 2 3 4 5#进入Uboot所在的目录 cd ~/ebf6ull-openwrt/gateway_openwrt_imx6ull #运行脚本 ./make_fire.sh

运行脚本以后,会提示输入数字选择要进行的项目,我们要进行编译前的准备工作,输入1然后按Enter键 。

然后选择要编译设备的配置文件,这里我们编译nand版本的固件,就输入5然后按Enter键。

接着脚本会自动完成软件包列表的升级、设置相应的OpenWrt配置文件、下载软件包源码,我们耐心等待这个过程完成。

如果我们还想自行添加一些软件包进去,我们可以在脚本运行完成以后,使用make menuconfig来修改配置文件。 如果想保存修改的配置文件,可运行 make_fire.sh 脚本,输入2选择保存配置文件,然后选择对应的设备。 配置文件被保存在 gateway_openwrt_imx6ull/config/ 目录中。

在正式编译之前,我们还需要将OpenWrt自带的内核替换为我们的内核。

先获取内核所在目录的绝对路径。

1 2 3 4 5 6 7 8 9 10 11#进入内核所在目录 cd ~/ebf6ull-openwrt/ebf_gateway_linux_kernel #使用pwd命令查看kernel所在的目录 pwd #返回结果 /home/jiawen/ebf6ull-openwrt/ebf_gateway_linux_kernel #返回OpenWrt目录 cd -

使用make menuconfig命令进入OpenWrt配置界面,进入 Advanced configuration options , 然后在Use external kernel tree选项按Enter键,输入内核绝度路径,保存并退出。这样就完成了内核的替换。

警告

输入的路径根据自己的情况修改。

11.5.2.2. 编译OpenWrt¶ 1 2#开始编译 make V=s -jn

使用make命令进行源码的编译。参数V表示输出log的等级,V=s为输出所有的信息,等同于V=99,V=0为不输出,不使用V参数时默认为0。 -j表示同时进行指定数量的任务进行编译,也就是指定编译的线程数,n为线程数大小,不指定-jn参数时自动判断编译所需的线程数。

由于OpenWrt部分软件包不支持多线程编译,当我们指定n大于1时,会有极大的可能导致编译失败, 所以推荐大家使用 make V=s命令来减少不必要的麻烦。

由于我们在实际的开发过程中使用服务器进行编译,服务器具有核心多但单核频率低的特点, 如果仅使用单线程编译,效率甚至不如普通PC。所以,我们往往会先进行多线程编译, 直到工程编译失败,再使用单线程编译,具体过程如下:

1 2 3 4 5 6 7 8 9 10 11 12#首先进行多线程编译 make V=s -j56 #遇到编译错误,尝试单线程编译 make V=s -j1 #如果单线程编译不通过,检查详细报错信息并解决错误 #单线程编译报错软件包通过之后,Ctrl+C打断编译,继续使用多线程编译 make V=s -j56 #重复上述过程,直到编译完成

注解

以上开发编译流程可以有效提高开发效率,减少编译源码占用的时间。

经过一段时间的编译(具体时间与编译服务器性能相关),我们就得到了编译好的kernel、设备树、OpenWrt根文件系统。

编译产生的最终文件,分别存放在以下位置:

kernel:build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6_cortexa7/zImage

设备树:bin/targets/imx6/cortexa7/openwrt-imx6-cortexa7-imx6ull-nand-npi.dtb

OpenWrt-rootfs:bin/targets/imx6/cortexa7/openwrt-imx6-cortexa7-device-embedfire-nand-rootfs.tar.gz

我们将上述三个文件保存到烧录工具的 mfgtools-release\Profiles\Linux\OS Firmware\release 文件夹内,即可进行烧录。

烧录过程详见 烧写系统 章节。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有