[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1323] Re: devlst1a.



  こんにちは、川合です。


Koyanagi Masaaki さんは 2000/12/28 09:07:06 の「[OSASK 1321] dev
lst1a」で書きました:

>http://homepage1.nifty.com/dreaming/osask/devlst1a.lzh
>に Windows 95/98 の inf ファイルからPnP情報を取り出す
>perl スクリプト"convert.pl"と
>ハードウエア判定方法を変更した"devlst1a.c"
>を置きました。

  ありがとうございます。

  ええと、実は、"convert.pl"については僕も似たようなものを作って
いました。でも、公開していませんでした。

  これを公開しなかった理由は、抽出した情報を自由に扱ってよいもの
かどうかの判断が付かなかったからです。

  でも、ツールそのものは公開しても問題ないと考えているので、僕も
公開します。このツールは、windows/inf/drvidx.binからデーターを引
き出します。

    http://www.imasy.org/osask/drvidx.lzh

使い方はこのアーカイブの中にあります。

>ここで ff/ffff/ffffff となっているのは
>inf ファイルにおいては、6つのパラメータの全てを使わずに
>ハードウエアを判定しているようなので、判定に影響しないパラメータです。

  おっしゃる通りです。Windowsでは、12バイトの全てを比較している
わけではありません。Windowsの考え方は、どのドライバーでそのハー
ドウェアを動かすのかを判明できればそれでよい、という立場だから
です。ですから、リビジョンなどはあまりチェックしていません。

  しかし、僕の考え方は異なります。僕はどのドライバーで制御するか
なんていうことはどうでもよくて、純粋にハードウェアを特定したかっ
たのです。この理由はいくつかあります。

  まず、Windows用のドライバーの場合、似たような複数のデバイスの
どれでもコントロールできるように書かれている複合型のデバイスドラ
イバーというものがありえます。その場合、異なる方法でコントロール
しているにもかかわらず、同じドライバーであると判定されています。
Windowsではそれでいいでしょう。しかし、ドライバーを作る側の我々
としては、そういう情報が混じってしまうのは混乱の元になります。

  Windowsは、小さなリビジョンを区別しません。これは、リビジョン
の変化に伴うわずかな拡張には関心が無い証拠です。僕は違います。OS
ASKは、ハードウェアを極限まで利用可能にすることが目的です(利用
しなければいけないというわけではありませんが)。そのためには、た
とえわずかな拡張であっても見逃したくはありません。・・・この具体
的な例を挙げるとすると、たとえば、Athlon用のチップセットAMD 751
のリビジョンです。C4以前ではSuperbypassを有効にできなくて、C5以
降ではSuperbypassを有効にできます。Windowsは、もちろんこんなもの
は区別しません。つまり、Superbypassは常にoffです。これを克服する
ために、Windowsではいくつかのアプリケーションがあり、それを使え
ばコントロールできます。・・・これは、Windowsの不備をアプリケー
ションが補っているといえます。OSASKでは、こういうこともちゃんと
サポートできるようにしたいと思っています。

  Windowsでは、ASUS製のビデオカードでもCreative製のビデオカード
でも中のチップが共通なら、同じハードウェアとして認識されます。デ
バイスドライバーを割り振るという立場からみれば、確かにそれで十分
です。しかし、サブシステムベンダーIDを見ればどちらであるか判定で
きるのに、それをしないのは、僕から見ると怠惰であるように思います
。カードが違うなら、そしてそれがソフトから判定できるなら、特定し
たいというのが僕の考えです。もしかしたら、ASUS製の方にはBIOSに微
妙なバグがあるかもしれません。そういうのが後から分かっても、判定
できないことには対処できません。そういう時の対処の助けになるよう
に少しでも詳しく判定したいと考えているんです。誤解されると困りま
すが、OSASKでは異なるハードウェアであると判定されても同じドライ
バーを割り振ることはありえます。

  最後は、僕の単なる趣味です。Windowsよりも詳しく判定されれば、W
indowsよりもかっこいいような気がするんです。それに、手元に多くの
ハードウェアのリビジョンの情報が集まれば、なんだか楽しいです。

  そんなわけで、Windowsから抽出したデーターを参考にするのは大賛
成ですが、それをそのままdevlistのデーターにするというのには賛成
しません。

>devlist1.c では6つのパラメータ全てが完全に一致することが
>判定条件となっていため、任意のパラメータを許すように
>devlst1a.c で変更しました。devlst1a.c のコンパイルは通したのですが、

  上記の理由のため、12バイトのうち、判定に使わないバイトを設ける
というアルゴリズムにも、申し訳ないのですが賛成しません。

  しかし、僕が賛成しないからといって、それを妨げるつもりはありま
せん。小柳さんのアプローチの方が、ニーズに合っているかもしれませ
ん。何かお手伝いできることがあれば、お手伝いさせていただきます。

>asm をコンパイルできる環境が無かったため、実際のテストはできていません。
>#devlist.exe を作成する方法を知りたいです。

  申し訳ありません。今から説明させていただきます。

  asmは、MASM 6.14でアセンブルしました。アセンブルのオプションは
、以下の通りです。

    ml /c /coff asmfunc.asm

また、devlistはlcc-win32でコンパイルしました。リンカは、lcc-win3
2のものを使いました。

  なお、1月の上旬に、devlistは一般公開を予定しています。このツ
ールは、単にOSASKのためばかりでなく、PCIデバイスの判定ソフトとし
て公開します。そして、そのデーターは他のOS作者やデバイスドライバ
ー製作者にも利用してもらえたらうれしいと思っています。ただ、僕が
ハードウェア情報を集計するのは骨が折れるので、そのうち、希望者を
見つけてその方にお任せしようと思っています。もし、OSASK-MLのメン
バーの中で我こそは、という方がおられましたら、ぜひメールをくださ
い。OSASK-ML内に見つからなければ、一般公募します(見つかるまでは
、僕がやります)。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.or.jp
Homepage http://www.imasy.or.jp/~kawai/