follow me

mpt_scstビルドに悪戦苦闘

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通りではビルドがうまく通らない為、一旦スクリプトでパッチを生成してビルドする方法を利用することになります。
# ./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版だとバージョンが合わないとずっと怒られつづけます。
mpt_scstビルドに悪戦苦闘 | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。