鈴木 建です。再度の質問お許し下さい。

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 以外に問題あり。
と切り分けられず、分からなくなってしまいました。

アドバイス頂ければ幸いです。

鈴木 建

メールによる返信