tool
和toolchain
目录:是编译固件image
,获取内核头文件,二进制编译器和调试器,c
库文件,需要用到的通用工具。
include
目录:编译时的头文件索引,是一些编译用的通用脚本和include
宏定义。比较重要的包括package.mk
文件(几乎每个package
目录中的模块的makefile
中都提到它)。
scripts
目录:对openwrt
的包进行管理的perl
脚本,存放各类脚本的目录,比如:feeds
脚本使用.scripts/feeds update -a
或者.scripts/feeds install -a
就可以对feeds.conf.default
中列举的文件进行处理了。
target
目录:包含了特定平台的文件,固件镜像和内核构建过程的索引,以及生成编译器的编译工具。其中linux
目录下为各个平台arch
的相应的内核patches
,配置文件等,imagebuilder
目录则扫描如何生成这个平台的固件。用来指导如何编译firmware
、内核以及sdk
。
package
目录和feeds
目录:在openwrt
中,基础的软件包目录为package
,扩展的软件包在feeds
中,feeds
中的软件扩展了openwrt
的基本功能,它将所有的软件链接到package/feeds
中。这些软件大多数都是编译成.ipk
格式的。这里面有内核模块文件。有各种软件的源码,以及patch
文件和Makefile
用来下载源码的。里面是随openwrt
主版本就提供的包。除了用户态的N
多模块外,还有kernel
目录,用来定义内核模块(feeds
目录:make
之后的新增目录。里面存放的就是按照feeds.conf.default
文件中列举的要处理的文件,所展开得到的目录。目录中存放的东西和package
目录中大致相似,指导如何下载和编译对应模块的)。
dl
目录:编译工具、目标、package
所需要的软件包将从网上下载放到dl
目录中。
build_dir
目录:一个临时目录,用来将所有需要编译的软件源码放到这个目录中进行编译。它包括以下三个目录:build_dir/host
与编译目标无关的工具的临时文件夹;build_dir/<arch>*
作为所有目标,package
编译的临时目录;build_dir/toolchain-<arch>*
编译特定体系的交叉编译链的文件夹。
staging_dir
目录:用于存放构建目标系统镜像的工具软件,包括:staging_dir/host
宿主系统使用的工具;staging_dir/<arch>*
目标系统使用的软件软件包;staging_dir/<toolchain-<arch>
交叉编译工具链。
bin
目录:make
之后的新增目录,用来存放make
的结果。比如用来编译ramips
的,则此目录中会有ramips
子目录,其中又包含:packages
子目录(里面含有各种.ipk
文件,以及一个Packages
文件用来介绍此目录中的每个ipk
文件)和可以烧入路由器的***.bin
固件。
Makefile
文件:make
命令的总入口。
rules.mk
文件:定义了一系列在make
时使用的规则。
.config
隐藏文件:make menuconfig
后的保存的配置文件。
.config.old
隐藏文件:老的.config
文件。