Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.5767】の中の記事をすべて表示しています

【No.5767】のスレッド
10/10/09(土) 22:08:44 投稿者[luna] [No.5767]のスレッド内
【No.5767】 タイトル[TS-XLのHDDホットプラグ] この記事がスレッドの最初です
こんにちは、lunaと申します。
TS-WXLを参考にTS-XLをhackしてみました。
山下様のTS-WXLページでホットプラグがうまくいかないということを書かれておりましたが、
当方では下記の手順でうまくいったのでご参考になれば幸いです。
当方TS-XLのためHDDは4台です。
また、hddを物理的に抜き差ししたときに、
KERNELMOn(SATA plugged)もしくはKERNELMOn(SATA unplugged)
というような感じでKERNELMOnイベントが発生しますので、
KERNELMOn監視スクリプトを作成して下記の手順を自動化することによりホットプラグが可能です。
よろしくお願いします。


1.各HDDの電源を制御(参考事例4つ)
miconapl -a hdd_set_power hdd1 on -> hdd1の電源ON
miconapl -a hdd_set_power hdd2 off -> hdd1の電源OFF
miconapl -a hdd_set_power hdd1 hdd2 hdd3 on -> hdd1,2,3の電源ON
miconapl -a hdd_set_power hdd1 hdd2 off -> hdd1,2,3の電源OFF

2.hdd1〜hdd4を下記のコマンドで認識or認識解除させる
echo "scsi add-single-device 0:0:0:0" > /proc/scsi/scsi -> hdd1を認識
echo "scsi add-single-device 1:0:0:0" > /proc/scsi/scsi -> hdd2を認識
echo "scsi add-single-device 2:0:0:0" > /proc/scsi/scsi -> hdd3を認識
echo "scsi add-single-device 3:0:0:0" > /proc/scsi/scsi -> hdd4を認識
echo "scsi remove-single-device 0:0:0:0" > /proc/scsi/scsi -> hdd1を認識解除
echo "scsi remove-single-device 1:0:0:0" > /proc/scsi/scsi -> hdd2を認識解除
echo "scsi remove-single-device 2:0:0:0" > /proc/scsi/scsi -> hdd3を認識解除
echo "scsi remove-single-device 3:0:0:0" > /proc/scsi/scsi -> hdd4を認識解除

10/10/11(月) 00:11:17 投稿者[山下康成] [No.5767]のスレッド内
【No.5768】 タイトル[Re: TS-XLのHDDホットプラグ] 【No.5767】に対する返信
興味深い情報ありがとうございます。

>1.各HDDの電源を制御(参考事例4つ)

こちらは、私も解析できていたのですが、

>2.hdd1〜hdd4を下記のコマンドで認識or認識解除させる

こちらを見つけられませんでした。
どのスクリプトで見つけられたのでしょうか?
参考までにお教えいただけましたら幸いです。

10/10/17(日) 00:41:50 投稿者[luna] [No.5767]のスレッド内
【No.5779】 タイトル[Re: TS-XLのHDDホットプラグ] 【No.5768】に対する返信
お返事が遅くなってしまい申し訳ありません。
仕事の関係でしばらく家を空けておりました…

ホットプラグの件ですが、
initrd内の「/usr/local/libsys」というファイルに「LibSys_ScsiDeviceControl」という関数があります。
その関数内を参考にしました。

順序としては、
1.HDDを挿入することによりKERNELMOnイベントが発生
  →/usr/local/bin/kernelmon_exec.sh内のSATAイベント
2.kernelmon_exec.shから/usr/local/libsysのLibSys_HddPowerControl関数を実行
3.LibSys_HddPowerControl関数内からLibSys_ScsiDeviceControl関数を実行

という流れで処理しているっぽいです。

10/10/17(日) 08:10:55 投稿者[山下康成] [No.5767]のスレッド内
【No.5780】 タイトル[Re: TS-XLのHDDホットプラグ] 【No.5779】に対する返信
>ホットプラグの件ですが、
>initrd内の「/usr/local/libsys」というファイルに「LibSys_ScsiDeviceControl」という関数があります。
>その関数内を参考にしました。

情報、ありがとうございます。
私も見てみます。