openwrt源码树目录结构简介

openwrt的源码下载后是一个编译环境,这套环境可以编译生成固件,也可以生成交叉工具链,还有根文件系统,基本技术人员需要的东西都全乎了。开始学习openwrt的时候,看到源码树下那一堆路径,真是头大,不知道各个路径是干嘛的,想改点东西也不敢贸然去改,生怕把编译环境给搞坏了。这里简单介绍一下整个源码树下的各个路径都是做什么用的。

刚下载完的路径是下面这样的


这里介绍一些主要的路径

tools:主要是一些工具,编译过程中需要用到。比如cmake,mkimage,mklibs等等。每个工具都有对应的文件夹,最顶层是主的makefile,会根据每个工具自身的编译规则编译生成可以执行程序,满足openwrt编译的需要。

toolchain:就是工具链。里面主要是编译工具链用到的资源。比如gcc、gdb、glibc等等,另外还有内核的获得等信息。

target:非常重要的一个编译路径。针对各个硬件平台定义了内核和固件的编译方法和生成安装的方法。一些板级初始化或者dts全在这个下面,你说重要不重要。

package:包含了一些软件包的makefile和补丁。我们往内核或者应用层添加自己的软件在这个里面做最方便了。只要按照编译规则编写好自己的makefile,就可以把想要的程序编译进自己的固件了。

include:一堆mk文件。主要是一些编译的规则。

script:主要是存放一些编译过程中用到的脚本,另外第三方的包管理的feeds也在这个下面。


编译过后的路径是这样滴


我们看到多了一些路径

files:这下面放的文件,在编译制作文件系统时,会拷贝到文件系统的根目录下。

feeds:下载好的插件编译包索引。基本所有的插件包的编译规则和文件在这个下面都会有。

dl:编译过程中从网络上下载的一些软件包。有些编译过程中下载不成功导致编译失败的问题,可以手动下载后放到这个路径,然后再编译就可以了。

build_dir:编译路径。编译过程中会根据编译规则,将需要编译的模块拷贝到这个路径下进行编译。

staging_dir:用来保存build_dir编译生成的软件。所以这个路径下的子目录结构和build_dir是一模一样的。

bin:编译生成的模块、内核、文件系统、固件文件。


你可能感兴趣的:(openwrt)