OpenWrt 学习笔记【2】编译&固件生成过程&make clean

硬件介绍

  1. 硬件平台为QCA9531,64M/128M DDR, 16M Flash
  2. 目标是做一款带4G功能的工业网关产品

第一次编译

看了大神写的执行make menuconfig/kernel_menuconfig 的流程分析:
openwrt make menuconfig流程分析
openwrt make kernel_menuconfig流程分析
大致流程如下:
a.顶层Makefile调用toplevel.mk,执行其中的menuconfig 目标
a.1 编译script/config/mconf
a.2 调用scan.mk生成tmp/.packageinfo文件
a.3 使用metadata.pl脚本根据tmp/.packageinfo生成tmp/.config-package文件
a.4 调用script/config/mconf Config.in 生成图形配置界面
b.scan.mk的作用就是扫描package和target目录下的Makefile,根据Makefile中的内容生成tmp/.packageinfo,供metadata.pl使用
c.Config.in 只是配置文件,作为mconf的参数

以后信息量很大,苦于对脚本语言尚未开窍,不得其要领;

  • 在根目录执行make menuconfig
    Target System --> Atheros AR7xxx/AR9xxx
    Subtarget --> Generic
    Target Profile --> Qualcomm Atheros AP147-010 reference board
    Target Images --> [+] ext4, [+] squashfs, [+] GZip images
    others default…
  • make -j1 V=s
  • 在/bin/targets/ar71xx/generic生成内核、文件系统、整个bin文件
  • 区别与QSDK编译生成的kernel和rootfs可以单独通过tftp更新,而openwrt编译也生成了内核和文件系统,以及sysupgrade.bin,但不知为何原因无法单独更新,只能完整的更新sysupgrade.bin。
  • 默认选中的packages位于/bin/targets/ar71xx/generic/packages

固件生成过程

根据编译生成固件时控制台的打印信息整理分析得到:
在这里插入图片描述

  • mkimge生成kernel,openwrt-ar71xx-generic-uImage-lzma.bin
  • 通过mksquashfs4、make_ext4fs制作文件系统
  • 通过padjffs2后,最终生成文件系统openwrt-ar71xx-generic-root.squashfs
  • Patch cmdline参数,lzma压缩,mkimage,用于下一步
  • 制作sysupgrade.bin,openwrt-ar71xx-generic-ap147-010-squashfs-sysupgrade.bin
  • 生成manifest文件,即packages的清单,并生成ipk包
  • 结束编译

make clean、dirclean、distclean

Warnning:一定做好备份!!!!
0、原始目录大小:
在这里插入图片描述
1、make clean: 清除bin目录

clean: FORCE
  rm -rf $(BUILD_DIR) $(STAGING_DIR) $(BIN_DIR) $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES) $(BUILD_LOG_DIR) $(TOPDIR)/staging_dir/packages

在这里插入图片描述
2、make dirclean: make clean+清除交叉编译工具及工具链目录

dirclean:clean                                                                                                                                                                         
  rm -rf $(STAGING_DIR_HOST) $(STAGING_DIR_HOSTPKG) $(TOOLCHAIN_DIR) $(BUILD_DIR_BASE)/host $(BUILD_DIR_BASE)/hostpkg $(BUILD_DIR_TOOLCHAIN)
  rm -rf $(TMP_DIR)

在这里插入图片描述
3、make distclean: 清除所有相关的东西,包括下载的软件包,配置文件,feed内容等
一夜回到解放前!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值