OpenWrt学习笔记之入门篇

来源:互联网 发布:提高阅读速度软件 编辑:程序博客网 时间:2024/05/21 08:38

OPENWRT学习笔记入门篇

OPENWRT简介

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

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

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

OpenWRT支持各种处理器架构,无论是对ARMX86PowerPC或者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

至此编译环境搭建完成。

第二部分:下载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刷入路由器。

 

 

 

 

 

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 喜欢咬指甲的人怎么办? 成年了还咬指甲怎么办 戒奶乳房有硬块怎么办 戒奶七天有硬块怎么办 两岁宝宝喘气粗怎么办 两岁宝宝断不了奶怎么办 两岁宝宝不愿意喝奶粉怎么办 吃母乳不愿意吃奶粉怎么办 母乳宝宝不愿意喝奶粉怎么办 宝宝断母乳不喝奶粉怎么办 9个月宝宝不会爬怎么办 孩子五年级学习成绩差该怎么办 孩子临近中考学习成绩很差该怎么办 初中生成绩不好家长该怎么办 成绩差该怎么办贴吧 宝宝只会匍匐爬怎么办 一年级的孩子数学不好怎么办 小学一年级孩子数学不好怎么办 孩子上一年级数学太差怎么办 智商低情商也低怎么办? 孩子字写得很大怎么办 孩子拿笔重 写字太黑 怎么办 孩子语文成绩好数学不行怎么办? 孩子现在二年级特别叛逆怎么办 孩子又笨又蠢怎么办 四年级孩子数学计算能力差怎么办 孩子四年级数学理解能力差怎么办 孩子小学四年级数学很差怎么办 孩子做作业太慢怎么办 小学三年级数学成绩差怎么办 初一数学考了3分怎么办 初二物理太差该怎么办 三年级孩子字写的差怎么办 小学三年级数学才考86怎么办 小孩子一发脾气就打妈妈怎么办 孩子做错事不肯道歉怎么办 小孩写作业注意力不集中怎么办 六年级的数学下册差怎么办 一年级小孩做作业慢怎么办 静不下心写作业怎么办 二年级应用题太差怎么办