【转】openwrt架构--目录分析

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

猜你喜欢

转载自blog.csdn.net/weixin_38890593/article/details/83419302