HPの格安サーバーML115 G5のBIOSを改変してSLIC2.1化することが難しそうなので、INTELのLANボード Intel pro/1000 CTを使ってこのパソコンをslic2.1化してみました。
※ 最近のマザーボードのBiosは改変が難しくなってきているので、INTELのLANボードのPXEブート法に逃げるという選択肢も有りですね。
もっともこのサーバーの価格が10,000円程度なので、3,000円もするIntel pro/1000 CTを購入してまでやる価値があるか?って言われると、「無い」って胸を張っていえますが、本当にこの方法でSLIC2.1化できるかどうか確認したかっただけです。
もし、これができれば、新しいマザーボードに買い換えるごとにマザーボードのBiosを書き換えなくても、Lanボードを移設するだけでパソコンのslic2.1化ができるわけです。
さらに、Intel のLanボードの性能はいろいろなサイトで語られているとおりマザーボードに標準装備のLanより優れているので、購入する価値はあります。・・・と自分に言い聞かせております。 ∑(; ̄□ ̄A アセアセ
もし、もっと安くやりたいという方は、 pro/1000 CT以外のIntelのLanボードならヤフオクで1,000円程度で手に入れることができるものがあるので、こちらをお勧めします。
必要な機材
これがHP ML115 G5です。
東芝のREGZAに接続するため、HDMI接続できる2,500円くらいの安物のビデオをカードを増設済みです。
今回のドナーとなるLanボード Intel pro/1000 CT ・・・ツクモで3,180円也
必要になるファイル
Windslicファイル
・windslic-2011_01_22_01-beta.zip
置いてある場所は検索してください。
フラットアセンブラー
・fasmw17003.zip
http://flatassembler.net/からダウンロード
SLIC2.1ファイル
amitool162の中から流用
amitool162が置いてある場所は検索してください。
Intel Pro/1000 CTのフラッシュメモリを書き換えるツール
Windslicファイルの修正 ~ コンパイル
windslic-2011_01_22_01-beta.zipを解凍し、windslic.asmの以下の行をLanボードの型番に合わせて編集を行う。
※ 以下はIntel Pro/1000 CTの修正ですが、他のIntel のLanボードは、windslic.asmのコメントを見ればどこを編集するのか分ります。
PCI_DEVICE_ID = 10D3h ;Intel Pro/1000 CT ・・・92行目のコメントを外す。
;PCI_DEVICE_ID = 1229h ;Intel Pro/100+ (most well-tested card) ・・・97行目にコメントを付ける。
BOOTSPLASH_USE_TIMELY_PAUSES = 0 ・・・121行目を1から0へ変更する。
※ BOOTSPLASH_USE_TIMELY_PAUSES = 1のままだと、以下の画面のように起動中に止まってしまう。書き換えの指示はないが、私の環境ではこれを0に書き換えないと使い物にならない。
windslic.asmと同じフォルダに374バイトのSLIC2.1ファイルをコピーし、ファイル名をslcembed.rawに変更する。
ファイルの大きさはプロパティを見れば分ります。
フラットアセンブラーを解凍し、コマンドプロンプトから以下のコマンドでコンパイルする。
fasm windslic.asm
コンパイルで生成されたwindslic.binの名前を808610D3.ibaに変更する。
※ 変更する名称はLanボードの型番(DEVICE_ID)で違います。
8086 + DEVICE_ID + .iba
DEVICE_ID = 1229h ;Intel Pro/100+
DEVICE_ID = 10D3h ;Intel Pro/1000 CT ・・・今回使っているLanボード
DEVICE_ID = 107Ch ;Intel Pro/1000 GT
DEVICE_ID = 100Eh ;Intel Pro/1000 MT
USB起動ディスクを作成して、メモリ書き換えツールとコンパイルで生成したデータをコピーする。
USB起動ディスクの作成方法は以下を参照のこと。
ここでは以下を参照してFreeDosを使用してUSB起動ディスクを作っています。
http://memorva.jp/internet/pc/dos_usb.php
この起動USBディスクに808610D3.ibaとIBAUtil.exeをコピーする。
※ 以下の画面のBootUtil.exeとBootIMG.FLBはフラッシュメモリを丸ごと更新するためのツールとデータですが、この書き換えでは使用しないので不要
Intel pro/1000 CTのフラッシュメモリの更新
USBメモリから起動するようにブートの優先順位を一番上にする。
パソコンをUSBメモリから起動し、以下のコマンドでIntel Pro/1000 CTのフラッシュメモリを更新する。
ibautil -all -restore
パソコンを再起動してBIOSの画面でIntel pro/1000 CTの優先順位を一番高くする。
※ 具体的には以下の画面のNetwork:WindSLICを一番上に移動します。
パソコンを再起動します。
これでお終い。
ここからトラブルシューシューティング
WindowsXPにEvelest Ultimate Editionを入れてslic2.1化できているか確認しましたが、SLICテーブルが無いため、成功しているように見えません。
失敗したのか?
・・・ コンパイル時のオプションを変えたり、散々いじったけど、ダメ。
半分、あきらめていましたが駄目元でWindows7を入れたら、なぜか認証されていました。
Evelest Ultimate Editiondeで見ると、 SLICテーブルが出来ています。
いつの間にかslic2.1化できていたようです。
認証されてしまったというのは、Dellのパソコンに添付されるWindows7のインストールDVDを使用したからです。
もし通常のインストールDVDであれば、こんな感じの手順で認証させます。
プロダクトキーは入れないでWindows7のインストールをする。
Windows7が起動したらコマンドプロンプトを管理者権限で以下を実行。
slmgr.vbs -ipk ○○○○○-○○○○○-○○○○○-○○○○○-○○○○○ ・・・・・プロダクトキーを入れる
しばらく待つと「プロダクトキーがうんたらかんたら」のメッセージが出ます。
ハードディスクのドライブCにDigitalLicensesファイル ○○○○.xrm-ms をコピーします。・・・amitool162の中から使っているslic2.1ファイルに対応するものを探して使用します。
コマンドプロンプトを管理者権限で以下を実行。
slmgr.vbs -ilc C:\○○○○.xrm-ms
HP ML115 G5は以下の画面を見ても分るとおり、今時シングルコアのしょぼいCPU、しかもメモリをたった1GBしか積んでいないので、Windows7の更新プログラムを適用するだけでCPUを占有してしまい、とてもWindos7が快適に動くとは思えません。
ということで、このWindows7は削除予定です。
おまけ
preboot.exeをIntelのサイトからダウンロードして解凍し、BootUtil.exeとBootIMG.FLBを起動USBディスクの入れて再起動し、以下のコマンドでLanボードのフラッシュメモリを最新のバージョンに更新できます。
結局、これができるので、今回のフラッシュメモリの更新にあたり、バックアップと取りませんでした。
気になる方は、バックアップを取ってから書き換えてください。
bootutil -all -UPDATE=pxe -FILE=BootIMG.FLB
http://downloadcenter.intel.com/Detail_Desc.aspx?lang=jpn&DwnldID=19186
もう一つおまけ
今回、slic2.1化できているのか確認するためにEverest Ultimate Editionを入れましたが、注意しないと一緒にBabylonが入ってしまいます。
Babylonはブラウザの設定内容を許可なく書き換える性質の悪いウイルスなので、絶対に入れないように注意しましょう。
これが入ると、レジストリをいじったり元に戻すのがすごく大変です。
この記事の内容は実験でやっております。
HP ML115 G5は、スペックがあまりにも低いパソコンなので、Windows7を入れて使うつもりはなく、この検証が終わった後に削除してしまいました。
※ お約束ですが、この記載内容を私は保証しませんので、自己責任でお願いいたします。
*** 2011/07/12 追加 ***
ML115 G5をUSBメモリでSlic2.1化する方法を以下に紹介しています。
こちらは使わなくなったUSBメモリを使うだけなので、ほとんどコストがかかりません。
しかも、簡単です。
http://it.trend-ai.com/?p=5740