OpenWrt源码目录结构概述
OpenWrt是一个高度模块化的嵌入式Linux发行版,其源码目录结构清晰且功能明确。了解其目录结构有助于开发者快速定位和修改代码。
源码初始目录
tools
目录
tools
包含了获取和生成编译工具的指令。
toolchain
目录
toolchain
交叉编译软件包,包括binutils, gcc, libc等。
toolchain
目录
toolchain
目录包含了构建OpenWrt所需的工具链,如编译器、链接器和库等。这些工具链用于交叉编译OpenWrt的各个组件。
include
目录
include
包含了一些mk文件。
scripts
目录
scripts
用于软件包管理的脚本。
config
目录
config
存放着整个系统的配置文件。
docs
目录
docs
是对源码的说明文档。
target
目录
target
定义了firmware和kernel的编译过程。
package
目录
config
软件包的源码及Makefile。
生成目录
dl
目录
dl
软件包下载后都放到了这个目录下。
build_dir
目录
build_dir
在编译过程中,软件包都会解压到该目录。
staging_dir
目录
staging_dir
编译完成的软件,这里的子目录结果跟build_dir相同。
feeds
目录
feeds
软件包套件的下载位置。
bin
目录
bin
编译生成的firmware和各种ipk都会放到该目录下。
典型目录和文件说明:
feeds.conf.default:定义了需要下载那些软件包以及下载仓库。
/logs:编译过程中的出错信息。
/rules.mk:定义了Makefile中使用的一些通用变量和函数。
/bin/targets/ramips/‘board’/:升级软件包即保存在该目录。
/bin/targets/ramips/‘board’/packages:编译成Module的驱动程序会保存在该目录。
/bin/packages/mipsel_24kc/base/:应用层的ipk会保存在该目录。
构建流程概述
OpenWrt的构建流程主要分为以下几个步骤:配置目标平台、选择软件包、编译工具链、编译软件包、生成固件。每个步骤都依赖于特定的目录和文件,理解这些目录的作用有助于更好地掌握OpenWrt的构建过程。
总结
OpenWrt的源码目录结构设计合理,功能明确。通过了解各个目录的作用,开发者可以更高效地进行定制和开发。无论是添加新的软件包,还是支持新的硬件平台,OpenWrt的目录结构都提供了清晰的路径和指导。下面是目录截图