OpenWrt的学习和总结

OpenWrt的学习和总结

内容目录




















  1. 1OpenWrt背景知识

Linksys成立于1988年,2003年被思科收购,最著名的产品为WRT54G,为降低成本Linksys决定使用基于Linux操作系统的固件,由于版权原因,释放WRT54G/GS的源码,网上出现了很多不同版本的Firmware。流行的第三方路由固件,主要DDWrt,Tomato,OpenWrt三个。

DDWRT:界面美观,设置简单直观,易用性比较好,官方固件自带的功能是三大固件中最为丰富的,对新路由的支持也十分迅速,可支持迅速的同时,由于新代码的加入,导致DDWRT经常出现一些Bug,一些可能之前已经解决的Bug,往往又会在之后的某次更新中原地满状态复活,着实让人喷血,最让人呕病的,是孱弱的QOS功能,DDWRTQOS功能只能说聊胜于无吧。

Tomato:界面尚可,设置也算简单,易用性还行,流量的统计查看等功能是三个固件中做的最好的.官版Tomato是所有第三方路由固件中最为稳定的,它的稳定源自于它的保守,官方版本的Tomato好几个版本之前就已经没有再加入什么新功能,基本是对原有软件的升级和除Bug,让本来就稳定无比的Tomato更加稳定,可惜成也萧何败也萧何,Tomato的声誉来自于它的稳定,源自它的保守,它的缺点也来自于它的保守,由于这三大固件都源于思科当初开放的路由源码,所以对思科以及和思科一样采用BCM54M芯片的机子的支持程度是最好的

Openwrt:从零开始,一点一点的把各软件加入进去,使其接近LinksysFirmware的功能。是三大固件中扩展性最好的固件,通过扩展,可以实现很多超过路由本职工作的事情,比如脱机下载,网站,论坛,QOS功能也十分强大,不逊色于TomatoQOS,设置得当后网络表现会让人偷着乐,而且OpenWrt对新路由的支持也是十分迅速,被认为是最有前途的固件,因为可以在新路由强劲CPU的支持下获得很好的性能表现,各种功能的软件扩展包比比皆是。

OpenWrt可以被描述为一个嵌入式的Linux发行版,而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统。对于开发人员,OpenWrt是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。

  1. 2OpenWrt 基础知识

关于Openwrt的源代码下载,途径有二,一是通过svn,一是通过git,建议使用svn,因为Openwrt主要以svn来维护Openwrt系统的版本。另外,请注意Openwrt中不同的分支版本,一个是用得较多的开发快照,俗称trunk,二是稳定版,俗称backfire

  1. 2.1目录结构


有几个重要目录:package,target, build_dir, staging_dir, bin, dl

上图是openwrt的基本的目录结构,其中白色部分是直接下载源码就有的源目录,蓝色部分则是通过make之后产生的目录。


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

include:存放*.mk文件,这里的文件是在Makefile里被include

scriptsopenwrt的包进行管理的perl脚本,存放各类脚本的目录。比如:feeds脚本

target:里面是各个平台(arch)的相关代码

package:里面包含了我们在配置文件里设定的所有编译好的软件包。默认情况下,会有默认选择的软件包。

bin:用来存放生成的ipk包,固件。

build_dir:目录编译时的临时目录,进行包的解压,编译和打补丁等。

staging_dir:是工具链的安装位置

dl:是'download'的缩写,编译前期,需要从网络下载的数据包都会放在这个目录下,这些软件包的一个特点就是,会自动安装在所编译的固件中,也就是我们makemenuconfig的时候,为固件配置的一些软件包。如果我们需要更改这些源码包,只需要将更改好的源码包打包成相同的名字放在这个目录下,然后开始编译即可。编译时,会将软件包解压到build_dir目录下。

feeds是通过命令./scripts/feedsupdate -a; ./scripts/feeds install-a之后安装的扩展包目录,这个目录将所有的文件链接到package/feeds/中去了,里面存放的就是按feeds.conf.default文件中列举的要处理的文件,所展开得到的目录。目录中存放的东西,和package目录中大致相似,指导如何下载和编译对应模块的。


    1. 2.2扩展软件包feeds


如果缺少一些应用程序可以是用feeds管理工具来安装,feeds即为包含到你的OpenWrt环境中的额外软件包,有一个用perl写的脚本(feeds)放在scripts目录下,会根据feeds.config.default文件来进行相关的操作,feeds命令有:



./scripts/feedsupdate

./scripts/feedslist

./scripts/feedsinstall

./scripts/feedsuninstall

./scripts/feedssearch

./scripts/feessclean


feed.config.default文件中有:

src-gitpackages https://github.com/openwrt/packages.git;for-15.05

src-gitluci https://github.com/openwrt/luci.git;for-15.05

src-linkluci ../qca/feeds/luci

src-svnxwrt http://x-wrt.googlecode.com/svn/trunk/package


src-svnphone svn://svn.openwrt.org/openwrt/feeds/phone

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值