第2章 OpenWrt源码目录结构
目录结构如下图所示,第一行是下载完源码后即存在的目录,第二行是编译固件后生成的,我们将这两类分别称作源码初始目录和生成目录
初始目录
文件夹 | 说明 |
---|---|
tools | 包含了获取和生成编译工具的指令,里面的Makefile都包含$(eval $(call HostBuild)),表明获取或生成的这些工具都是在主机中使用 |
toolchain | 交叉编译软件包,包括binutils, gcc, libc等 |
include | 包含了一些mk文件 |
scripts | 用于软件包管理的脚本 |
config | 存放着整个系统的配置文件 |
docs | 是对源码的说明文档 |
target | 定义了firmware和kernel的编译过程 |
package | 软件包的源码及Makefile |
生成目录
文件夹 | 说明 |
---|---|
dl | 软件包下载后都放到了这个目录下 |
build_dir | 在编译过程中,软件包都会解压到该目录 |
staging_dir | 编译完成的软件,这里的子目录结果跟build_dir相同 |
feeds | 软件包套件的放置位置 |
bin | 编译生成的firmware和各种ipk都会放到该目录下 |
典型目录和文件说明
- 根目录下的feeds.conf.default
示例如下,定义了需要下载那些软件包以及下载仓库
安装软件的指令如下,只有将软件包安装成功,在执行make menuconfig时,才能找到与软件包对应的选项
[openwrt@localhost trunk]$ ./scripts/feeds update -a
[openwrt@localhost trunk]$ ./scripts/feeds install -a
-
/logs 编译过程中的出错信息,注意只要编译出错了才会出现该目录
-
/rules.mk
定义了Makefile中使用的一些通用变量和函数 -
/bin/targets/ramips/‘board’/
升级软件包即保存在该目录 -
/bin/targets/ramips/‘board’/packages
编译成Module的驱动程序会保存在该目录 -
/bin/packages/mipsel_24kc/base/
应用层的ipk会保存在该目录