Openwrt学习之路-(2-Openwrt directory structure)

题图:gratisography

Openwrt directory structure

了解Openwrt的目录结构是学习一个新系统最基础也是最重要的部分。试想如果你想加一行代码进行修复bug,却花了半个小时才找到相应的位置,那是多么悲催啊,所以懂得系统框架可以让你在开发过程不会跑偏、快速定位,让工程项目规范化等。

目录结构

如图是openwrt的基本的目录结构,其中白色部分是直接下载源码就有的源目录,蓝色部分则是通过make之后产生的目录(其中feeds目录则是通过命令./scripts/feeds update -a;./scripts/feeds install -a之后安装的扩展包目录,这个目录将所有的文件链接到package/feeds/中去了),下面就对各目录进行简要说明。

1.tool和toolchain目录

编译固件image/获取内核头文件/二进制编译器和调试器/c库文件,需要用到的通用工具。

2.include目录

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

3.scripts目录

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

4.target目录

包含了特定平台的文件,固件镜像和内核构建过程的索引,以及生成编译器各编译工具。

  • linux目录下为各个平台相应的内核patches,配置文件等;
  • imagebuilder目录则扫描如何生成这个平台的固件,源码包就有的,用来指导如何编译firmware和内核以及sdk的。

5.package目录和feeds目录

在openwrt中,基础的软件包目录为package,扩展的软件包在feeds中。

feeds中的软件扩展了openwrt的基本功能,它将所有的软件链接到package/feeds中。里面存放的就是按照 feeds.conf.default文件中列举的要处理的文件,所展开得到的目录。目录中存放的东西,和package目录中大致相似。指导如何下载和编译对应模块的。

这些软件大多数都是编译成.ipk格式的,这里面有内核模块文件,有各种软件的源码,以及patch文件和Makefile用来下载源码的。

6.dl目录

编译工具、目标、package所需要的软件包将从网上下载放到dl目录中

7.build_dir目录

一个临时目录,用来将所有需要编译的软件源码放到这个目录中进行编译。它包括一下三个目录:

  • build_dir/host: 与编译目标无关的工具的临时文件夹
  • build_dir/<arch>*: 作为所有目标,package编译的临时目录
  • build_dir/toolchain-<arch>*:编译特定体系的交叉编译链的文件夹

8.staging_dir目录

用于存放构建目标系统镜像的工具软件,包括:

  • staging_dir/host: 宿主系统使用的工具
  • staging_dir/<arch>*: 目标系统使用的软件软件包
  • staging_dir/<toolchain-<arch>*: 交叉编译工具链

9.bin目录

make之后的新增目录,用来存放make的结果。比如我是用来编译ramips的,则此目录中会有:ramips子目录,其中又包含:packages子目录(里面含有各种.ipk文件,以及一个Packages文件用来介绍此目录中的每个ipk文件)和可以烧入CPE的openwrt-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin文件。

10.其他文件

  • Makefile文件:make命令的总入口
  • rules.mk文件:定义了一系列在make时使用的规则
  • .config隐藏文件:make menuconfig后的config结果的存放文件。
  • .config.old隐藏文件:老的.config文件

Openwrt directory structure的分析就到这边,有感悟时会持续会更新。

注:以上内容都是本人在学习过程积累的一些心得,难免会有参考到其他文章的一些知识,如有侵权,请及时通知我,我将及时删除或标注内容出处,如有错误之处也请指出,进行探讨学习。文章只是起一个引导作用,详细的数据解析内容还请查看Openwrt相关教程,感谢您的查阅。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容