Wireless・のおと

無線屋さんのおしごと(2)

ブログ

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

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

iTRON や VxWorks など特殊な組込み用 RTOS のドライバは、チップやモジュールのメーカからは供給されていないと思ってまず間違いありません。Windows CE 用のドライバは提供されていることもありますが、無い場合のほうが多いです。
では、Linux はどうでしょうか?これは大抵の場合メーカからは提供されておらず、オープンソースプロジェクトからその製品に適合する(であろう)ドライバをダウンロードして使うことになります。しかし同じ Linux であっても、カーネルバージョンによってドライバ API の仕様が異なります。特にカーネルバージョン 2.6.26 を境として無線 API の拡張(nl80211)が行われているため、これを前提としたドライバは 2.6.24 以前のカーネルでは動作しません。しかし新しければ良いという訳でもないのが Linux カーネルの困ったところで、2.6.24 で動作確認されていたドライバが 2.6.38 では一部の機能が動かなくなってしまった、という事も起こり得ます。
また、CPU アーキテクチャによってもドライバの動作が異なってくるため、intel PC で動作確認されているドライバが他の CPU(ARM, MIPS, PowerPC, SuperH など)で動く保証もありません。「動くかも知れない」のですが、個々の組合わせ事例について誰かが責任をもって動作検証してくれる訳ではありません。オープンソースの宿命として、動作検証は原則としてユーザが自らの責任で行う必要があるのです。

では「無線 LAN 機能の動作検証」とは、具体的に何をするのでしょうか。アクセスポイントにつながってパケットが送受信できれば良いような気もしますが、「アクセスポイント」と一口に言っても、世の中には星の数ほど機種があります。一体どの機種とどの機種で確認すれば「常識的な範囲での相互接続性」が検証できたと考えられるのでしょう。無線 LAN には 11b, 11g, 11a, 11n など各種の通信モードがあり、WEP, WPA/TKIP, WPA/AES, WPA2 などの暗号モードがあり、Open, Shared, EAP などの認証モードがあります。EAP には更に細かく TLS, PEAP, TTLS, LEAP, FAST などのプロトコルがあります。この組合わせを全て確認することを考えると憂鬱になりますし、ましてこの作業を検証対象のアクセスポイント機種だけ繰り返すことを考えると途方に暮れてしまいます。

まぁ、頑張って検証作業を進めるとしましょう。これで問題が出なければそれに越したことはないのですが、たとえば『A社のBというアクセスポイントとの組合わせで EAP-LEAP が動作してない』などという問題が出るかも知れません。しかしサポートを求めても、アクセスポイントの製造元からは「チップかドライバの問題でしょう」と言われ、チップメーカからは「アクセスポイントの問題だ」と言われるかも知れません。
オープンソースのドライバなら、コミュニティに連絡すれば誰かが「あぁ、それはこういうことだよ」と答えを教えてくれるかも知れませんが、教えてくれる保証もありません。まして特殊な CPU を使っていたり、カーネルにカスタマイズが入っている場合は「誰か知っている人が助けてくれる」可能性はますます少なくなります。もちろんオープンソースなのだから自分で直せればそれに越したことはありませんが、それが簡単にできる事かと言えば話は別です。

無線セキュリティ動作に関しては更にもう一つ、ややこしい事情があります。上に述べた WPA や EAP、WPS(WiFi Protected Setup)などの機能はチップやドライバにまとめて実装されている訳ではなく、時として OS 側に実装されていたり、あるいは OS とドライバの間に入るミドルウェアとして実装されていることです。Linux の場合は hostapd とか wpa supplicant と呼ばれるオープンソースのミドルウェアが多用されていますが、これらミドルウェアも全てのカーネルバージョンやドライバとの組み合わせで動作検証されている訳ではありません。ミドルウェアを使ったセキュリティ動作で問題が出た場合も、やはり原因切り分けと修正の作業が必要になります。

ここでまとめると、ソフトから見た無線屋さんのおしごとは

・非標準 OS へのドライバ移植
・ミドルウェアとドライバの結合とテスト
・各種モードを組み合わせた場合のドライバ動作検証

といったところになります。場合によっては、ここに「無線設定画面の設計」などユーザーインターフェースに関わる部分や、「ローミング性能の高速化」「WiFi 非標準動作モードの対応(高速アドホックモードなど)」といったカスタマイズの仕事が加わる場合もあります。

今回の記事では「~かも知れません」という表現を多用しましたが、これは憶測や脅し文句ではなく、実際の業務でしばしば遭遇した体験に基づいています。しかし無線 LAN 技術は国際標準規格の筈なのに、何故こんな事態になるのか疑問に思う方も多いでしょう。次回はその辺りについてのお話をしようと思います。


 

組込み無線LANモジュール製品ページ

関連記事

製品のご購入・サービスカスタマイズ・資料請求など
お気軽にお問い合わせください