斐訊 FIR151M 頻繁掉線(OpenWRT解決方案)


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; 第三步輸入固件的文件名,就可以刷入了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM