ようこそゲストさん

Kerosoft : Modus Operandi

2010/05/30(Sun) SPDToolでECCメモリをNon-ECC化する方法

はてブ情報 はてブに登録 はてブ数 2010/05/30 5:28 Hardware::PC
この間ML115 G5という格安サーバを買ったわけだが、これに付属していたECCのPC2-6400 1GBを他に転用したいと思ったものの、ECC対応してないマザーボードだと起動すらしない。
ハード的にチェック機能が備わっているところもったないないが、ECC機能をオフにして転用することを考えた。その時のメモ。

ECCとは

PC用のメモリにはNon-ECCメモリとECCメモリという2種類があり、一般的にはNon-ECCメモリが多く普及している。
ECCというのはError Check and Correctのことで、データ誤りを正しく訂正するための機能である。Non-ECCに比べて若干高価で、サーバ用のハードウェアなどには標準的に採用されている。

ただ、冒頭にも書いたように、ECCメモリに対応しているマザーボードは少なく、メモリとマザーボードが両方対応しなければエラーで起動すらしない。また、ECCメモリとNon-ECCってメモリを混在して起動することも出来ない。
なので、デスクトップ製品にサーバ製品のパーツを流用するときには困ることが多いわけだ。

SPD

メモリには、記憶域以外にSPD(Serial Presence Detect)という小さな8本足のチップが載っている。
これにはメモリチップの種類や容量、周波数、信号タイミング、ECC情報などが一通り格納されており、EEPROMなので書き換えが可能である。
今回はこのEEPROMを書き換えてメモリをNon-ECCのように見せかけるわけである。

このようなICチップを書き換えるには、専用のライターハードウェアが必要に思われるが、なんと起動しているWindows上からソフトウェア的に書き換える方法もあるらしい。それがSPDToolというツール。現在、Forumで配っている0.63が最新の模様。

SPD書き換えについて

DIMMのSPDを書換えてメモリの種類を変更するを参考にさせて頂いた。
ハードウェアを用いた方法を説明されているが、前節で書いたようにソフトウェアでやる方法を紹介する。

注意点として、SPD書き換えを行う時点では、ECCメモリが起動するマザーボードを用意しておく必要がある。

一旦書き換えてしまえば、ECC非対応のマザーボードでも起動できるようになるのだが、一つ注意がある。
上記サイトの最後にあるように、SPDをソフトウェアライトプロテクトするマザーボードがあるらしく、一旦変更して他に流用すると、Non-ECCからECCに戻せなくなることもあるようだ。

SPDTool

まずはSPDToolをダウンロード。
起動すると、FFで埋まったテキストボックスがあるはず。

次に、メモリの状態をロードする。
[File]->[Read]->[Module X: Installed]を選ぶ。
Xの部分には、マザーボードのスロット番号に対応する数字が入っているはずなので、間違えないように。

変更する前にバックアップを取ることをお奨め。
[File]->[Save]で適当な名前で保存する。

さて、次に変更に入る。
今回の肝である、ECCと書いてある部分をNon-ECCに変更する。
"DIMM error detection/correction features"を、"ECC"から"None"へ変更。



この状態だと設定値のチェックサムが狂うので、[Edit]->[Fix Checksum]を選ぶ。
[File]->[Compare]->[Module X: Installed]すると、以下のように2カ所が赤くなっているはず。



いよいよ、書き込み。
祈りながら、[File]->[Write]->[Module X: Installed]を選ぶ。くれぐれも書き込み先を間違えないように。

念のため1度再起動して、例えばEVERESTなどのツールで確認すると、きちんとUnbuffered DIMMになっていることが確認できる。



最後に

SPDToolの使い方を懇切丁寧に解説したサイトが見あたらなかったので書いてみたが、やりたいことの意味が分かっていれば、そんなに迷うこともないなと感じた。
まあ、参考になれば幸いかな。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

1: くっしー 2010年07月04日(Sun) 午前8時10分

こんにちは、一つ教えて下さい。ECCをNONECCに書き換えた時にマシンはECC対応の物を使用したのですか?ECC対応の物でないと起動すらしないという記述が有るので、ECC対応マシンで書き換えて、そのまま再起動して、結果の確認が出来たのですか?確認は別のマシン?ちょっと気になったので、教えて下さい。

2: Keroberos 2010年07月04日(Sun) 午前10時39分

はい、ECC->Non-ECCの書き換えは、ECC対応のマザーボードとECCメモリの組み合わせで行わなければいけません。
ECC非対応マザーボードではお察しの通り、ビープ音で起動できません。

一番最後の画像は、書き換えを行ったマシンでとったスクリーンショットですが、
今現在はECC非対応マザーボードで運用しているので、一旦Non-ECC化すれば
どちらでも使えるという事です。


名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0159/tb/