mpt_scstビルドに悪戦苦闘
2011年5月 1日(日) 01:27 JST
閲覧数 2,741
LSI LogicなFCカードでSCST Targetとして動作させるのに必要なドライバ。
openfilerでは、バージョンアップしたらmpt_scstは無くなってしまいました。
まだAlpha版なので仕方ないですが、かなり不安定です。。。
最新版でビルドしなおせば使えるかと思いビルドの日々が続いた訳ですが、やはり安定動作には至りませんでした。
クライアント側からディスクをフォーマット中に、Linuxがゲロ吐いてしまう。。。
とりあえず、しばらくバージョンが上がるまでQLogicなカードで待つとしますが、ビルド作業が予想より面倒だったのでメモを残しておきます。
SVNから落としてきたソースからビルドしてみたときのメモ。
利用したKernelは、2.6.32です。
他のバージョンも試したのですが、2.6.33以上ではモジュールビルド時にエラーが発生し、どうしてもビルドできませんでした。
1.0.x系のビルドはREADMEの手順で問題ないのですが、trunkについてはREADME通りではビルドがうまく通らない為、一旦スクリプトでパッチを生成してビルドする方法を利用することになります。
TRACE_MGMT_MINORの定義が無い為、ビルドが通りません。
追加してしまいます。scst本体側とmpt_scstとで開発バージョンの同期が取れていないのでしょうか。。。
ビルドするときは、64bitでビルドするか32bitの場合はHIMEMをOFFにしてください。
32bitでHIMEM有効な場合、scst handlerがデバイスにアタッチできないなんて問題がでます。
導入後利用する際は、mptfcをロード後、mpt_scstをロードする形になります。
また、mptfcをTarget Modeで動作させる為、procを使って動作モードを変更させます。
scstadminのビルドは、sys版ではなくproc版をビルドし利用。
sys版だとバージョンが合わないとずっと怒られつづけます。
openfilerでは、バージョンアップしたらmpt_scstは無くなってしまいました。
まだAlpha版なので仕方ないですが、かなり不安定です。。。
最新版でビルドしなおせば使えるかと思いビルドの日々が続いた訳ですが、やはり安定動作には至りませんでした。
クライアント側からディスクをフォーマット中に、Linuxがゲロ吐いてしまう。。。
とりあえず、しばらくバージョンが上がるまでQLogicなカードで待つとしますが、ビルド作業が予想より面倒だったのでメモを残しておきます。
SVNから落としてきたソースからビルドしてみたときのメモ。
利用したKernelは、2.6.32です。
他のバージョンも試したのですが、2.6.33以上ではモジュールビルド時にエラーが発生し、どうしてもビルドできませんでした。
1.0.x系のビルドはREADMEの手順で問題ないのですが、trunkについてはREADME通りではビルドがうまく通らない為、一旦スクリプトでパッチを生成してビルドする方法を利用することになります。
# ./scripts/generate-kernel-patch -m 2.6.32 > 2.6.32.patch生成されたパッチをKernelに適用して、一箇所ソース(include/scst/scst_debug.h)に修正を入れます。
TRACE_MGMT_MINORの定義が無い為、ビルドが通りません。
追加してしまいます。scst本体側とmpt_scstとで開発バージョンの同期が取れていないのでしょうか。。。
#define TRACE_MINOR 0x00000200 /* less important events */ #define TRACE_MGMT 0x00000400 #define TRACE_MGMT_MINOR 0x00000800 #define TRACE_MGMT_DEBUG 0x00000800 #define TRACE_SCSI 0x00001000あとは、mptfcとmpt_scstの両方、scstをビルドする形になります。
ビルドするときは、64bitでビルドするか32bitの場合はHIMEMをOFFにしてください。
32bitでHIMEM有効な場合、scst handlerがデバイスにアタッチできないなんて問題がでます。
導入後利用する際は、mptfcをロード後、mpt_scstをロードする形になります。
また、mptfcをTarget Modeで動作させる為、procを使って動作モードを変更させます。
# echo "target:enable" > /proc/scsi_tgt/mpt_scst/0また、mpt_scstではWWNでの制御ができないのか、scstadminでのグループ登録は意味を持たず、デバイスとLUNの登録だけでInitiatorからマウントできました。
scstadminのビルドは、sys版ではなくproc版をビルドし利用。
sys版だとバージョンが合わないとずっと怒られつづけます。