狠狠撸

狠狠撸Share a Scribd company logo
Mozilla 勉強会@東京 8th




 Firefox OS の Wi-Fi 機能改善
          2012/12/01
自己紹介

   Twitter: @masap
   職業: 組み込みプログラマ(主に Wi-Fi)
   ハッシュタグ: #FirefoxOSjp
目次

   Firefox OS の開発に参加するには
   Firefox OS 開発に参加しての悲喜こもごも
   Wi-Fi の不具合解析に関する提案
Firefox OS の開発に参加するには
参加の理由

   そもそもなぜFirefox OS開発に参加するのか
         不具合を見つけた
         改善したい既存機能がある
         追加したい新規機能がある




              Firefox OS 自体を変えたい
参加はハードルが高い?

   そうでもない
       デザイナ?HTML/CSSが書ければOK
       プログラマ?JavaScriptが書ければOK
   でもMozillaのコードって難しそう
           見たことも無いHTML5タグとか使ってる
           ECMAScript6の機能を使ってる。getterとか
           確かにレベルは高いが勉強にはなる
   Mozillaの慣習
           Mozilla固有の用語、前提知識
            これが一番ハードルが高い
参加方法

   問題点を報告
            Bugzilla (https://bugzilla.mozilla.org/) に問題点を記載
   パッチを送る
       Gaia
            Bugzilla に問題点を記載
            GitHubを使ってPull Request
       Gecko
            Bugzilla に問題点を記載しパッチも添付
パッチの作成方法

   ビルド環境構築
        https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites
        http://masap.sakura.ne.jp/firefoxos/build.html

   コードの修正
        SDKは無い。逆に言えば使い慣れたエディタを使える
   動作確認
        実機 or エミュレータ(r2d2b2g という Firefox プラグイン)
        エミュレータを使う場合は上記のビルド環境構築は不要
Firefox OS 開発に参加しての悲喜こもごも
オープンソースへの参加経験

   これまでの経験
       雑多なオープンソースプロジェクトへのパッチ投稿経験
        あり
       主にwpa_supplicant
       他はWireshark, PepperSpot等
       ほとんどがWi-Fi関連
   Mozilla関連のプロジェクトは今回が初めて
       やっぱりWi-Fi関連
私が直しているところ


        ユーザーインターフェイス
Gaia
         Gecko APIアクセス


            Gecko API
Gecko
        wpa_supplicant API



Gonk      wpa_supplicant
うまくいった例

   Bug 780465
         WPS (Wi-Fi Protected Setup) を実装
   初めてなのでちょっとつまずいたりした
         よくわからないので Bugzilla にパッチを送ると「Gaia は Pull
          Request, Gecko は Bugzilla」と言われる
   その後は特に滞りなく進む
         早い応答、高品質なレビュー
         さすが Mozilla さんだね☆
あまりうまくいかなかった例

   Bug 802137
         WEP キー長のチェックを追加するだけ
   放置される
   やっとコメント来た
         「これもう直ってるよ」だと...?
         テストしてみると全く直ってない...
すごくうまくいかなかった例

   Bug 790231, 791506, PR #5697
          WPS 対応 AP が複数ある場合の接続高速化
   進まない
          パッチを送るも放置される
          レビューが終わった頃にはツリーが変わっているので書き直し
           を要求される
          それを何回か繰り返す
          ようやくリリースできる段になって、「API 変更を伴うからリリー
           スの前後で不整合が起きる。その不整合を防ぐために修正
           前、後の両方で動く暫定パッチ書いてよ」
          書いて送る(数時間しか使われないけどな!)
すごくうまくいかなかった例(続き)

   放置される
        見かねた mrbkap から助け舟が入る。「おい kaze 早くリリー
         スしてやれよ」
   第三者登場
        「現在 Gaia は単純な CSS とかしか受け入れなくなったので
         API を直してる君のパッチは受け入れられなくなりました」
今どうしてるの?

   当初の予定
        WPSの機能向上を最後まで仕上げたかった
        Wi-Fi Direct を実装して、せめてAndroid 4.1 並にして送り出
         してあげたかった
        俺「開発用ブランチあるでしょ?そっちに送るよ」
         Mozilla「開発用ブランチなど無い」
   現在
        Bugzillaをながめて
         協力できそうなところを探してる
Wi-Fi の不具合解析に関する提案
Wi-Fi って大事だと思うんです!

   他がちゃんとできていても「つながらない」ってだけ
    で全部がダメみたいに言われるのが携帯電話
        Bugzilla に上がってる Wi-Fi 関連の不具合とその解析状況を
         見ていると「なんとかしようとしてるんだけどどうしていいかわ
         かんない」っぽく見える
         ?違ったらゴメン
        現役 Wi-Fi 屋として心配なのでちょっと提案
必要な知識

   必要な機材そろってる?
        様々なアクセスポイント
        無線フレームをキャプチャ/解析する機材
        Qualcomm のドライバ/チップセット担当とのコネクション
   仕様書持ってる?
        IEEE 802.11 仕様
        Wi-Fi Allicnace 仕様 (WPA/WPA2/WPS/Wi-Fi Direct等)
開発端末

   開発端末
        Mozilla は Unagi/Otoro という開発用スマホ(非売品)で開発
         をしている
        Mozilla Japan にさえ無い
        Bug 802418 [画面を off/on すると Wi-Fi が再接続しない] と
         かなると実機で見るしかない
        バグ解析するから実機送ってください

More Related Content

Firefox OS の Wi-Fi 機能改善

  • 1. Mozilla 勉強会@東京 8th Firefox OS の Wi-Fi 機能改善 2012/12/01
  • 2. 自己紹介  Twitter: @masap  職業: 組み込みプログラマ(主に Wi-Fi)  ハッシュタグ: #FirefoxOSjp
  • 3. 目次  Firefox OS の開発に参加するには  Firefox OS 開発に参加しての悲喜こもごも  Wi-Fi の不具合解析に関する提案
  • 5. 参加の理由  そもそもなぜFirefox OS開発に参加するのか  不具合を見つけた  改善したい既存機能がある  追加したい新規機能がある Firefox OS 自体を変えたい
  • 6. 参加はハードルが高い?  そうでもない  デザイナ?HTML/CSSが書ければOK  プログラマ?JavaScriptが書ければOK  でもMozillaのコードって難しそう  見たことも無いHTML5タグとか使ってる  ECMAScript6の機能を使ってる。getterとか  確かにレベルは高いが勉強にはなる  Mozillaの慣習  Mozilla固有の用語、前提知識 これが一番ハードルが高い
  • 7. 参加方法  問題点を報告  Bugzilla (https://bugzilla.mozilla.org/) に問題点を記載  パッチを送る  Gaia  Bugzilla に問題点を記載  GitHubを使ってPull Request  Gecko  Bugzilla に問題点を記載しパッチも添付
  • 8. パッチの作成方法  ビルド環境構築  https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites  http://masap.sakura.ne.jp/firefoxos/build.html  コードの修正  SDKは無い。逆に言えば使い慣れたエディタを使える  動作確認  実機 or エミュレータ(r2d2b2g という Firefox プラグイン)  エミュレータを使う場合は上記のビルド環境構築は不要
  • 10. オープンソースへの参加経験  これまでの経験  雑多なオープンソースプロジェクトへのパッチ投稿経験 あり  主にwpa_supplicant  他はWireshark, PepperSpot等  ほとんどがWi-Fi関連  Mozilla関連のプロジェクトは今回が初めて  やっぱりWi-Fi関連
  • 11. 私が直しているところ ユーザーインターフェイス Gaia Gecko APIアクセス Gecko API Gecko wpa_supplicant API Gonk wpa_supplicant
  • 12. うまくいった例  Bug 780465  WPS (Wi-Fi Protected Setup) を実装  初めてなのでちょっとつまずいたりした  よくわからないので Bugzilla にパッチを送ると「Gaia は Pull Request, Gecko は Bugzilla」と言われる  その後は特に滞りなく進む  早い応答、高品質なレビュー  さすが Mozilla さんだね☆
  • 13. あまりうまくいかなかった例  Bug 802137  WEP キー長のチェックを追加するだけ  放置される  やっとコメント来た  「これもう直ってるよ」だと...?  テストしてみると全く直ってない...
  • 14. すごくうまくいかなかった例  Bug 790231, 791506, PR #5697  WPS 対応 AP が複数ある場合の接続高速化  進まない  パッチを送るも放置される  レビューが終わった頃にはツリーが変わっているので書き直し を要求される  それを何回か繰り返す  ようやくリリースできる段になって、「API 変更を伴うからリリー スの前後で不整合が起きる。その不整合を防ぐために修正 前、後の両方で動く暫定パッチ書いてよ」  書いて送る(数時間しか使われないけどな!)
  • 15. すごくうまくいかなかった例(続き)  放置される  見かねた mrbkap から助け舟が入る。「おい kaze 早くリリー スしてやれよ」  第三者登場  「現在 Gaia は単純な CSS とかしか受け入れなくなったので API を直してる君のパッチは受け入れられなくなりました」
  • 16. 今どうしてるの?  当初の予定  WPSの機能向上を最後まで仕上げたかった  Wi-Fi Direct を実装して、せめてAndroid 4.1 並にして送り出 してあげたかった  俺「開発用ブランチあるでしょ?そっちに送るよ」 Mozilla「開発用ブランチなど無い」  現在  Bugzillaをながめて 協力できそうなところを探してる
  • 18. Wi-Fi って大事だと思うんです!  他がちゃんとできていても「つながらない」ってだけ で全部がダメみたいに言われるのが携帯電話  Bugzilla に上がってる Wi-Fi 関連の不具合とその解析状況を 見ていると「なんとかしようとしてるんだけどどうしていいかわ かんない」っぽく見える ?違ったらゴメン  現役 Wi-Fi 屋として心配なのでちょっと提案
  • 19. 必要な知識  必要な機材そろってる?  様々なアクセスポイント  無線フレームをキャプチャ/解析する機材  Qualcomm のドライバ/チップセット担当とのコネクション  仕様書持ってる?  IEEE 802.11 仕様  Wi-Fi Allicnace 仕様 (WPA/WPA2/WPS/Wi-Fi Direct等)
  • 20. 開発端末  開発端末  Mozilla は Unagi/Otoro という開発用スマホ(非売品)で開発 をしている  Mozilla Japan にさえ無い  Bug 802418 [画面を off/on すると Wi-Fi が再接続しない] と かなると実機で見るしかない  バグ解析するから実機送ってください