鈴木 建です。再度の質問お許し下さい。
From: "Hidetoshi Shimokawa" <[EMAIL PROTECTED]>
Subject: [FreeBSD-users-jp 90697] Re: LaCie Biggest F800 (RAID)
Date: Thu, 17 May 2007 17:30:44 +0900
> > 最初の方のpass0のところを見ると、外付けRAID HDDをda0として認識しているように思えます。
> > そして、umass0の``BBB reset failed''を機に、おかしくなるように見えます。
> >
> > これってひょっとして、純粋にusbの問題ってことでしょうか?
> > それならFireWire800を使うことで解決しそうで楽なのですが。
>
> そうとも限りません、 device が support していない command を CAMが要求して
> device がおかしくなってしまい、 USB stack が reset を試みている可能性もあります。
> この場合は一概に USB stack が悪いとは言えません。
> (それで挙動がおかしくなる device が悪いと思います)
なるほど。ありがとうございます。
> そのような device のために quirk があるのですが、
> 上記の message 中の Serial Number がおかしな気もするので、
> CAM_QUIRK_NOSERIAL 問題なのかもしれません。
/usr/src/sys/cam/cam_xpt.c の中身をいじってみました。
static struct xpt_quirk_entry xpt_quirk_table[] = の項目の中に
{
/*
* LaCie Biggest F800
*/
{
T_DIRECT, SIP_MEDIA_FIXED, "LaCie Biggest",
"F800", "*"
},
CAM_QUIRK_NOSERIAL, /*mintags*/2, /*maxtags*/255
},
を加え、カーネルを再構築し、起動しましたが認識できていない状況です。
(mintags=maxtags=0や、T_DIRECTのかわりにT_ANYなども試しましたが、同じ状況でした。)
ただ、少し気になるのは、dmesgの結果が
umass0: BBB reset failed, TIMEOUT
umass0: BBB bulk-in clear stall failed, TIMEOUT
umass0: BBB bulk-out clear stall failed, TIMEOUT
pass0 at umass-sim0 bus 0 target 0 lun 0
pass0: <LaCie Biggest F800 1.40> Fixed Direct Access SCSI-4 device
pass0: Serial Number 00000000000000
pass0: 40.000MB/s transfers
GEOM: new disk da0
ATA PseudoRAID loaded
とserial numberが出てきています。
(CAM_QUIRK_NOSERIAL でserial numberを問い合わせないようにしているはずなのに)
ということで原因は
1. cam_xpt.c の書き方が悪い。
2. CAM_QUIRK_NOSERIAL 以外に問題あり。
と切り分けられず、分からなくなってしまいました。
アドバイス頂ければ幸いです。
鈴木 建