CONFIG_SCSI_MULTI_LUN = y
としてカーネル (OS 中核部,私が使っているのは 2.4.31)
を作りなおせばよい.
@IT
にも解説ある.
実際,
私もやってしまった.
カーネル本体だけでなくカーネルモジュールも作りなおす必要がある.
たしかに認識はする.
CONFIG_SCSI_MULTI_LUN
が設定されてなくてもよいが,
kernel module である
scsi_mod
は
CONFIG_SCSI_MULTI_LUN = y
条件のもとでコンパイルされたやつじゃないとダメ?
よくわからない.
/etc/modules.conf
に
options scsi_mod max_scsi_luns=2
などと設定する.
/etc/modules.conf
の重要な部分をメモしとく (backup):
alias parport_lowlevel parport_pc alias scsi_hostadapter usb-storage alias eth0 e100 #alias ath0 ath_pci options scsi_mod max_scsi_luns=2
options scsi_mod max_scsi_luns=8
とか設定しけば
CONFIG_SCSI_MULTI_LUN
が設定されてないカーネルであっても,
scsi_mod
が (ニセ) SCSI ポートを順番にまわって点検してくれる
(かどうかよくわからない;
上記 scsi_mod コンパイルに関する注意も参照).
options scsi_mod max_scsi_luns=2
はどういうカーネルであっても設定したほうがよいのかもしれぬ.
というのも
「scsi_mod による巡回点検」
にえらく時間かかるからだ.
私が買ったリーダーの場合だと
/dev/sd[a-d]
の 4 個のポートが認識される.
これに SD カードだけ入れて USB ソケットを接続すると
……
どのポートが使われてる/使われてないをチェックしていくのだけど,
「使われてない」とタイムアウトするのにえらく時間がかかる.
/dev/sda
: CF カード
/dev/sdb1
: SD カード
mount
させてみると,
まず /dev/sda
の CF カードの有無をのんびりと点検するので
……
なんとマウントするのに 168 秒もかかる.
mount
に必要な時間はわずか 0.6 秒であった.
options scsi_mod max_scsi_luns=2
と 2
と限定してるのは scsi_mod
が
/dev/sdc
だの /dev/sdd
だのを点検しはじめると,
これまた mount
するのに時間がかかるからである.