りぬざうスケッチ

Zaurus と Bluetooth と WX310K にまつわる予備知識

最終更新:

zauhack

- view
管理者のみ編集可

Bluetooth/Zaurus/WX310K にまつわる予備知識


(まだ編集中)

スペシャルカーネルについて


Zaurus+Bluetooth 関連のページを検索すると、どのページでもだいたいスペシャルカーネルの導入を前提にしているが、必ずしも必須ではない。

確認していないが、スペシャルカーネルなしで スペシャルカーネルのサイト にあるカーネルモジュールインストールができて使用できるのであればそれでいけるはずだし、他の Bluetooth モジュールでも良いはず。

WX310K の場合


以下の話は WX310K の問題なので、Bluetooth でも USB でも共通である。

WX310K の場合でもスペシャルカーネルは必ずしも必須ではない。
が、カーネルにパッチを当てることはほぼ必須。
そうしないと異様なパケットロスが発生し、まともに通信できない (らしい)。

この原因については、Reference/京セラPHS + PPPのパケットロスについて
が詳しい。
対策についても、同じサイトの Tips/WX310K with Linux(USB)に詳しい。

このページに書かれている対策についてまとめると、

  • ppp_async がモジュールになっている場合、
    • /etc/modules.conf に
      options ppp_async flag_time=0
      の一行を追加
  • ppp_async がモジュールになっていない (kernel 組み込みになっている) 場合、
    • カーネルにパッチを当ててコンパイル

であるが、SL-Zaurus の場合は後者である。

このパッチは、

linux/drivers/net/ppp_async.cの83行目付近

-static int flag_time = HZ;
+static int flag_time = 0;

のたった一行。
要は、たった一箇所を修正するかわりに、スペシャルカーネルを導入するという方法を取っていることになる。

逆にいうと、WX310K のように leading flag を省略できない機器以外、つまり普通の機器を使って接続する場合には、無駄に leading flag を送ることになって、却ってスループットが落ちる可能性もある。

現在のスペシャルカーネルは ppp_async がモジュールになっていないようなので、その場合には
  • スペシャルカーネルを入れない
  • ppp_async fix パッチだけを適用しないスペシャルカーネルを自分でコンパイルする
  • スループットが落ちても気にしない
のいずれかになるだろう。
ただ、タイムアウトが発生するわけでは (おそらく) ないので、非パッチカーネル + WX310K よりは気にならないかもしれない。



記事メニュー
ウィキ募集バナー