さて前回、「組み込み機器の無線LAN対応」というテーマについて、主にハードウエア面から見た我々サイレックス・テクノロジーの「お仕事」を紹介致しました。今回は第2弾として、ソフトウエア面から見た「無線屋さんのおしごと」を紹介いたします。

前回紹介したような数々の困難を乗り越えて、無線LAN対応のハードウエアを完成させたとしましょう。次に問題になるのは、それを動かすドライバの入手です。PC用に市販されている無線LANモジュールの場合、PC(Windows ないし Mac)用のドライバはメーカーから提供されていますが、組み込みOS用のドライバはどうでしょうか?

 iTRONやVxWorksなど特殊な組み込み用RTOSのドライバは、チップやモジュールのメーカーからは供給されていないと思ってまず間違いありません。Windows CE用のドライバは提供されていることもありますが、ない場合の方が多いです。

ドライバの実装は自己責任

 では、Linuxはどうでしょうか?これは大抵の場合メーカーからは提供されておらず、オープンソース・プロジェクトからその製品に適合する(であろう)ドライバをダウンロードして使うことになります。しかし同じLinuxであっても、カーネル・バージョンによってドライバAPIの仕様が異なります。特にカーネル・バージョン2.6.26を境として無線LAN向けのAPIの拡張(nl80211)が行われているため、これを前提としたドライバは2.6.24以前のカーネルでは動作しません。しかし新しければ良いという訳でもないのがLinuxカーネルの困ったところで、2.6.24 で動作確認されていたドライバが 2.6.38では一部の機能が動かなくなってしまった、という事も起こり得ます。

 また、CPUアーキテクチャによってもドライバの動作が異なってくるため、Intel PCで動作確認されているドライバが他のCPU(ARM、MIPS、PowerPC、SuperH など)で動く保証もありません。「動くかもしれない」のですが、個々の組み合わせ事例について誰かが責任を持って動作検証してくれる訳ではありません。オープンソースの宿命として、動作検証は原則としてユーザーが自らの責任で行う必要があるのです。