02 make和目录结构
1 make
1.1 整体编译
make V=s
make -j 2
1.2单独编译一个模块
make package/tcpdump/clean 清除编译生成文件
make package/tcpdump/prepare 进行编译准备,包含下载软件代码包,并解压缩和打补丁
make package/tcpdump/configure 根据设置选项镜像配置并生成Makefile
make package/tcpdump/compile 根据生成的Makefile进行编译
make package/tcpdump/install 生成安装包
目标文件在bin目录下
以上命令都可以添加V=s选项查看编译过程
2 make menuconfig解析

Target System机型的系列Subarget机型系列的二级子菜单Target Profile机型的配置Target Imagerootfs嵌入到kennelGlobal build settingAdministration管理工具Development开发工具Firmware无线网卡的操作系统Kernel modules内核模块Libraries常用库
3 目录结构

bin或者sbin
放可执行文件etc
配置文件mnt
挂在点proc和sys
内核创建,两者并存。proc不容易管理usr
用户目录www
Luci等相关的资源文件dev
设备lib
库overlay
overlay文件系统则表示一个文件系统覆盖在另一个文件系统上面。平时操作时,不会直接去修改底层文件系统,而是在overlay上进行操作rom
静态文件,初始文件tmp
临时目录var
存放临时文件
4 顶层目录概述

编译生成的结果会存储在3个目录下:
build_dir/host:是一个临时目录,用来储存不依赖目标平台的工具
build_dir/toolchain-<arch>*:用来储存依赖于平台的编译工具链
staing_dir/toolchain-<arch>*:编译工具链最终安装的位置
4.1 openwrt编译生成目录

5 编译脚本
5.1 scripts
目录scripts为编译工具脚本文件,在编译时首先将patch目录下的所有补丁打上(如果失败则直接退出编译)。

5.2 feeds编译扩展机制
feed:非官方的包
package:官方的包
feed最后会合入到package中
feeds由两部分组成:
扩展包位置配置文件feed.conf.default
脚本工具feeds
./scripts/feeds update -a
./scripts/feeds install -a
上述操作就是利用feeds提供的接口将OpenWrt所需的全部扩展软件包进行下载并安装
update: 下载feeds.conf或feeds.conf.default文件中的软件包,并创建索引。
-a 表示更新所有的软件包。只要更新后才能进行后面的操作
list: 从创建的索引文件 feed.index 中读取列表并显示(只有更新之后才可以使用)
install: 安装软件包及它所依赖的软件包。从feeds目录安装到package目录。及在package/feeds目录下创建软链接。只有安装之后才能对相关的软件包进行编译。
search: 按照传入的字符串,查找软件包
uninstall: 卸载软件包,仅删除本软件包的软链接
clean: 删除update命令下载和生成的索引文件。不会删除install创建的链接
feeds处理过程:读取并解析feeds.conf配置文件。然后执行相关的命令。
编译扩展安装过程就是将feeds目录下的软件包链接到package/feeds对应目录下。可以使用feeds.conf或者feeds.conf.default。优先选择feeds.conf。此文件包含3部分,feed方法,feed名字,feed源

浙公网安备 33010602011771号