Nokia N810インターネットタブレット用のIEEE802.11sメッシュネットワークサポートの実装例に基づくオープンソース開発

この記事では、小さなオープンソースプロジェクトを実装した個人的な経験と、コース中に生じた問題について説明します。



2008年の秋にオープンソースLinuxラボの会議に出席し、Nokia N810にIEEE802.11sサポートを実装するというアイデアを思いつきました。 この素晴らしいデバイスで何ができるかについてのクレイジーな提案の一つのように思えた。



これは、NokiaがN810に組み込まれたwi-fiアダプターを制御できるstlc45xxドライバーコードをGPLで公開し、 stlc45xx.garage.maemo.orgプロジェクトを編成したときよりも少し遅れて発生しました。



興味深いことに、過去半年間にわたって、ノキア自体は更新されたカーネルまたはネットワークドライバーを備えたファームウェアをリリースしていません。

最初の未回答の質問はなぜですか。



一見したところ、私にとっては、経験のある管理者にとってのタスクは、正しいカーネルを構築し、stlc45xxを構築し、起動を構成することでした。 しかし、いいえ、stlc45xxはアクセスポイントのwi-fiクライアントモードでの操作のみをサポートすることが判明しました。 正しいカーネルでは、すべてが単純ではありませんでした。 N800およびN810が構築されているTI OMAP 2420プロセッサに固有のlinux-omapブランチに送信されたstlc45xxのREADME。 しかし、時間の経過とともに、stlc45xxはmac80211ライブラリの要件がlinux-omapが提供するものから著しく逸脱し始めました。 stlc45xxのメイン開発者であるKalle Valoは、linux-wirelessブランチに登場した変更が必要だと言ってこれを説明しました。 なぜlinux-omapとlinux-wirelessヘッドを定期的に組み合わせるのですか。 また、linux-wirelessにはメーリングリストがあり、1か月に約1000件のメッセージを受信します。そのうち約3分の1はパッチです。 一見したところ、単純なタスクが動いているターゲットでの射撃に似ています。



ショーダウンの詳細はドライバーの技術的な部分では説明しません。発生した主な質問と回答のみをリストします。

最初の質問は、もちろん、メッシュとは何ですか? IEEE802.11ネットワークの他の動作モードとどのように関係していますか? ドライバをサポートするには何が必要ですか?



用語の頻繁な言及にもかかわらず、問題の技術的な側面に精通している人はほとんどいないように思われました。 私たちのグループは、数ヶ月間、ドラフト状態の標準を取得できませんでした。 そして、これはこの期間中にプロジェクトがFRUCT登録され 、ノキアに助けを求めたという事実にもかかわらずです。 メッシュモードをサポートするLinuxに存在するドライバー(p54など)が明確になり、ドラフト実装の品質が適切なレベルにあるアダプター(b43など)の分析が明らかになりました。 しかし、ドラフト標準を受け取っただけで、開発にある程度の自信がつきました。 その結果、stlc45xxドライバーでIEEE802.11sの基礎としてアドホックモードを実装し、stlc45xx-devel @ garage.maemo.orgメーリングリストに一連のパッチを送信しました。



アドホックからメッシュへの小さなステップで、判明したように、wi-fiアダプターのよく知られたファームウェア機能に出会いました-長さが4の倍数ではないパッケージは、最も近い4の倍数に短縮されます。 しかし、2009年1月にstlc45xx-develで尋ねられたこのことに関する質問は、三日月以上の間、未回答のままでした。 その後、カレ・ヴァロは、私たちの問題に似たものは聞いていないと言った。



したがって、garage.maemo.orgの小さなコミュニティはこの問題に直面して無力でした。

したがって、別の質問:オープンソースプロジェクトは、可能な限り最大のオーディエンスを探しているのではなく、プライベートフォーラムに集まっているのはなぜですか? これは単一の間違いですか、それともよくあることですか?



いずれにせよ、garage.maemo.orgでサポートもテストも受けていないため、同じWi-Fiアダプター用に設計されていたlinux-wireless p54spiを試すことにしました。 「コア」、「ライナスツリーへの一歩」。 繰り返しますが、それほど単純ではありません。 P54spiはまだlinusツリーに到達しておらず、linux-wirelessでは誰もテストしていないようです。 事実:2009年3月上旬、linux-wirelessツリーのp54spiは、コードの基本的なタイプミスのためにダウンしました。 linux-wireless@vger.kernel.orgに送信されたいくつかのパッチは、これらの小さな問題を解決しました。 ここで、言及されたファームウェアエラーのステータスがすぐに明らかになりました。 ただし、stlc45xxとp54spiの両方に存在する負荷時のドライバーの不安定性に関連するより重大な問題は、まだ解決されていません。 理由は、ファームウェアの機能に関する情報の不足です。 stlc4560アダプターのレジスターの構成、ビットの割り当て、およびタイミング図の仕様を見つけるのは非常に難しいことが判明しました。 公式には、提供されていません。 そして、偶然に非公式に発見されたとしても、推測の自由を残します。



ここに別の質問があります:なぜ一部の機器メーカーは仕様をこのように扱うのですか なぜ彼らは彼らの製品のドライバーの入手可能性と品質に明らかに興味がないのですか?



結果は次のとおりです。4月12日、4月29〜30日に開催される第5回FRUCTセミナーでのOSLLのプレゼンテーション用に、N810とOLPC XO間の異種メッシュネットワークを使用したデモを記録しました。 P54spiパッチはlinux-wirelessで受け入れられました。 プロジェクトの2番目の段階は完了間近です。 OSLLはドライバーの改善を続けています。



私たちはオープンなグループです。 興味深いプロジェクトがあります。



オープンソースが勝つと信じています。 (:




All Articles