- PR -

ibm x206+ServerRAID 7t にCentOS4.2

1
投稿者投稿内容
moni
会議室デビュー日: 2006/01/30
投稿数: 4
投稿日時: 2006-01-30 11:25
こんにちわ。
IBM X206+ServerRAID 7tの構成にCentOS4.2を入れようとしています。
RAIDのドライバが必要らしいので、aacraidのRHEL4用のドライバフロッピーの
イメージ(aac-linux-i686-rhel4.img)をIBMのRAID用のユーティリティCDから
とってきてフロッピを作成しました。
(dd if=/mnt/cdrom/diskette¥sata¥aac-linux-i686-rhel4.img of=/dev/fd0)

インストーラを起動して、linux dd textでドライバFDを要求されたところで、
フロッピを入れると、読み込み動作の後に、ドライバーが見つからない旨の表示が出ます。

centOS4.2では、RedHat Enterprise Linux v.4用のドライバディスクは使えないのでしょうか。

raidの構成はraid5で、fedoracore3は特に何事も無くインストールできています。
natsuno
会議室デビュー日: 2006/01/30
投稿数: 1
投稿日時: 2006-01-30 16:22
こんにちは。
以前に同機種にてServeRAID 7eのRHEL3で似たような環境を構築したことがありますので、
参考になればと思い書き込みします。

引用:

インストーラを起動して、linux dd textでドライバFDを要求されたところで、
フロッピを入れると、読み込み動作の後に、ドライバーが見つからない旨の表示が出ます。


まずServeRAIDのドライバディスクについてですが、
ServeRAIDのドライバとインストールするLinuxのカーネルのバージョンが合致しないとドライバが見つからないと表示されるようです。
当方の場合はRHEL3 U5にてインストールしようとしたところ、
当時RHEL3 U3までのドライバ提供でしたので、インストール時にドライバが見つからないといった状況になったことを記憶しています。

moniさんが使用しているドライバのファイル名から察するところRHEL4の初版用のドライバと思われますので、
CentOSの場合は4.0を使用するか、RHEL4 U2対応のドライバが提供されているのであれば、そちらを利用する必要性があるように思います。

引用:

centOS4.2では、RedHat Enterprise Linux v.4用のドライバディスクは使えないのでしょうか。



また、ドライバディスクについてはRHELとCentOSはバイナリ互換のため、
まったく使用出来ないことはないと思います。
#未検証のため断言はできませんが。

moniさんの参考になれば幸いです。
moni
会議室デビュー日: 2006/01/30
投稿数: 4
投稿日時: 2006-01-30 17:52
返信ありがとうございます。

> まずServeRAIDのドライバディスクについてですが、
> ServeRAIDのドライバとインストールするLinuxのカーネルのバージョンが合致しないとドライバが見つからないと表示されるようです。

なるほど、そうだったんですね。

ドライバディスクの作成方法を探して、これからトライしてみます。
まずは、centOSをインストールしたマシンを作らなきゃ。
moni
会議室デビュー日: 2006/01/30
投稿数: 4
投稿日時: 2006-02-03 14:07
まだ最後まで出来ていませんが、途中経過です。

結局適切なドライバディスクを作れば良いだけだったのですが、試行錯誤しながらで
時間がかかりました。

http://fedora.jp/pipermail/users/2005-March/009710.html
http://www.gemx.co.jp/modules/tinycontent4/rewrite/tc_2.html
とかを見て作業しました。以下作業の流れです。

0. centOS4.2をインストールしたマシンの準備
x206でなくって、別のマシンにとりあえずインストールしました。
モジュールコンパイルに時間がかかるので速いマシンのほうが幸せかも。

1. カーネルソースの準備
CentOS4.2では、kernel-2.6.9-22.EL.src.rpmでした。
これを、ルートでインストールしたら、/usr/src/redhat以下に入ります。
で、/usr/src/redhat/SPECSにて、
# rpmbuild -bp --target=i586 kernel-2.6.spec
すると、/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9以下に
展開されます。
私はこれを、
# mv linux-2.6.9 /usr/src/linux-2.6.9-i586
と移動して、作業しました。

さらに、
# rpmbuild -bp --target=i686 kernel-2.6.spec
して、i686用を作成して、こちらは、/usr/src/linux-2.6.9-i686
に移動しました。

2. aacraid用のソースを展開
IBMのServerRAID supportCDからソースを展開しました。
linux/sata/driver/aacraid-1.1.5-2387.rpmをインストールすると、
/opt/Adaptec/aacraid/以下にファイルが出来たので、この中の
/opt/Adaptec/aacraid/aacraid_source.tgzを、
/usr/src/linux-2.6.9-i586/drivers/scsi/aacraid

/usr/src/linux-2.6.9-i686/drivers/scsi/aacraid
に展開しました。

3. モジュールの準備
インストール時のカーネルがi586だったので、i586版のモジュールも
必要みたいです。
なので、2.6.9-22.EL i586, 2.6.9-22.ELsmp i586, 2.6.9-22.EL i686,
2.6.9-22.ELsmp i686 の4種類のモジュールを作成しました。

3.1 2.6.9-22.EL i586 用のモジュール作成

# cd /usr/src/linux-2.6.9-i586

初期化します
# make mrproper

i586用コンフィグファイルコピー
# cp configs/kernel-2.6.9-i586.config .config

Makefileの4行めぐらいのEXTRAVERSIONを以下のように編集
EXTRAVERSION = -22.EL

.configを再作成
# make oldconfig

モジュールコンパイル
# make modules

出来たモジュールのstripと確認
# cd drivers/scsi/aacraid
# strip --strip-debug aacraid.ko
# strings aacraid.ko | grep vermagic
vermagic=2.6.9-22.EL 586 REGPARM 4KSTACKS gcc-3.4
ってなっていたらば完成なので、
# mv aacraid.ko aacraid.ko-2.6.9-22.EL-586
と退避しておく

3.2 2.6.9-22.ELsmp i586 用のモジュール作成

コピーするコンフィグファイルが、kernel-2.6.9-i586-smp.config
になって、
MakefileのEXTRAVERSIONが以下のようになる以外の手順は3.1と同じ
EXTRAVERSION = -22.ELsmp

で、最後の確認の所で、
# strings aacraid.ko | grep vermagic
vermagic=2.6.9-22.ELsmp SMP 586 REGPARM 4KSTACKS gcc-3.4
で完成なので、
# mv aacraid.ko aacraid.ko-2.6.9-22.ELsmp-586
と退避しておく


3.3 2.6.9-22.ELsmp i686 用のモジュール作成

最初に作っておいた、/usr/src/linux-2.6.9-i686で作業します。

コピーするコンフィグファイルが、kernel-2.6.9-i686.config
になる以外は、3.1と同じ手順で作業して、最後の確認の所で、
# strings aacraid.ko | grep vermagic
vermagic=2.6.9-22.EL 686 REGPARM 4KSTACKS gcc-3.4
ってなっていたらば完成なので、
# mv aacraid.ko aacraid.ko-2.6.9-22.EL-686
と退避しておく


3.4 2.6.9-22.ELsmp i686 用のモジュール作成

コピーするコンフィグファイルが、kernel-2.6.9-i686-smp.config
になる以外は、3.2と同じ手順で作業して、最後の確認の所で、
# strings aacraid.ko | grep vermagic
vermagic=2.6.9-22.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
で完成なので、
# mv aacraid.ko aacraid.ko-2.6.9-22.ELsmp-686
と退避しておく。


4 ドライバディスク作成

4.1 ベースを作成
適当なディスクをベースに作成します。
私は、IBMのServerRaidのCD内の、aac-linux-i686-rhel4.imgを
使いました。

4.2 モジュールファイルの作成
フロッピをマウントすると、modules.cgzというファイルがあります。
これを差し替えればOKなのです。
このファイルは、モジュールをcpioでまとめて、gzipしたものだそうです。

上書きするので、展開は必要ないですけれど、展開は、
# gzip -dc modules.cgz | cpio -id
で出来ます。

作成には、まず適当なディレクトリを作って移動してから、
# mkdir 2.6.9-22.EL 2.6.9-22.ELsmp
# mkdir 2.6.9-22.EL/i586 2.6.9-22.EL/i686
# mkdir 2.6.9-22.ELsmp/i586 2.6.9-22.ELsmp/i686
とディレクトリを作ります。

それから、3で用意した4つの*.koをそれぞれのディレクトリに、
aacraid.koという名前に戻してコピーします。
この時点で、このディレクトリには、以下のファイルがあります。
# find -name *.ko
./2.6.9-22.ELsmp/i686/aacraid.ko
./2.6.9-22.ELsmp/i586/aacraid.ko
./2.6.9-22.EL/i686/aacraid.ko
./2.6.9-22.EL/i586/aacraid.ko

これを、modules.cgzにまとめるために、以下のコマンドでまとめます。
# find -name *.ko | cpio -oH crc | gzip -9 > modules.cgz

これを、フロッピに書き戻せばドライバディスクの完成です。

CentOSのインストーラ起動時に、
linux ddで、ドライバディスクがある事を指定して、今作ったディスクを
読み込ませれば、無事にServerRAID 7tを認識させる事が出来ました。

moni
会議室デビュー日: 2006/01/30
投稿数: 4
投稿日時: 2006-02-03 14:50
今チェックしていたらば、initrdイメージにはドライバディスクから読み込ませた
作成したaacraid.koが入っていましたが、/lib/modulesには、もともとのインストールパッケージのモジュールが入ってしまうようです。

なので、lib/modulesの下の各ディレクトリにもそれぞれのバージョンのファイルを
コピーしました。
1

スキルアップ/キャリアアップ(JOB@IT)