[26077]  USB-DFU1と返答するボード結果報告
投稿者:ひばり さん   2001-07-15 01:45:08
先のスレットでは、皆様方に大変御世話になりました。m(__)m
就きましては、先に教えていただいた知識を基に、当方なりの接続を試みた結果をここに報告いたします。
以下は、340MBのHDDを付けてみた場合の結果です。
前スレットにて訓えていただいた、
http://support.microsoft.com/support/kb/articles/Q257/7/51.ASP
よりドライバーを落としてきて、解凍した中のinfフォルダにあるUmss.infを
ノートパットなどで開いて、以下のように編集します。
[Microsoft]に
%USBVID_04C8&PID_1001.DeviceDesc%=USB-DFU1.install,USBVID_04C8&PID_1001
と追記
[Strings]に
USBVID_04C8&PID_1001.DeviceDesc="USB-DFU1"
を追記、上書きしてから、USB-DFU1の接続時のインストール作業で、編集したファイルを指定し、
USB-DFU1 を選択しすると、無事ドライバーのインストールは終了し、再起動するのですが、
上手く認識されておらず、!マークがついた状態で、接続してあるはずの、
340MBのHDD(HDD電源はPCより供給)は認識されてい無い状態です。

ちなみに、以下を2項目を新規に追記し
[USB-DFU1.install]
CopyFiles=umss.files, umsspdr.files
AddReg=umss.addreg

[USB-DFU1.install.HW]
AddReg=cb.addreg.HW
編集したファイルを指定し、USB-DFU1 を選択すると、
USB Mass Storage Sample Driver Disk のラベルが付いたディスクを挿入して[OK]を押してください。
と出てきてしまい、要求されたファイルに該当する、UMSS.SYSを探すのですが、存在せず、それ以上先に進めませんでした。
これは自己で、何処かのファイルを参考に造らないといけないのでしょうか?
いずれにせよ、HDDの接続では、ファイルが足りないらしく上手く認識できませんでした。
PC/AT機側、PC-98側、それぞれ試しましたが、結果は同じでした。
やっぱり、このボードは、コニカ製のMOしか認識させられないのでしょうか、残念。
  1. 毎黒仮節渡万 さん   2001-07-15 09:16:48
    %USBVID_04C8&PID_1001.DeviceDesc%=SonyCDRW.install,USBVID_04C8&PID_1001

    でどうでしょうか? サンプルではImationLS-120とかSonyCDRWとか、他のメーカーでは使えなさそうなラベルを使っていますが、そんなことはありませんので。

    って、あー! このサンプル、バイナリ付いてないじゃん…(滝汗)。

    作るので、ちょっと待っててください(^^;;;;; 今DDK入ってないから…。
  2. 毎黒仮節渡万 さん   2001-07-15 09:34:07
    超特急で作りました。下記のlzhに含まれる二つのファイル(umss.sysとumsspdr.pdr)を、infがあるのと同じ場所にコピーしてください。

    http://www.netlaputa.ne.jp/~mychro/pc/lib_prog/umassbin.lzh
  3. ひばり さん   2001-07-15 19:17:08
    毎黒仮節渡万 さん超特急な対応恐れ入ります。m(__)m
    で、いろいろ試してみました。おかげさまで、ボード自体に関する!の問題は、無事解決しました。

    しかし、ご指摘のとうりにしても(PC/AT機とPC-98では、USBVID_04C8&PID_1001の部分が違っているのでそれぞれ、ユニットに該当する様に書き換え)、やはり、変換ユニット自体は上手く認識されているにも関わらず、残念ながら、その先にあるHDDは依然見えません。
    ま、ボードだけでも正常認識できたと言う事では、毎黒仮節渡万さんの協力もあり。第一関門は何とか突破できたということで、
    しかしながら、どうやれば、ユニットより先のHDDを認識できるのだろうか、
    DISKINIT はWINDOWS上では不可だし、かといって、WINDOWS無しでは、USBは認識しないし。FDISK も試すが、やはり、これにも、認識はされてい無いです。う〜ん・・・
  4. 毎黒仮節渡万 さん   2001-07-15 20:27:31
    えーと、USBのIDが取得できているだけで、その先のドライブへのアクセスはできていないと思われます(^^; できていれば、仮想デバイスがもう一つ検出され、umsspdr.pdrが読み込まれるはずです。その時PnPの検出ダイアログには、infの最下行にある「USB Mass Storage Device」が表示されるでしょう。

    さて、ユニットの仕様をある程度知る必要がありますね。

    http://www.netlaputa.ne.jp/~mychro/pc/lib_prog/usbview.lzh

    中のusbview.exeで、メニュー「Options」の「Config Descriptors」をチェックして、「File」−「Refresh」として表示を更新した後、、USB-DF1Uを探して、その"Interface Descriptor:"の下、

    bInterfaceClass:
    bInterfaceSubClass:

    この2つがどうなっているか、お書きいただけないでしょうか。

    USBストレージは基本的に全てSCSIコマンドでやり取りが行なわれるため、IDE機器に対しては、コマンド変換をする必要があり、プログラムが少々複雑になり、サイズも大きくなってしまいます。
    そのため、HDDだけ或いはATAPIだけ、という場合もあるので、その辺は覚悟ください。どちらでも使えるものもありますが。

    でもまあ、せっかく上記のようなツールがあるので、ソフトウェアから、SCSIコマンド自体の転送方式を探ってみましょう。それを合わせてもダメなら、ATAPIの機器を接続して、それでもダメなら、壊れてます(^^; ATAPI機器が名前だけでも取得できるようなら、ATAPI専用ということになるでしょうし、結論は出せるはずです。

    なお、USB Mass Storage Deviceに関する詳しい情報が、

    http://www.netlaputa.ne.jp/~mychro/pc/lib_prog/usbview.lzh

    この方のページのBeOS関係の中に書かれてありますので、よろしければ。
  5. ひばり さん   2001-07-15 22:51:22
    >それを合わせてもダメなら、ATAPIの機器を接続して、それでもダメなら、壊れてます(^^;
    済みません、詳しく書き損じていた様で、この変換ボードですが、SCSIをUSBに変換する物で、IDE系の機器は直にはつなげられないので、ここら辺の心配は無いかと。
    それと、ボードが認識されたときは、ハードディスクコントローラーとして認識されています。
    その他に付いては、只今実験検証中、しばし御待ちを。
  6. ひばり さん   2001-07-16 00:18:45
    どうも、このボードは不安定みたいで、また、!が出てきてしまい、上手く認識できない状態に、[USB-DFU1.install.HW]の項目を書かない場合は、ハードディスクコントローラーとして認識されるのは解ったのだが、
  7. ひばり さん   2001-07-16 00:40:27
    なお、USB Mass Storage Deviceに関する詳しい情報を読んでみて、クラス別け〜ということなので、新たに、infの基の構文をMass Storage Deviceを基本にして書き直しドライバを再認識させた所、上手く認識したので、続けてユニットの仕様を調べてみました。(いずれもPC-98上にて)その結果ですが、
    bInterfaceClass: 0x08
    bInterfaceSubClass: 0x01
    となっていました。
    って事で、クラスに関する設定は、8つまりMass Storage Deviceを基本に書き直したドライバが上手く行ったのは、このクラスが再度合致したからだと言う理由でしょうかね。
    (最初の方で理解せず、いろいろやっているときに偶然、この記述使ったときに認識していたのかな)
  8. 毎黒仮節渡万 さん   2001-07-16 09:47:27
    ごめんなさい〜、一番必要なのは"bInterfaceProtocol"でした。
    ここにCBIとかBulkOnlyとかのSCSIコマンド送信方式があるのです。

    でもとりあえず、認識した…のかな?
  9. ひばり さん   2001-07-17 01:51:13
    いえ、認識できているのは、やはりボードのみで、ボードはちゃんと認識できても接続してあるSCSIのHDDは何処にも姿を現してくれないのです。
    (不明なデバイスとしても出てこない。)やはり、他にも何か設定が必要なのかと。
    ちなみに、
    [USB-DFU1.install]
    CopyFiles=umss.files, umsspdr.files
    AddReg=umss.addreg

    [USB-DFU1.install.HW]
    AddReg=cb.addreg.HW
    の二種の記述をしたときは、ハードディスクコントローラーとしてでは無く、USBコントローラーの項目に姿を現します。(ドライバを入れて無い時も、不明なデバイスとして、ここに現れています。)やはり、毎黒仮節渡万さんの言われている、bInterfaceProtocolなるものの設定をしないと変換ボードより先のHDD自体を認識できないのではないかと、
    どなたか、"bInterfaceProtocol"について、詳しい方、解説ページ等でも構いません、知っている方居りましたら、訓えて頂けないでしょうか。m(__)m
  10. 毎黒仮節渡万 さん   2001-07-17 02:12:02
    usbview.exeというのはDDKに入っているサンプルなんですが、これはドライバがなくても見られます。設定は保存されないので、毎回毎回起動ごとに"Config Descriptors"と"Refresh"の操作が必要ですのでよろしく。

    それで、先ごろから書いているbInterface〜というのは、デバイス自体が持っている値であって、設定するものではありません。

    そのデバイスが持っている値が、仕様を表しているので、それに合わせてinfの方も書き直さなければならないなあ、というお話なのです。

    bInterfaceProtocolの場合、SCSI(系)コマンドの転送方法です。これが合わないと、USBとしての基本的なやり取り(接続の認識、リセット、bInterface〜のようなディスクリプタ取得など)の先が続けられません。SCSIコマンドの送り先を間違ってしまうからです。

    # これが"Addreg=xxx.addreg.HW"のxxxに入るものを決めます。
    # cbかcbiかbulkonlyか。

    USBの基本的なやり取りは、壊れていない限り、必ずできるようになっています。そのためID(ベンダーIDとプロダクトID)は確実に取得できるので、infファイルを見て、名前を当てはめるところまでは、ドライバがなくてもinfだけでできるのです。

    # ディスプレイのinfファイルのように、設定だけを含み、
    # デバイスドライバを持たないものもあるわけです。

    というところで、デバイスマネージャーの「ドライバの詳細」はどうなっていますか? bInterfaceProtocolと合わせてお願いします。
  11. ひばり さん   2001-07-17 18:21:03
    ドライバの詳細では、ハードディスクコントローラーとして正常に認識(ボード部分のみ)
    bInterfaceProtocolは、 0x00 となっております。御願い致します。m(__)m
  12. 毎黒仮節渡万 さん   2001-07-18 10:04:26
    00ということは、CBIになります。CBIのSCSI変換とはけっこう珍しいかも。

    [Microsoft]
    %USBVID_04C8&PID_1001.DeviceDesc%=USB-DFU1.install,USBVID_04C8&PID_1001

    # つまり私が言ったSonyCDRWは忘れてください(^^;

    [USB-DFU1.install]
    CopyFiles=umss.files, umsspdr.files
    AddReg=umss.addreg

    [USB-DFU1.install.HW]
    AddReg=cbi.addreg.HW
  13. ひばり さん   2001-07-19 00:20:28
    ステハンさん有難うございます。m(__)mステハンさんの紹介してくれたページの基盤その物なのですが、なぜかウチの場合は、このページのように不明なデバイスとして認識されてしまい、ドライバの更新をしてAD-M640SUを指定しても、上手くいかないのです。

    毎黒仮節渡万さん有難うございます。m(__)m早速設定試して試してみましたが、USB Mass Storage のデバイス認識までは上手くいっても、USB Mass Storage の方に!マークがついてしまう状態です。もしくは、USB Mass Storage の認識時に、PCがフリーズ状態です。
    同じ様にやっても、アダプタ自体に!がついてしまうこともある。(難とも不安定過ぎる (T.T) )
    それと色々やっていて気付いたのですが、SCSIデバイスをHDDでも別の物や、SCSIデバイス無しの状態だと、%USBVID_XXXX&PID_XXXX.DeviceDesc%=SonyCDRW.install,USBVID_XXXX&PID_XXXX
    のXXXXの部分値が違ってきます。
    それと、ボードに何かしらのSCSIデバイスをつけたままだと、レジストリのこのUSBデバイスの部分とWINDOWS¥INFフォルダ内の Drvdata.bin Drvidx.bin usb.PNF を消して、USB情報などをクリーンな状態にしてインストールしても、ユニバーサル シリアル バス コントローラーの項目に不明なデバイスとして認識されてしまいます。

    自動で、USB-DFU1としてしっかり認識させるには、まず、ボード単品で接続しないといけないことが最低限の条件と判明しました。 (ボード単品ですら上手く認識しない事も多々ありますが、)
  14. ひばり さん   2001-07-20 02:47:24
    ボード単品で正常認識?
    今までの、有力な情報をまとめると、AD-M640SU用のドライバが、そのまま行けると言う事で、このドライバで上手く行くと、MicroStaff USB SCSIとして認識され、リムーバルディスクがエクスプローラに現れるらしい。のですが、IDが違う為に認識できなかったので、認識できるよう、Msfuscsi.inf内のデバイスのIDに関連する項目に、認識に必要なIDを付けたした所、ボード単品の場合ならば、MicroStaff USB SCSIとして認識されるようには成ったのですが、やはり、HDD接続時は、上手く行かない状態です。
    ちなみに、正常認識されている時の状態ですが。(ボード単品のみ、SCSIデバイス無し状態)
    ドライバの詳細は、SCSIコントローラーの項目に、MicroStaff USB SCSIとして正常認識
    &ユニバーサル シリアル バス コントローラーに、Konica omdとして正常認識
    bInterfaceProtocolは、0x00 です。
    しかし、何故ウチの場合はSCSIデバイスつけるとコケるのか未だに解明出来ず。(IDがボード単品の時とは、変わるのが原因なのだが、これに合う様に設定しても上手く行かない。)