openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理
特别说明:要编译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隐藏文件:
最新文章
- 【java】jstack
- js学习进阶-元素获取及样式设置
- CALayer 4 详解 -----转自李明杰
- Ineedle驱动方式dpdk测试性能
- 第66课 C++中的类型识别
- 封装对NPOIExcel的操作,方便的设置导出Excel的样式
- Flex 加载tiff
- ORACLE Instant Client 配置
- QRadioButton类中Toggled()信号的使用方法
- 关于python写GUI桌面应用的一些研究结果
- 《Head First 设计模式》学习笔记——工厂模式 + 抽象工厂模式
- jQuery Mobile 网格
- STL语法——映射:map 反片语(Ananagrams,UVa 156)
- VBA中使用正则的两种方式
- Spring-Cloud-Config学习笔记(一):使用本地存储
- 分库分表、读写分离——用Sql和ORM(EF)来实现
- Selenium自动化测试Python四:WebDriver封装
- source insight 4.0.086破解
- Html5學習重點清單
- 微信JSSDK分享朋友圈微信自定义分享接口
热门文章
- iOS开发——使用Autolayout弹出键盘
- JavaScript 的闭包用于什么场景
- 直接拿来用!最火的Android开源项目(二)
- 用Thunderbird以HTML发邮件,收件人却总是收到文本邮件
- D3.js系列——布局:打包图和地图
- Actionscript 3 自定义 matedata
- 解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
- Rails生成随机字符串及加解密
- 【C/C++学院】0831-类与对象的异常/面试100题1-100
- Unity3D教程宝典之Web服务器篇:(第一讲)服务器的架设