Chinaunix首页 | 论坛 | 博客
  • 博客访问: 164830
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 221
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-14 18:03
个人简介

做好自己份内事

文章分类

全部博文(20)

文章存档

2019年(1)

2018年(2)

2017年(3)

2016年(3)

2015年(11)

我的朋友

分类: 其他UNIX

2015-12-02 15:53:38

作者:赵晓筱

日期:2015-11-25

联系邮箱:

最近一直在折腾openwrt。也是刚刚开始接触这个路由系统。个人也是一个小白,下文仅仅描述这段时间自己对openwrt的一些理解,希望给后面的同行们一些帮助,仅个人理解,如有错误。望指正

从官网githubclone下代码之后,具体的目录层次内容可以阅读网上其他大神们撰写的openwrt中的目录层次结构。

openwrt代码目录下有一个文件feeds.conf.default,或者是feeds.conf;这个文件定义了openwrt官网集成的一些package的代码路径,当在编译之前执行./scripts/feeds update –a命令时。脚本会从文件中定义的路径及方式下载对应的package。这些package下载到源代码目录的feeds文件夹,并且对于生产每个文件夹对应的.tmp文件夹、.index文件、.targetindex文件。仔细阅读对应的文件及文件夹中的内容,貌似定义openwrtMakefile的内容,及裁剪linux内核的编译选项。

其实了解这个package大致了解openwrt的整体结构还是很好的,最起码在增加一个软件集成或者删除一个软件集成的接口很清晰。个人暂时不能了解其中具体的实现细节。

再看看源代码中package文件夹内容,对于每个文件夹中的内容都是符合package的通用格式。参考官网路径:http://wiki.openwrt.org/doc/devel/packages#dokuwiki__top可以知道如何创建一个自己的package。也可以参考我的文档《openwrt集成asterisk-gui》建一个示例package。如何写好一个自己的package可以阅读官网指南。

编译过程会根本package里面定义的代码路径将源代码下载到目录的dl文件夹中,将下载的源代码复制到目录target-mipsel_24kec+dsp_×××××目录下定义的目录下编译,在package中定义的Makefile中定义将这些编译之后的文件如何放置在文件系统中。所以在编译路径下会有两个文件夹:ipkg-installipkg-ramips_24kecipkg-ramips_24kec文件夹是放置编译中的临时文件。ipkg-install是按照文件系统的相对路径放置最终需要的文件。在编译的最后一期打包进文件系统,集成在路由系统文件中。

至于内核源码编译裁剪的过程,个人也在学习中。

阅读(2960) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~