1 目的
通过OpenWRT和OpenvSwitch将TP-LINK WR740N升级成一台支持OpenFlow1.3的switch。具体哪些路由器可以刷OpenWrt,可以http://wiki.openwrt.org/toh/start#supported.hardware.-.router.type参考。
2 环境
- TP-Link TL-WR740N version 4.3
- Ubuntu Linux 12.04 (64 bit)
3 操作步骤
3.1 安装依赖
在linux机器上安装相关软件:
1 2 3 4 |
$ sudo apt-get update $ sudo apt-get install build-essential binutils flex \ bison autoconf gettext texinfo sharutils subversion \ libncurses5-dev ncurses-term zlib1g-dev gawk git-core unzip |
3.2 下载源码编译
在http://wiki.openwrt.org/toh/start#supported.hardware.-.router.type查到TL-WR740N 版本4.23,需要下载12.09版本的源码,所下图所示:
下载OpenWRT source (Attitude Adjustment 12.09 stable):
1 |
$ git clone http://git.openwrt.org/12.09/openwrt.git |
切换至 openwrt 目录:
1 |
$ cd openwrt |
改变缺省feed.conf 文件:
1 |
$ mv feeds.conf.default feeds.conf |
下载并安装所有可用的 feeds:
1 2 |
$ ./scripts/feeds update -a $ ./scripts/feeds install -a |
安装所有 luci Web UI 的套件:
1 |
$ ./scripts/feeds install -a luci |
设定并选择想要编译的套件:
1 |
$ make menuconfig |
执行“make menuconfig”命令后,会出现如下界面:
在配置界面中,根据实际情况,选择相关配置,建议如下配置
1、选择CPU型号
Target System—–Atheros AR71xx/AR7240/AR913x/AR934x
2、选择路由型号
Target Profile—-TP-LINK TL-WR740N和版本,本文选择version 4。
3、添加luci
LuCI—>Collections—– <*> luci
4、添加luci的中文语言包
LuCI—>Translations—- <*> luci-i18n-chinese
5、添加DDNS
LuCI—>Applications —> <*>luci-app-ddns
6、添加UTF8编码
Kernel modules —> Native Language Support —> <*> kmod-nls-utf8
注:1、2两点很重要,一定要根据实际情况选择,否则下面无法刷机。
选择进入系统后,下载CPqD的OpenFlow OpenWRT源码:
1 |
$ git clone https://github.com/CPqD/openflow-openwrt.git |
建立 symbolic link:
根据所在目录建立软链接,比如在此文中,
~/openwrt/packages/openflow-1.3 -> ~/openwrt/openflow-openwrt/openflow-1.3
1 2 |
$ cd /home/xuejin/openwrt/package/ $ ln -s /home/xuejin/openwrt/openflow-openwrt/openflow-1.3/ |
~/openwrt/files -> ~/openwrt/openflow-openwrt/openflow-1.3/files
1 2 |
$ cd /home/xuejin/openwrt/ $ ln -s /home/xuejin/openwrt/openflow-openwrt/openflow-1.3/files |
选择编译的OpenFlow的套件:
1 |
$ make menuconfig |
编译出现界面后选择:
Network -> openflow.......................... Open Flow 1.3 Switch Userspace Package,如下图显示:
编译:
1 |
$ make |
注:这一步需要机器联网。
3.3 刷机
编译完成后,会在 /openwrt/bin/ar71xx 目录下产生多个 binary 文件
1 |
$ cd /home/xuejin/openwrt/bin/ar71xx/ |
其中*factory.bin是从原厂刷到OpenWRT的固件,如果是从OpenWRT升级,则用*sysupgrade.bin。
本文用factory.bin升级:
登录路由器的管理界面192.168.0(1).1,就像普通升级固件一样刷入.bin文件。登录后设置登录密码。此后telnet服务会自动关闭,可通过SSH进行再次登录。
注:此外,大多刷完以后默认是无线功能不开启的。此时需要修改/etc/config/wireless文件,其中有个wireless disable 1,将1改为0后重新启动就可完成。
如果刷完机发现,有线无线都连不上,需要使用TTL线。不过为了避免TTL,大家看看在编译时是否加上restorefactory包的方法。因为有TLL,所以没有试验添加这个功能的办法。
4 参考资料
http://linton.tw/2014/05/13/openflow-13-for-openwrt-on-tl-1043nd-with-open-vswitch/
http://ywang.logdown.com/posts/196787-openflow-13-for-openwrt
https://github.com/CPqD/ofsoftswitch13/wiki/OpenFlow-1.3-for-OpenWRT