0. 现象与前言

在使用斐讯 FIR151M 路由器连接网络时,传输数据时频繁掉线。

官方固件刷了两个版本,问题未解决。 建议高级用户看本教程,要做好不能使用 Web 管理界面的心理准备。

1. 准备

没有打开telnet和ssh服务,因此考虑直接在硬件上下手,在板子上找到了串口。

上排针、电烙铁、焊锡,引出了四个点,方便使用模块进行通讯,见下图。

之后拿PL2303模块连上计算机,使用超级终端通讯。(PuTTY也是可以串口通讯的)

2. 初步探究

a. 启动

打开超级终端,连上了串口,重开路由器,发现是通过UBoot引导的,信息如下:

U-Boot 1.1.3 (Aug  9 2013 - 20:53:34)

Board: Ralink APSoC DRAM:  16 MB
rt2880 uboot v0.00e04 05/25/2006
SERIAL_CLOCK_DIVISOR =16
kaiker,,CONFIG_BAUDRATE =57600
SDRAM SIZE:01000000
Top of RAM usable for U-Boot at: 81000000
Reserving 302k for U-Boot at: 80fb4000
Reserving 260k for malloc() at: 80f73000
Reserving 44 Bytes for Board Info at: 80f72fd4
Reserving 36 Bytes for Global Data at: 80f72fb0
Reserving 128k for boot params() at: 80f52fb0
Stack Pointer at: 80f52f98
relocate_code Pointer at: 80fb4000
... // 省略若干行
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.

FIR151M的性价比还是不错的,硬件配置相比于同价位产品要给力许多,并且也带了UBoot,这样某种意义上也方便了OpenWRT的刷入。

先不管,我们先让其继续启动官方固件。

b. 原因剖析

经过半小时折腾,发现频繁掉线的原因是因为

  • 运行过程中ip_conntrack_count超出ip_conntrack_max的限制
  • nf_conntracthashsize也不够

似乎是固件本身的问题,我就眼看着ip_conntrack_count涨涨涨,然后就丢包了。

尝试过使用内嵌的nvram更改相关参数来解决,结果发现根本不会用这个玩意儿……相关的资料也是挺少的,觉得花力气在这上面不如刷个OpenWRT。

3. 解决方案

a. OpenWRT 前期工作——下载

我用了另外一台运行着Arch Linux的机器作为编译机。

前往 https://dev.openwrt.org/wiki/GetSource 使用 Git 获取对应的版本分支。 我使用的是14.07 branch (Barrier Breaker)

git clone -b barrier_breaker git://github.com/openwrt/openwrt.git

切换到该目录,并进行feeds的更新和安装

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

我这边feeds全部都装了,实际上完全可以选择性的安装(甚至不需要feeds),具体可以见 OpenWRT 官方文档之feeds篇

b. OpenWRT 编译

OpenWRT 需要进行配置,在 OpenWRT 的目录下使用此命令进入配置界面

make menuconfig

回车进入子菜单,依次进入前三项子菜单寻找选项,确保前三项如图所示。

后面就与其它 OpenWRT 教程雷同了,推荐查看其它教程,在此略去。 给予一些注意事项:

  1. 不要妄想使用luci,硬件配置相比于同价位产品虽然给力许多,但是也只是达到了OpenWRT的低配……个人尝试过luci,发现进入luci界面后稍微动几下,路由器RAM就不够了,于是报Out of Memory的错,结果就是重启。
  2. 想要无线中继的可以在上方菜单的 Network -> Routing and Redirection 下选中relayd,后续根据该教程进行配置(教程第一步在选完relayd后已经完成)。

在此分享一个自己编译的带relayd的固件

openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.zip

c. OpenWRT 刷入(粗略概述)

计算机上准备好tftpd32程序,打开后将目录定位到固件所在位置。 网线连接计算机和路由器(LAN口),将IP为192.168.1.2,子网掩码255.255.255.0,网关192.168.1.1 超级终端保持打开并连接,重新插拔路由器电源。 在UBoot启动阶段,投机取巧地按一下2,应该会停止启动,出现YES/NO的选项,输入Y。 然后第一步是Input device IP,输入192.168.1.1(一般默认就是这个,可直接回车); 第二步是Input server IP,输入192.168.1.2; 第三步输入固件的文件名,就可以刷入了。

斐讯 FIR151M 频繁掉线(OpenWRT解决方案)的更多相关文章

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

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

  2. Ubuntu网络频繁掉线解决方案

    年底了,实验室终于给配了个电脑(Ubuntu系统),博主欣喜若狂啊,然而装好后发现无线网频繁掉线,重启网络后能正常上网2~3分钟然后又掉线,再重启又能上网2~3分钟然后再掉线,博主那个不爽啊,于是各种 ...

  3. 斐讯N1折腾记

    斐讯N1折腾记:运行 Linux 及优化  2018-06-23  37条评论  4,445次阅读  11人点赞 最后更新时间:2019年03月10日 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了 ...

  4. 给斐讯K1刷机并拨号e信(湖北地区测试无问题)

    ◆购买斐讯k1路由器 路由器在天猫京东斐讯旗舰店都有售卖,我买的价格是159,不过有一张铃铛卡,一个月之后返还160元,相当于0元购 ◆路由器刷不死Breed 1.路由与电脑有线连接好,输入192.1 ...

  5. 斐讯K2刷不死breed与第三方固件教程

    本文主要就是简单的斐讯 K2 刷机教程,方便大家了解一下 K2 怎样刷固件.斐讯 K2 是一款 1200M AC 双频无线路由器,支持 5G 和 2.4G WiFi 信号,虽然缺少 USB 且只有百兆 ...

  6. 关于ubuntu16无线网卡RTL8723BE频繁掉线及信号不足的解决办法

    最近在新电脑上装了ubuntu16,结果wifi经常连不上,连上了过段时间就掉线,路由器就在电脑的旁边,而且信号非常的若. 但是windows系统没有任何问题,所以就在网上找解决办法,也按照网上的方法 ...

  7. 斐讯Fir302b救砖教程

    首先本人是路由器小白,不算是硬件改装高手,昨天收到了微信活动中的斐讯Fir302b,大概当时得奖的有300人,所以最近肯定很大一批朋友手里有这样的一款路由. 上网查了一下,此款路由可以刷基于tomat ...

  8. 斐讯K2 V22.X.X.X 新版固件 刷机教程 (开telnet,安装SSH,adbyby,刷breed,华硕Padavan)

    源:http://www.right.com.cn/forum/thread-191833-1-1.html 属于我的上一个帖子的升级版,基本属于无脑操作,点击恢复就可以自动刷好breed,浏览上传新 ...

  9. 斐讯K2 22.5.9固件刷华硕固件实测教程

    斐讯K2最新的固件是V22.5.9.163这个版本是锁死了,不能刷机的,而且不能降级到原来的可以刷机的老版本固件,也就不能刷第三方固件了,怎么破呢?下面就教大家怎么降级刷机到V22.4.2.8固件.  ...

随机推荐

  1. 201521123111《Java程序设计》第8周学习总结

    1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 附上ppt: 1.2 选做:收集你认为有用的代码片段 List strList = new ArrayList ...

  2. 201521123064 《Java程序设计》第2周学习总结

    1. 本章学习总结 1.学会使用码云管理代码,包括将本地的代码上传至码云,和将码云上的项目保存至本地. 2.将码云上项目保存至本地的过程中,若eclipse窗口中已有同名项目,则导入的过程中可能会出错 ...

  3. 控制结构(8) 线性化(linearization)

    // 上一篇:管道(pipeline) // 下一篇:程序计数器(PC) "编程语言不过是一个工具,什么语言都一样","编程语言能改变人的思维,不同的语言会带给你不同的思 ...

  4. 201521123012 《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 1.本次PTA作业题集异常.多线程 finally 题目4-2 1.1 截图你的提交结果(出 ...

  5. 201521123016《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 只有执 ...

  6. 控制结构(2) 卫语句(guard clause)

    // 上一篇:分枝/叶子(branch/leaf) // 下一篇:状态机(state machine) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 典型代码: 同步版本 f ...

  7. ORACLE PROC开发(转载)

    Proc也就是嵌入式C,与informix的ESQ/C有类似之处,本部分主要列出Proc与Esql的区别,相同部分请参见informix部分. 1.数组功能 Proc中支持使用宿主变量数组一次查询SE ...

  8. 在linux下通过hexdump生成一个十六进制的文本保存文件,解析此文件转变成正常源代码文件。

    举例说明: 此十六进制保存的文件为此源代码hexdump生成的: #include<stdio.h> #include<string.h> #include<stdlib ...

  9. 如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  10. codeforces 862B B. Mahmoud and Ehab and the bipartiteness

    http://codeforces.com/problemset/problem/862/B 题意: 给出一个有n个点的二分图和n-1条边,问现在最多可以添加多少条边使得这个图中不存在自环,重边,并且 ...