特别说明:要编译backfire版本,一定要通过svn下载:svn co svn://svn.openwrt.org/openwrt/branches/backfire,而不能使用http://downloads.openwrt.org/backfire/10.03/中的源码包:backfire_10.03_source.tar.bz2

结合文档《OpenWrt_Dev_Tutorial.pdf》以及自己实际编译backfire的分析,得出如下结论:

基于backfire-10.03版本,在make之后,得到的目录组成为:

bin目录:make之后的新增目录,用来存放make的结果。比如我是用来编译BRCM47xx的,则此目录中会有:brcm47xx子目录,其中又包含:packages子目录(里面含有各种.ipk文件,以及一个Packages文件用来介绍此目录中的每个ipk文件)和可以烧入CPE的openwrt-brcm47xx-squashfs.trx文件。 疑问是:我只是编译了BRCM47xx,为何bin目录下还有类似:openwrt-wrt54g3gv2-vf-squashfs.bin这类的文件?

build_dir目录:make之后的新增目录。where all user--‐space tools will be cross--‐compiled. 从名字可以看出,此目录是用来进行编译的场所。这里面所包含的所有内容,都是dl目录下所存放的源码包解压缩并编译的结果。那么可以得出结论:dl里面下载的源码包受feeds.conf.default和package目录中各个子目录的Makefile控制,而真正要被编译的就被放到build_dir目录中解压缩并进行编译。--- 那么,应该也可以得出结论:如果不想下载,而想直接编译源码包,那就把源码包放到build_dir目录中就可以了。只是此目录中,根据dl目录下各个源码压缩包的归属性质,将它们分为四个子目录进行存放和编译:
    host目录:存放与目标对象无关的源码包,并编译之。当然,还有一些目录在dl中找不到对应项(比如:firmware-utils,patch-cmdline等等,这些从哪里来的?待查)
    linux-brcm47xx目录:与linux内核版本有关的源码包并编译之。这里面还包含了linux内核:linux-2.6.32.10
    target-mipsel_uClibc-0.9.30.1目录:与目标设备有关的源码包的编译结果。
    toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1目录:存放用于特定目标的体系结构的工具链目录。此目录中包含有:binutils,gcc,uClibc,甚至还有linux内核(而且是源文件,没有编译过的;为何这里再次重复出现?)dl目录:即download目录。也是make之后的新增目录。里面是根据package目录或者feeds.conf.default文件要求,在make的时候从网络上下载的源码包

docs目录:源码包就有的。即文档。这个也是需要编译的。

feeds目录:make之后的新增目录。里面存放的就是按照feeds.conf.default文件中列举的要处理的文件,所展开得到的目录。目录中存放的东西,和package目录中大致相似。指导如何下载和编译对应模块的。

include目录:源码包就有。是一些编译用的通用脚本和include宏定义。比较重要的包括:package.mk文件(几乎每个package目录中的模块的makefile中都提到它)

package目录:源码包就有。里面是随openwrt主版本就提供的包。除了用户态的N多模块外,还有kernel目录,用来定义内核模块。---疑问:linux内核是在哪个目录中指定下载的?

scripts目录:源码包就有。存放各类脚本的目录。比如:feeds脚本,使用.scripts/feeds update -a或者.scripts/feeds install -a,就可以对feeds.conf.default中列举的文件进行处理了。

staging_dir目录:make之后的新增目录。where the cross-­‐compilation tools will be installed. 我猜测此目录的作用是:build_dir是编译的地方,那么这里就是把build_dir的结果放在了staging_dir目录了---待确认

target目录:源码包就有的。用来指导如何编译firmware和内核,以及sdk的

tmp目录:操作make menuconfig后产生的临时目录

toolchain目录:源码包就有的。指导如何下载,编译toolchain的

tools目录:源码包就有的。指导如何下载,编译tools的

BSDmakefile文件:

Config.in文件:

feeds.conf.default文件:feeds下载的指导文件

LICENSE文件:

Makefile文件:make命令的总入口

README文件:

rules.mk文件:定义了一系列在make时使用的规则

.config隐藏文件:make menuconfig后的config结果的存放文件。

.config.old隐藏文件:

.gitignore隐藏文件:

openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理的更多相关文章

  1. openWRT自学---基于backfire版本,分析其Make命令的执行过程和各阶段的主要产物

    准备阶段:从SVN下载backfire的编译环境(位置是:svn co svn://svn.openwrt.org/openwrt/branches/backfire),然后按照openWRT的要求, ...

  2. 转 /etc/ld.so.conf.d/目录下文件的作用

    在了解/etc/ld.so.conf.d/目录下文件的作用之前,先介绍下程序运行是加载动态库的几种方法:第一种,通过ldconfig命令    ldconfig命令的用途, 主要是在默认搜寻目录(/l ...

  3. /etc/ld.so.conf.d/目录下文件的作用

    在了解/etc/ld.so.conf.d/目录下文件的作用之前,先介绍下程序运行是加载动态库的几种方法: 第一种,通过ldconfig命令     ldconfig命令的用途, 主要是在默认搜寻目录( ...

  4. discuz各个目录与文件的作用说明

    discuz下面有很多文件夹以及文件,你们都知道他们是做什么的么?肯定不知道了吧.但是我们有经常遇到这些文件,譬如在后台文件校验操作都遇到某些文件被修改,这时候也需要知道这些文件是有什么作用的.今天就 ...

  5. tomcat conf目录下文件的作用

    本文以apache-tomcat-6.0.26为准介绍 1.   web.xml: 默认(欢迎)文件的设置  配置包括:主要是配置servlet,包括初始化参数,设置session等 <serv ...

  6. NC V6 安装目录各文件夹作用描述

    ant:存放Apache Ant,用来执行EJB的构建. bin: 存放nc部署和系统监控等命令.configsys.log部署日志(包含NC中间件.WAS中间件等部署信息)以及NC_Client文件 ...

  7. tomcat各目录(文件)作用

    以tomcat7.0.50为例,主目录下有bin,conf,lib,logs,temp,webapps,work 7个文件夹 bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结 ...

  8. Asp.Net Core 轻松学-项目目录和文件作用介绍

    前言     上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令.Asp.Net Core MVC 项目文件目录 ...

  9. Asp.Net Core 轻松学系列-3项目目录和文件作用介绍

    目录 前言 结语 前言     上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令.Asp.Net Core M ...

随机推荐

  1. 使用jmatio读写matlab数据文件

    /** * Created by hfz on 2016/2/23. */ import com.jmatio.io.*; import com.jmatio.types.MLDouble; impo ...

  2. gzip压缩目录

    很遗憾,gzip不能针对整个目录进行压缩,只能递归压缩目录下的每一个文件. 当然,替代方案是只用tar进行打包,比如 tar cfz dir.tar.gz dirname

  3. 推荐一些不错的开源免费易上手的web前端框架

    1. bui 2.Semantic UI 3.oniui

  4. 打补丁以及WebLogic Server的版本

    12.1.2开始采用了Oracle传统的opatch打补丁的方式,但在此之前,包括 10.3.x版本以及12.1.1版本还是通过bea的smart update方式来进行. smart update基 ...

  5. profiler

    推荐C++ 的profiler 用于GPU CPU 综合测试 FramePro http://www.puredevsoftware.com/ 可以在进度条上拉时间 查看GPU CPU bound

  6. 一起來玩鳥 Starling Framework(1)一定要的Hello World!

    雖然已經一堆Hello World的介紹文章跟影片了,但中文資料畢竟是比較少,所以不能免俗的來一篇中文版Hello World.首先開啟一個AS3.0專案,fps不用客氣,設為60,Starling很 ...

  7. [Python爬虫] 之二十二:Selenium +phantomjs 利用 pyquery抓取界面网站数据

    一.介绍 本例子用Selenium +phantomjs爬取界面(https://a.jiemian.com/index.php?m=search&a=index&type=news& ...

  8. hdu 5265 技巧题 O(nlogn)求n个数中两数相加取模的最大值

    pog loves szh II Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  9. NYOJ1097 Ugly Numbers 【丑数】

    Ugly Numbers 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 Ugly numbers are numbers whose only prime fact ...

  10. java泛型 7 泛型的基本介绍和使用

    现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用.泛型在java中,是一个十分重要的特性,所以要好好的研究下. 一.泛型的基本概念 泛型的定义:泛型是 ...