作業の進捗
その他の実装予定機能については、作業が進んでいる。そうした作業のほとんどでリバースエンジニアリングが必要になることから、REnouveauや2D機能用のValgrindプラグインのようなツールが使われることが多い。
Nouveauプロジェクトでは、もともとATI Radeonカードのリバースエンジニアリング用に作られたツールMmioTraceも使用されている。これはカーネル内部のメモリマップドI/Oのアクセスのトレースを行うものだ。「確かにNvidiaは重い作業の大半をカーネルモジュール内で行っているのだが、当初NouveauにはNvidia.ko内部で何が起こっているのかの確認に使えるツールがなかった。MmioTraceのようなツールがなければ、今の状態にはたどり着けていなかっただろう」(Skeggs氏)
またNouveauでは、Utah-GLXやNVClockなど、Nvidiaカードで動作するほかのソフトウェアに関する情報を蓄積している。さらに、BeOSベースのオペレーティングシステムHaiku用のNvidiaカードドライバを開発しているプログラマたちとの情報共有も行っている。しかし、Marchesin氏は「既存の3D対応ドライバは旧式のカードでしか動作しない。新型のカードについては、参照できる情報がまったくない」と話す。
プロジェクトのほかの部分では、フリーのグラフィックドライバで培われたチームの過去の経験がきわめて貴重な役割を果たしている。「大局的な設計にかかわる多くの選択が、Nvidiaのハードウェア設計とフリーのグラフィックドライバにおける我々のこれまでの経験の双方に導かれる形で行われてきた」とMarchesin氏は語る。「私の知る限り、我々のドライバは基本的な2D機能にもカーネルモジュールを使用する最初のフリーソフトウェアドライバだった。このため、コードのより多くの部分をカーネルに移すことができ、さらに複数のアプリケーションでのカードの共有がこれまでよりも効率的に行える」
Nouveauプロジェクトには、フリーソフトウェア財団(Free Software Foundation)からのアプローチがあった。それは同財団の優先プロジェクトのリストに加えるかどうかをメンバーに問い合わせるもので、Gnash、フリーのFlashプレーヤ、LinuxBIOSのようなプロジェクトはこのリストに名前が追加されたことで注目度が高まっていた。だが、Skeggs氏はこの件について次のように語る。「過剰な注目が集まるのを避けたいことを主な理由として、我々はこの申し出を断った。Nouveauはまさしく開発者のためのプロジェクトであり、ユーザから非常に有用だと認められるようなプロジェクトではないからだ」。そういえば、Marchesin氏は「このことは、すぐにSlashdotのネタになってしまった…」とも言っていた。
Nouveauが情報提供を一切受けていない情報源の1つが当のNvidiaである。プロジェクトの初期に、Skeggs氏はマルチディスプレイ・サポートを有効にするためにNvidiaにドキュメントの提供を求めた。「だが、現時点で提供できるドキュメントは皆無だとの回答が返ってきただけだった。そんな回答をよこすくらいなら、完全に依頼を無視してくれたほうがまだマシだったね」(Skeggs氏)
今後もNvidiaからの支援はまったく得られないだろう。チェコのWebサイトABCLinuxUによるインタビュー記事には、NvidiaのUNIXソフトウェア担当ディレクタAndy Ritger氏の「Nouveauには協力も妨害もしない、というのがNvidiaのスタンスだ」という言葉が記されている。NvidiaのGNU/Linuxサポートは、引き続きnvドライバと既存のプロプライエタリなドライバに限られるだろう、ともRitger氏は述べている。
しかし、こうしたNvidiaからの支援の欠如はMarchesin氏の障害にはなっていない。「ベンダの協力がなくてもドライバが書けることを我々は示さなければならない。このプロジェクトを通じて、私はそれを試みているところだ」
プロジェクトの支援と今後の動向
Nouveauは依然として開発者のためのプロジェクトだが、Skeggs氏は、一般のユーザでも自分のマシンでREnouveauとMmioTraceを実行して出力結果を送ることでプロジェクトへの協力が可能だと話す。すでにNouveauはさまざまなカードからかなりの情報を取得しているが、「同じシリーズのカードのチップセットどうしでも若干の違いが見られることがある」とSkeggs氏は述べている。
これについてMarchesin氏は次のように補足する。「我々は常に新しい開発者を求めている。かなりのプログラミングスキルを持っていて、グラフィックドライバ向けプログラミングの習得に関心があるなら、我々のIRCチャンネルが役に立つだろうし、そこに参加しているだけで必要な情報のほとんどが得られるはずだ」
Nouveauの最終的な目標は「きちんと機能するオープンソースのNV04以降のNvidiaチップ用2D/3Dドライバを提供すること」だとSkeggs氏は説明する。
では、その目標が達成されたらどうするのだろうか。「そうだね、いつになっても改善すべき点や修正すべきバグはあるものだ。それを別にしても、きっとNvidiaは我々が取り組むべき新しいチップを出してくるだろう」(Skeggs氏)
「我々のドライバとバイナリ版ドライバとのベンチマーク比較が行われることも期待している。そうなれば、ドライバのパフォーマンス面にもっと注力しなければならなくなるだろう」(Marchesin氏)。その一方では、大勢の潜在的ユーザがNouveauドライバの完成を待ち望んでいる。
Bruce Byfieldは、Linux.comとIT Manager's Journalに定期的に寄稿しているコンピュータジャーナリスト。
