2015年7月20日月曜日

Linksys WRT54G V2 のシステムメモリを 32MB 化

リンクシス WRT54G Ver.2 のシステムメモリを 16MB から 32MB へ倍増しました。JTAG アクセスために、分解したままだったので、メモリ交換の加工をするなら今しかないと考えて決行しました。

加工前の WRT54G V2 のプリント印刷基盤です。

メモリチップの引き剥がし

このところ無線 LAN ルータのシステムメモリの交換加工を何度か行なって経験を積んできました。その経験から今回の作業は、アースパターンへ直接メモリチップのリードがハンダ付けされている状態で作業が難しくなることが予想されました。コテライザーによるホットブローでは歯が立たなかったため、ハンダゴテによる盛りハンダの手法でメモリチップを剥がすこととしました。

元々搭載されていたメモリチップの P2V28S40BTP-6 です。
作業で邪魔な無線 LAN のアンテナケーブルは取り外しておきました。
右側のメモリチップから引き剥がし作業を開始しました。

ランドパターン剥がれ

やはり盛りハンダの手法を用いてもなかなかメモリチップがプリント印刷基盤から離れてくれませんでした。メモリチップを二枚剥がすのに一時間以上格闘することとなりました。ようやく引き剥がしたメモリチップですが、残念ながらランドパターンが合計四箇所ほど剥がれてしまいました(涙)。

メモリチップを剥がした直後の様子です。
左側のチップがなかなか剥がれてくれませんでした。
左側のチップで三箇所、右側のチップで一箇所のランドパターン剥がれが発生しました。

新しいメモリチップのハンダ付け

ランドパターン剥がれはありましたが、まだパターンそのものが切断されている状態ではありませんでした。そこで、このランドパターンをできるだけ正規の位置へ戻して、新しいメモリチップをハンダ付けして固定しました。ただハンダ付けは一回勝負です。もう一度メモリチップを剥がすこととなった場合、確実にランドパターンはちぎれてしまうことでしょう。


苦労して二枚のメモリチップをハンダ付けしました。ランドパターンが剥がれていることもあり、メモリチップのリードの浮きが多い状態となっていました。そのためいつもより多めのハンダを盛りつけて電気的接触を保つように配慮しました。


メモリチップ交換後の動作確認

目視検査で問題ないことを確認して電源を投入してみました。運良く一発で動作確認がとれました。事前に OpenWrt Kamikaze 8.09.2 をインストールしていましたが、無事立ち上がり、パソコンからブラウザでアクセスすることができました。まだこの状態ではシステムメモリの容量は 16MB のままです。


32MB のシステムメモリを認識させる

telnet 接続を行なって、新しいメモリ容量の 32MB を認識させます。

基本情報ですが、交換前のメモリと交換後のメモリの内容です。
  • MIRA P2V28S40BTP-6 (128Mbit : 16bit x 8Mword, 166MHz)
  • MT 48LC8M16A2-75  (128Mbit : 16bit x 8word, 133MHz) 
何と!交換前と交換後のメモリ容量が一緒でした(驚)。意味もなくメモリを交換してしまったようです。元々 32MB のメモリが搭載されていました!
もしも WRT54G V2 をお持ちであれば、メモリチップの確認をしてみてください。128Mbit タイプであれば、32MB 化が設定だけで可能です。

以前 WLA-G54 のメモリ倍増加工の時の設定データで今回の WRT54G V2 も設定してみました。nvram コマンドで sdram_init の値を 0x0000 から 0x0c29 へ変更しました。(下記に追記があります。)何と起動しなくなってしまいました。BCM47xx シリーズに共通に使用出来るものと思っていただけにガッカリ感の前に驚きがありました。
Buffalo WLA-G54 のメモリ増設
http://near-unix.blogspot.jp/2015/07/buffalo-wla-g54.html

起動しなくなった WRT54G V2 へ JTAG ケーブルを接続して NVRAM の部分を消去しました。これで再び起動するようになりました。

そこでネット上で検索してみたところ、新しい設定値があることが判明しました。
DD-WRT Forum :: View topic - linksys wrt54g 32MB hack
http://www.dd-wrt.com/phpBB2/viewtopic.php?p=1783

上記の掲示板の情報から次の設定を行なってみました。sdram_ndcl という値は、存在していませんでしたので、これで新規設定となります。(追記があります。下記を参照してください。)
nvram set sdram_init=0x0008
nvram set sdram_ndcl=0x000
nvram commit
reboot

この設定で無事 WRT54G V2 は起動して、32MB のシステムメモリを認識しました。

まだこのメモリ部分の設定について理解ができていません。もう少し調査をして、設定の見直しも検討してみたいと思っています。

動作確認中の WRT54G の様子です。

[ 追記 ]

上記の sdram_init の取り扱いで、どうも sdram_config と混同してしまったようです。以下の設定方法で問題無さそうです。
nvram set sdram_init=0x0008
nvram set sdram_config=0x0c29
nvram set sdram_ndcl=0x000
nvram commit
reboot



0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。