1 引言

积跬步以至千里,积怠情以至深渊,我要做一个踏实的ABCer。

没想到还是正式步入了SDN这条康庄大道上。一切还需从初识Mininet-WIFI说起,以为SDN如仿真层面那般,一个模块对应一个现有设备,殊不知硬件层面诸多设备还需自行编译,手动刷入自需固件。编译有风险,刷固件需谨慎。在此分享折腾了本人几天时间的刷机历程——用OpenWRT将路由器刷成支持openflow协议的交换机,并将详细介绍编译开源系统OpenWRT路上踩过的坑以及解决方案。

2 刷机环境

  • Ubuntu 18.04 (64位)
  • TP-Link TL-MR3420 v1
    P.S. 路由器基本情况介绍,TL-MR3420是一款可刷OpenFlow的3G无线路由器(5G时代都来了,3G时代的老设备…当然是咸鱼来的),具体哪些路由器可以刷OpenFLow可以参考http://wiki.openwrt.org/toh/start#supported.hardware.-.router.type,根据经验,只要能搞到以上链接中的任一台交换机,按本教程走,基本上是都可以刷机成功的。本文路由器基本信息介绍如下图所示

3 下载OPenWRT源码编译

3.1 安装依赖项

本文采用从OpenWRT源码编译生成固件,在下载源码之前,需要在Ubuntu上安装相关编译环境

sudo apt-get update
sudo apt-get install build-essential binutils flex bison autoconf gettext texinfo sharutils subversion libncurses5-dev ncurses-term gawk zlib1g-dev libssl-dev mercurial

3.2 下载OpenWRT源码

踩坑1: 接下来以下步骤一定要都以非root身份来完成所有工作,经过多次失败查询多方教程得此结论。

2018年之后,OpenWRT与LEDE宣布合并,下载OpenWRT源码的方法发生了重大的变化。之前网上搜索到的下载方法已经不可用了,最好自行搜索完成进行确认后再clone,以免往后的步骤浪费不必要的时间。

# 克隆官方源用以下代码
# git clone https://github.com/openwrt/openwrt.git# 或者克隆15.05分支Chaos Calmer
git clone https://github.com/openwrt/chaos_calmer.git

下载源码后,切换到OpenWRT下,打开其中readme文件,并参考其中步骤,拷贝feeds.conf.default并命名为feeds.conf

cd chaos_calmer
cp feeds.conf.default feeds.conf

而后更新并安装所有可用的feeds

./scripts/feeds update -a
./scripts/feeds install -a

踩坑2: 不要轻易复制教程代码,最好手敲一遍,确保符号是 - 而不是 –

4 下载openflow1.3源码

目前本人好像已经找不到1.0版本的源码了,若有读者有资源,欢迎评论。将其克隆到本地,与openwrt在同一级目录下。

git clone https://github.com/CPqD/openflow-openwrt.git

建立软链接,将openflow-1.3文件夹映射到openwrt的package目录下;并将openflow-1.3目录下的files文件夹映射到openwrt目录下。以下为本人建立软连接代码,读者应根据自己的目录进行软连接的建立。

 cd ~/Workspace/OpenWRT/chaos_calmer/package/ln –s ~/Workspace/OpenWRT/openflow-openwrt/openflow-1.3/cd ~/Workspace/OpenWRT/chaos_calmer/ln –s ~/Workspace//OpenWRT/openflow-openwrt/openflow-1.3/files

5 配置编译

make menuconfig

踩坑3: 一定要到openwrt目录下运行以上代码,切勿看多方教程,运行了以上代码,又运行诸如make defconfig代码,不然会报出莫名奇妙的错误(具体在哪个教程上看到找不到了,反正本人试过一回,结果果然失败了)
踩坑4: 在执行make menuconfig的时候,会报一个错误(Build dependency: Please install Git (git-core) >= 1.6.5),解决方法为找到文件 openwrt/include/prereq-build.mk 的第148行 git clone 2>&1 | grep – --recursive改为 git version

执行成功后,进行如下几个重要配置:

  1. 选择CPU型号,可以在官方support device找到你的路由器,并查看对应型号,执行如下操作
    Target System — Atheros AR7xxx/AR9xxx

  2. 选择对应的路由型号,本人选择TL-MR3420,执行如下操作
    Target Profile — TL-MR3420

  3. 选定Network,添加OpenFlow,执行如下操作
    Network — openflow

  4. 其他配置
    添加LuCI,collection — luci,这是中文图形界面的设置,由于本实验路由器flsh内存只有4M,所以这 里不装,以免编译出来的固件大于4M,在更新固件操作时会失败;
    添加utf8:Kernel modules — Native Language Support — kmod-nls-utf8

配置完编译内容设置后,执行编译命令make等待即可,后面的V=99是为了显示更多的编译信息,该过程需要联网。注意,执行时,大坑要来了!

make V=99

踩坑5: 执行最后编译命令时,会报以下错误
百思不得其解,找了各种教程,进行了各种尝试均失败了,太难了,终于找到原因,原来是官方源码clone下来的文件中居然相比较于原始网站git.openwrt.org上的内容少了一个文件!! 将丢失的010-automake-port-to-Perl-5.22-and-later.patch文件拷贝到chaos_calmer/tools/automake/patches下面。

最终进行大概2个小时左右的时间即可编译成功。

6 刷机

编译完成后,会在bin文件夹下生成ar71xx文件夹,其中openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin文件会是我们需要的固件,该固件的命名规则为openwrt-系统版本-硬件平台-具体分支-设备型号-硬件版本-分区类型-固件类型.bin。
本实验采用网页直接刷入固件,可以登录192.168.1.1,找到软件升级选项,按提示上传以上艰辛过程得到的固件更新即可。注意!刷机过程中不要断电,耐心等待,否则路由器会变砖。

7 验证

刷机成功后默认无线关闭,需要用一条网线连接电脑和路由器lan口,用ssh登录到路由器,用户名为root。进入系统后,界面如下

若想开启路由器的无线功能,修改/etc/config/wireless,将option disable 1改为0重启路由(重启wifi也行,输入wifi等待重启)即可。

SDN(一) 用OpenWRT将路由器刷成openflow交换机相关推荐

  1. SDN(二) 对TP-LINK TL-MR3420型号的OpenFlow交换机进行配置

    1 引言 积跬步以至千里,积怠情以至深渊. 在本人博客SDN(一)中已经详细介绍了如何将TP-LINK TL-MR3420路由器刷成OpenFlow交换机,该无线路由器已具备支持SDN功能.本文将继续 ...

  2. TL-WR941N路由器刷DD-WRT和OPENWRT教程及使用花生壳

    今天没事做,于是决定把自己的TL-WR941N路由器刷成OPENWRT系统的.虽然说没买小米路由,但是刷成OPENWRT系统的话还是能增强不少的功能.下面写出经过一下午折腾的详细安装步骤,同样适用于其 ...

  3. 【SDN】普通路由器刷OpenWrt + OpenVSwitch教程完美版_搭建SDN OpenFlow1.3协议的路由器(Flash>16M)

    * * ┏┓ ┏┓+ +* ┏┛┻━━━┛┻┓ + +* ┃ ┃ * ┃ ━ ┃ ++ + + +* ████━████ ┃+* ┃ ┃ +* ┃ ┻ ┃* ┃ ┃ + +* ┗━┓ ┏━┛* ┃ ┃ ...

  4. tplink WR703N路由器刷openwrt并且挂载罗技C270摄像头步骤

    本人京东购买tpling wr703N路由器,固件是1.7v 第一步:刷openwrt操作系统 备注: (1)路由器和电脑用网线连接. (2)路由器通过wifi 以client的形式连接能访问公网的无 ...

  5. 支持刷机(OpenWrt)的路由器大全

    2023年上半年最热门的刷机路由器当然是360T7.小米WR30U这两款,主要是性价比高,闲鱼100多搞定,支持刷OpenWrt.支持WiFi6,采用MTK798X系列处理器,性能强,轻松跑满千兆,如 ...

  6. [无线路由] “免费”斐讯K2路由器刷OpenWRT(实战MWAN多宽带网速叠加)

    (阿财首发于什么值得买)斐讯K2可以算是一个非常另类的跨界数码产品,其产品完全的醉翁之意不在酒.最多值99元的 MT7260硬件架构和用料,售价399元,金额激活K码后自动转入合作理财P2P平台,等待 ...

  7. 360路由器刷openwrt、不死uboot、双系统 、wifi中继

    该类教程网上有很多,但是很多不全,给小白用户造成了很多困扰.我也是按照网上的教程刷了半天,才熟悉了是怎么个回事.这里整理成教程. 注意: 请看教程步骤走,不要跳跃性刷机.不懂的术语.软件,若本文无介绍 ...

  8. 路由器刷机常见第三方固件及管理前端种类(OpenWrt、Tomato、DD-Wrt)

    路由器刷机常见第三方固件及管理前端种类(OpenWrt.Tomato.DD-Wrt) 目前路由器折腾刷机,除了采用各品牌的原厂固件外,第三方路由器固件,基本就是:Tomato.DD-WRT.OpenW ...

  9. 360路由器刷openwrt后设置wifi中继

    上一篇文章(360路由器刷openwrt.不死uboot.双系统 .wifi中继 - 飞鸿影~ - 博客园)讲了如何在360路由器C301上安装openwrt以及安装双系统.这篇文章讲如何设置无线中继 ...

最新文章

  1. tree view 後台編寫
  2. 针对自己网站内容的搜索引擎代码
  3. 岗位推荐 | 腾讯AI Lab多媒体算法组招聘正式员工和实习生
  4. 定期定量采购_定量采购方式
  5. mysql不同字段full join_Mysql实现full join的替换方法
  6. 浅谈C++中类的const成员变量,static成员变量和const static成员变量的区别
  7. row_number() over 相同日期不同序号_怡丽丝尔护肤品生产日期怎么看?怡丽丝尔护肤品保质期多久?...
  8. 腾讯的bugly的更新和热更新
  9. UE4锁定Camera画面
  10. excel午晚加班考勤统计(excel快速计算午多少个和晚多少个)
  11. python编程入门到实践第二章_《Python编程:从入门到实践》第二章 变量和简单数据类型 习题答案...
  12. 逸仙电商将携Galenic法国科兰黎、EVE LOM参展进博会 | 进博会倒计时
  13. 走着走着,就剩下了沉默
  14. 文字动态发光特效代码简单实现
  15. python爬虫需要哪些基础知识-【PYTHON】【爬虫】关于python爬虫的一些基础知识
  16. python----集合
  17. 调侃物联网开源框架,我们什么时候也来开源一个?
  18. EFR32 gecko 2生产烧录
  19. ios12最后一个正式版_iOS12正式版
  20. pep8 python 编码规范下载_PEP8 Python 编码规范整理

热门文章

  1. python两列时间间隔计算器_python时间差计算器时分秒_python 实现日期计算器
  2. 小猫爪:i.MX RT1050学习笔记7-Power Supply
  3. uniapp实现瀑布流懒加载实现和无限上拉加载更多
  4. Golang图片码+压缩伪装+远程调用组合拳
  5. Windows Server 2008 定时任务卡住了不执行
  6. 截图神器推荐 ShareX
  7. flutter 多渠道打包 不同环境不同包名 product flavors flavorDimensions
  8. Edge 安装 CSDN 浏览器助手
  9. 2018总结,2019展望
  10. revit 对计算机最低配置,Revit 软件对电脑配置的要求