OPENWRT学习笔记入门篇

OPENWRT入门

首先,分享几个openwrt的网址:

http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=4217
http://www.open-mesh.org/projects/batman-adv/wiki/Wiki
http://blog.csdn.net/teddy99999/article/details/17537545
http://blog.csdn.net/cupidove/article/details/45093385
https://openwrt.org/

自己看openwrt的源码获取方法
https://dev.openwrt.org/wiki/GetSource

还有就是正式版也会升级的,具体请看
https://dev.openwrt.org/browser/branches

OPENWRT简介

路由器相当于一台小型计算机,部分配置比较好的(内存、CPU性能充足)可以手动刷入linux系统(网友制作的dd-wrt和openwrt是两种流传较广的linux系统),并在这个系统里运行锐捷拨号程序。

OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。

OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着开发者能够使用自己想要的功能而不加进其他的累赘,而支持这些功能工作的linux kernel又远比绝大多数发行版来得新。

OpenWRT支持各种处理器架构,无论是对ARM,X86,PowerPC或者MIPS都有很好的支持。 其多达3000多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件。

一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:

1.创建 Linux 交叉编译环境;

2.建立 Bootloader;

3.移植 Linux 内核;

4.建立 Rootfs (根文件系统);

5.安装驱动程序;

6.安装软件;

熟悉这些嵚入式 Linux 的基本开发流程后,不再局限于 MIPS 处理器和无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的嵌入式产品。

OPENWRT刷入路由器

在官网下载最新的OpenWrt固件,链接如下:http://downloads.openwrt.org/snapshots/trunk/ar71xx/

进入链接地址后,找到对应于TP-LINK WR703N的固件,会有如下四个:

首先,有两种不同的格式,即jffs2与squashfs。这两种不同格式的固件区别在于,squashfs安装后,会占用一定的空间来存放系统的一些必要文件,这些文件都只是可读的,这些文件的作用是帮助恢复系统,当OpenWrt崩溃时,可以基于这些文件,使用firstboot脚本重建初始系统,而jffs2则不会存储这样的文件,好处在于节省了空间。一般,我们都使用squashfs格式的固件,方便恢复系统到初始状态。其次,每种格式都有两个文件,factory与sysupgrade,这两个文件的区别是,factory多了一些验证的东西,用于在原厂固件的基础上进行升级,如果已经是OpenWrt,直接使用第二个文件即可。并且,在原厂固件的基础上进行升级时,首先使用factory文件,然后需要再次使用sysupgrade文件,选择不保留原来配置进行升级。

当然也可以通过编译来定制自己的固件。方法如下。

第一部分:搭建编译环境

1、安装Ubuntu(编译需要Linux环境)

2、切记不要改动软件源,同时按住Ctrl + Alt + T,调出终端;

3、逐条输入下列命令(及时验证是否安装成功):

  1. sudo apt-get install g++

  2. sudo apt-get install libncurses5-dev

  3. sudo apt-get install zlib1g-dev

  4. sudo apt-get install bison

  5. sudo apt-get install flex

  6. sudo apt-get install unzip

  7. sudo apt-get install autoconf

  8. sudo apt-get install gawk

  9. sudo apt-get install make

  10. sudo apt-get install gettext

  11. sudo apt-get install gcc

  12. sudo apt-get install binutils

  13. sudo apt-get install patch

  14. sudo apt-get install bzip2

  15. sudo apt-get install libz-dev

  16. sudo apt-get install asciidoc

  17. sudo apt-get install subversion

  18. sudo apt-get install sphinxsearch

  19. sudo apt-get install libtool

  20. sudo apt-get install sphinx-common

至此编译环境搭建完成。

apt-get install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev

第二部分:下载OpenWrt源码并编译

OpenWrt源码分两种,一种是最新但不是最稳定的Trunk开发版,一种是最稳定的Backfire版,建议下载官方源码。下载前先在本地创建文件夹:

  1. mkdir openwrt

  2. sudo chmod 777 openwrt

  3. cd openwrt

选择你想要的版本然后执行下载命令,下载结束会显示版本号:

Trunk版下载命令:

svn co svn://svn.openwrt.org/openwrt/trunk/

Backfire版下载命令:

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

添加软件扩展包,将feeds.conf.default修改为feeds.conf:

cp feeds.conf.default feeds.conf

更新扩展,安装扩展:

  1. ./scripts/feeds update -a

  2. ./scripts/feeds install -a

注:如果不是刚下载的源码,为保持代码为最新状态,应定期运行svn update命令更新源码。

测试编译环境:

make defconfig

到这里就可以开始编译自己的固件了。进入定制界面:

make menuconfig

如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台(芯片类型)、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。

如果你想修改源码,应该在此步进行,如支持大容量Flash之类的修改,自己上网查到修改什么文件什么地方后,就在ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。

开始编译:

make

或者

make V=99

或者

make -j V=99

make是编译命令,V=99表示输出debug信息,V一定要大写,如果要让CPU全速编译,就加上 -j 参数,第一次编译最好不带-j参数。

编译过程保持联网(会从网上下载一些源码包),所以断网可能造成编译中断,编译所需时间与电脑CPU及网络环境有很大关系,第一次编译时间较久,快则半小时长则2、3个小时,之后的编译所需时间较短。编译完成后会在源码文件目录出现bin文件夹(如trunk/bin/XXXX),如果你手里的路由是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX-sysupgrade.bin升级用的,在升级界面升级即可。进到文件夹找到你需要的固件传出(通过邮箱、网盘、U盘等),开始刷机吧。

完成上述工作之后即可将openwrt刷入路由器。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/yangquanhui/p/4937500.html