給一臺便攜路由器升級內存並適配openwrt

最近呆在家,甚是無聊,於是把熱風槍電烙鐵以及一些工具搬回去了,閒在家裡,總得做一些有趣的事情才好,不是嗎?

於是翻抽屜找出來一臺便攜路由器來,說是便攜路由器,其實它只有一個網口,只能算是無線AP吧。


給一臺便攜路由器升級內存並適配openwrt

這個無線AP的外觀是這樣的,圓潤可人,內置5000mah鋰電池,似乎很像某種女性用品。。。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

以上是主板的拆機圖片,可以看出,CPU是MT7628NN,內存是64MB,閃存好像我之前已經升級成16MB了,查了一下MT7628的芯片手冊,發現這個CPU支持DDR1和DDR2內存,最大分別可支持128MB/256MB內存,不過手邊好像只有DDR2的128MB內存,那麼咱就因陋就簡,改成128MB內存吧,DDR1肯定改不了,因為這個機器只有DDR2的焊盤。DDR1是TSOP封裝的,就是兩邊有管腳那種,而DDR2是BGA封裝的。兩者外觀區別蠻大的。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

OK,既然已經確定了要改內存,接下來的事情就是拆下原來主板的內存,換上大容量的上去,由於已經刷好了breed,可以自動識別內存容量,這就很方便了。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

已經取下了原機的內存,清理乾淨了焊盤,至於取下的64MB內存,直接丟垃圾桶就是了,這玩意容量太小,完全沒機會再用得上了,留著也是佔用抽屜空間,不如直接扔掉省心環保。

但是要換的128內存哪裡來呢?這還真的要翻抽屜了,幸好有先見之明,很久之前有拆下來的128MB內存沒有扔掉,所以這次正好派上用場。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

這個內存是WINBOND的,具體參數是W971GG6KB-25,這個-25是什麼意思呢?貓貓無線照例去看芯片手冊。發現-25的意思是DDR800的內存,時序是5-5-5,不過我們不需要糾結這些參數,基本上閉著眼睛換就可以,路由器對內存參數的要求沒有那麼嚴格。用起來你不會感覺有任何能感覺到的區別,說到這裡貓貓無線想起來一篇奇文,《HIFI——論火電,水電,風電,核電對音質的影響》,糾結這個的有機會可以去觀摩學習一下,有異曲同工之妙哈哈哈。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

內存植錫的三個步驟,首先清理乾淨上面的殘錫,然後上錫網,刮錫漿或者錫膏,然後風槍吹之,待錫漿融化凝固後撤去錫網,然後清理乾淨芯片,對自己手藝沒信心的話再上一層助焊油,風槍再加熱一下芯片,讓錫球更加飽滿圓潤。這就搞定了芯片的植錫工作。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

接下來的工作就是把芯片對準位置,然後加熱,等待BGA焊盤的錫球融化後與主板對應的焊盤焊接牢固即可,以上是已經做好BGA的主板,萬事俱備,只待開機測試。不成功便成仁,不過以貓貓無線多年的手藝,基本上可以說萬無一失。當然閉著眼搞定的大話咱可不敢說,因為那絕對是扯淡哈哈哈。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

果然,breed顯示路由器的內存已經是128MB DDR2,非常ok。但是,但是進了系統內存卻顯示是58MB,除去系統保留的幾M內存,說明openwrt仍然沒有識別到新換的128MB內存,這是咋回事呢?

根據經驗,問題可能出在配置文件裡,MT76XX芯片是有很多特殊的地方,比如MT7620芯片在openwrt裡面就沒有內存的限制,只要UBOOT識別出多少的內存,系統就會接管多少的內存。但是MT7621和MT7628芯片在openwrt裡面就有內存的定義,它不管bootloader識別了多少內存,一律按自己固件給定好的參數進行。所以需要去改下內存的定義重新編譯固件。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

由於這個路由器沒有名字,openwrt對這個路由器更沒有支持,所以只能自力更生,之前是找了個硬件方案接近這個機器的GL-MT300N-V2來改吧改吧適配成這個機器,但是GL-MT300N-V2的內存是64MB的,所以在我的路由器改為128內存後,便不能識別了,必須繼續修改才行。

MT76系列的CPU都是採用dts來配置,所以直接找到dts文件中關於內存的一行,

<code>memory@0 {
\t\tdevice_type = "memory";
\t\treg = <0x0 0x4000000>;
\t};/<code>

直接改成0x8000000,然後保存重新編譯即可。

這裡有人要問了,如果內存改成256MB,那麼這個參數該咋改呢?

答案就是改成0x10000000。

為什麼呢?實際上這裡是使用的十六進制,0x8000000其實就是十進制的134217728。

有人又會問了,134217728這跟128MB有毛關係啊?!

嘿嘿,你拿134217728除以1024再除以1024看看結果是多少,就是128MB。

那為啥要除以兩個1024呢?要回答這個問題,就扯遠了,因為計算機用二進制系統,所以128兆字節的內存就是128×2^20個字節,計算出來就是134217728個字節的內存,就醬。


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt


給一臺便攜路由器升級內存並適配openwrt

扯的有點遠了,洋洋灑灑說了這麼多,新固件的編譯也完成了。馬上上傳刷機,刷完後系統會自動重啟,然後就坐等系統重新啟動完畢,登錄進去一看,狀態界面的內存容量已經變成了122MB。加上系統保留的幾MB內存,正好是妥妥的128MB。完美搞定收工。

改內存已經成功搞定,望著改好的無線路由器,貓貓無線陷入了深深的空虛和無聊中,接下來該做點什麼有意義的事情呢?難道這一個大好青年就滿足於這些簡單的DIY而毫無進取之心嗎?不,那和鹹魚有什麼分別呢,這絕對不是我要的生活!


給一臺便攜路由器升級內存並適配openwrt

然後,然後就又翻出了兩個E3276網卡,接下來的事情就很明顯了,要把這個隨身路由器改造成基於OPENWRT的4G隨身WIFI。同時加入一些喜聞樂見的功能,這樣才對得起這個大內存的設備嘛。

敬請期待!


分享到:


相關文章: