JP7FKFの備忘録

ヒトは,忘れる生き物だから.

Cisco Catalyst 2960G switchを修理した話

壊れたCisco Catalyst 2960Gなswitchを譲渡してもらった.

壊れたCiscoCatalystスイッチを譲渡していただける機会があった. 私はモノを修理するのが好きなので,今回も治すことを試みた.

症状としては,電源を入れてもコンソールからは何も出力されない. Catalyst 上のインジケータLEDも,特に意味のある光り方をしない. (具体的には,電源を入れると点灯こそするものの,その後は一切変化しない.電源を入れるたびにオレンジ,緑等の色が変化する.電源を入れるたびに光ったり,光らなかったりするLEDが出るなど,ステータスを表しているとは到底思えないような光り方をしていた.)

LED表示はこんな感じ.コンセントをさしたり抜いたりすると光るところが変わったりする.明らかにおかしい. f:id:jp7fkf:20180906124027j:plain:w500

Ciscoバイスはどの順序で各メモリを利用するのか.

ここで,Cisco スイッチの起動順序をおさらいしてみることにする. 私はそもそもあまり詳しくないので,調査してみてわかったことを簡単に書いてみる.正しいかどうかはわからない.

起動順序は下記URL等を参照した.
Ciscoデバイスの操作 - Ciscoルータ - メモリの種類と起動順序

ciscoバイスは,Flash, NVRAM, RAM, ROMの4種類の記憶装置が存在する. 具体的には,ROMはPOST,Bootstrap,ROMMON, miniIOSなど,最小限のソフトウェアが乗っている.FlashIOSイメージが格納され,起動時にRAMにロードされて実行される.RAMはIOSがロードされるほか,running-confingもここに乗っている.NVRAMはwrite mem等をした際に書き込まれる領域,つまりstartup-configが格納されている.

というわけで,基本的にロード順序としてはROM -> Flash -> RAM -> NVRAM の順序で読み込まれるような気がしていた.しかしながらよく考えると,ROMに書かれているプログラムもRAMに展開されて実行されるような気もしていた.これはコンピュータアーキテクチャが分かっていればすぐにわかることなだろうが,ciscoがどのようなアーキテクチャで作っているのか私は知識がなく,断定はできなかった.

現状として,電源を接続しても,Catalyst 上のインジケータLEDは,特に意味のある光り方をしない.点灯こそするものの,その後は一切変化しない,など,syst, statランプの点滅などもなかったため,POSTすら実行できていない可能性が高いと推測をした.

起動しない原因と可能性

これらの原因として考えられるものの1つとして,ROMの破損が考えられた.しかしながらROMが破壊していた場合,ROMを交換するだけでなく,その中に書き込まれているプログラムも他のciscoスイッチ等からコピーする必要があり,現状その手段を持ち合わせていないため,交換して修理することは難しいと判断した.

2つ目の可能性として,POSTやブートストラップが,仮にRAM上に展開されて実行される場合,RAMの故障によりPOSTが動いていないことが考えられた.

RAMは電源断時には情報は持つことはなく,電源が入っているときのみ記憶動作を行うため,これは交換することで修理が可能であると考えた.

他の可能性として,根本的にデバイスに供給されている電源の不具合(各電圧ラインの電圧が異常である等)が考えられたが,これはテスタですべての電圧ラインを確認し問題ないことを確認した.

FlashとNVRAMについては,これが破壊されていた場合でも,最低限POSTは走るであろうと考えられたため,今回はこれらの故障が原因ではないと判断した.

上記の判断と,自分が行うことのできるレベルとして,RAMを交換して様子を見るということが初手として打てる手であると判断し,当該スイッチので用いられているRAM交換することにした.

DRAMの交換を試みる.

スイッチの蓋をあけると,RAMと思われるデバイスが見つかった.
f:id:jp7fkf:20180906124034j:plain:w500
f:id:jp7fkf:20180906124051j:plain:w500
型番を調べるとビンゴで,512MBのSDRAMである.
こいつはMicron TechnologyのMT46VというシリーズのSDRAMのようだ."-6T"というのは,Speed Gradeで,使えるClock Rateを示している.
Micron MT46V Series DDR-SDRAM

本来であれば同一の型番のDRAMを用いるべきであるが,digikey等で検索しても1qty. から適正価格で買えるものが見つからず,入手性の観点から互換的に利用できると考えられた"-5B"というSpeed Gradeのものをを代わりに用いることとした.こちらはより高速なクロックに対応したモデルであるが,データシートを見て,当該スイッチで用いられているクロックでも問題なく動作すると判断した.

最近ではマルツパーツ館digi-keyのパーツが1個から購入できるので大変便利である.私もこれを利用させていただくことにした.

パーツは5営業日くらいでマルツの店舗に到着し,受け取ることができた.十分早い.
f:id:jp7fkf:20180906124043j:plain:w500
交換するDRAMが入手できたので,早速交換を行う.

交換の仕方は割とワイルドに?交換対象のDRAMの足にたっぷりの半田を盛り付けて熱容量をあげておく.半田を盛ったら,周囲の部品を壊さない程度に半田ごてをがっつり当てて半田を溶かして部品を取り外す.
f:id:jp7fkf:20180906124058j:plain:w500

取り外すことができた.
f:id:jp7fkf:20180906124111j:plain:w500

半田の残骸をはんだ吸い取り線等を用いて綺麗に取り除く.
f:id:jp7fkf:20180906124119j:plain:w500

綺麗になったら,いよいよ新しいDRAMを取り付ける. DRAMと基板をマスキングテープ等で固定すると,面実装部品でも比較的簡単に半田付けを行うことができる.軽くマスキングテープで固定し,足とパッドにフラックスを塗布する.面実装部品の場合は,ほとんどの場合フラックスを塗ることは必須だと思う.塗っておくと上手にパッドに半田が流れてくれるし,ブリッジもしにくくなる.無洗浄タイプを用いると,後から洗浄を行わなくてよかったり,余計な腐食の心配をしなくていいので楽だと思う. f:id:jp7fkf:20180906124127j:plain:w500

フラックスを塗ったら,いよいよ半田付けを行なっていくが,このような面実装部品では軽くコテ先に半田を含ませて足をなぞるようにするとうまくいく.

この要領で全てのパッドと足がはんだづけされていることを確認する. ブリッジ等が起こっていると,電源を入れた場合にDRAMだけでなく周辺の回路も破壊することがあるので,できるだけルーペなどを用いてブリッジがないということをしっかり確認する.
f:id:jp7fkf:20180906124144j:plain:w500

DRAMの交換が終わったので,元どおりにシャーシを組み上げ,電源を入れる.これでLEDがうまく点滅,点灯したり,コンソール表示が出れば成功だ. 緊張の一瞬である.
f:id:jp7fkf:20180906124137j:plain:w500
f:id:jp7fkf:20180906124148j:plain:w500

無事息を吹き返した. よかった.

まとめ

これらの事象が示していることは,POSTは確かにRAMにロードされて動いているとみられるということだ.RAMが死んでいるとPOSTすらまともに走らないし,LEDも無論まともに点灯しない.当たり前といえば当たり前の話なのだが,アーキテクチャを理解していないとわからないことでもあった.この事実を知ったことは,ふるまいが確認できたという点で,大変良い経験となった.

というわけで,無事Cisco Catalyst 2960G を修理することができた. DRAMの故障だと見抜くことは難しいことだと思うが,今回はROMではなくRAMが死んでいてくれただけで大変助かった.めでたし.

P.S. 同じような症状で死んだCat2960GをRAM交換で直そうとしていた人がいた...けど,この人は失敗していた.
Repair of a Cisco 2960G switch with amber LED via RAM chip replacement (FAIL/defect) - YouTube

References