次のページ 前のページ 目次へ

3. 資料の入手

「まずは敵を知れ」です.

3.1 デバイスの資料

資料は,一次資料に近ければ近いほど良いです. 最近ではチップベンダの web より PDF 形式のマニュアルがダウンロードできると思います.

ここで忘れてはならないのは errata です. 別ファイルになっている場合もあります.

あと,CPU については,チップベンダの資料の他に,そのアーキテクチャについて解説された書籍も入手したほうが良いかもしれません.

3.2 各種規格

具体的には PCI や PCMCIA, USB などのことです. USB の場合は一次資料はオープンなので,これは web からダウンロードできます.

一次資料が無い場合は,トラ技スベシャルや別冊インターフェースなどの書籍・ムックなどが参考になります. また,一次資料が英語なので読解がヘビー,という場合,このような書籍で予習してから一次資料に立ち向かう,という手立てもあります.

3.3 GPL と NDA

NDA とは Non Disclosure Agreement の略です. 非開示契約,つまり,「他言無用」という契約の元に情報を開示することを指します.

これが GPL と食い合わせの悪いことはすぐに想像が付きますね. 場合によっては NDA は結ばずに,公表されている情報だけでプログラミングする必要があるかもしれません.

が,必ずしも NDA と GPL は排他的なものではありません. GPL は,ハードウェアというか,そのプラットフォームまでには及ばないので,NDA の条件の元に開示された情報により,そのシステムが GPL と衝突するとは限りません. また,NDA で得た情報を元にしてプログラミングしたとしても,コードの中にNDA の対象となる情報が含まれてなければ,矛盾は生じません(この判定はかなり難しいとは思いますが).

最近では,このような NDA ベースでしか資料を開示しないベンダの中でも 「Linux が動きます」と公言しているベンダが増えてきています. Linux カーネルとの GPL ライセンスとの整合性については,

  1. 全く頓着していない
  2. ドライバはカーネルモジュールでバイナリ提供
  3. ユーザーズマニュアルは NDA ベースだが Linux カーネルのソースコード開示は OK
などの方法で解決しているようです.

いずれにしても,「リリースすれば誰かが改良してくれる」などのオープンソースならではの旨味は味わえない構造になっています. また,NDA を結んでしまっているので,Linux カーネルのソースコードの修正に関しても事実上制限がかかることになります.

というわけで,このようなチップは,他に対してよほどの優位性が無い限りは採用すべきではないでしょう. 採用する場合でも「Linux カーネルのソースコードを問題なく開示できるか」と,常に注意が必要です. 私の経験では,「開示 OK」と言いつつも,サンプルソースコードの先頭に「CONFIDENTIAL」の文字があり,修正を依頼したことがありました.


次のページ 前のページ 目次へ