2008年01月03日

D01NXをザウルスで動かす(だいぶ動いたっ!)

まずは誤解を招かないように大切な一言を。

『動いたのは"ザウルスで"ではなく"PCで"です』

で、詳細はこちらっ!(笑)
(だって今回何も貢献してないんですもの…)

D01NXをLinuxで動かす(むりやり速度改善?) ― Proto_Type001
http://comomo.shacknet.nu/blog/159

私の環境でもやってみましたが、見事に使えました。
gooのスピードテストでは 0.66Mbps の表示。
Windows環境の1/3くらいの速度ですが、普通に使うには十分ではないかと思います。
(ライバルW05Kには勝てそうな気がする!)

あとはどうやってザウルスで動かすか…。
Elan社のドライバはkernel2.6.19以上が要求されるので、kernel2.4.18(3桁機)またはkernel2.4.20(4桁機)を使っているザウルスではそのまま動かないはずです。cdc-acmは確かkernel2.4系でも大丈夫のはずですが。

考えられる方法は2つ。

・VMBドライバを頑張ってkernel2.4にポーティングする
・ザウルスでkernel2.6.19以上のカーネルを動かす


1つめは私のスキルでは無理なので神の降臨待ち…。
(某巨大掲示板で準備中な方を見かけたのでちょっと期待しています!)

2つめはpdaXromAngstromを使えば何とかなりそうです。もちろん、独自に何か別の物を使ってもOK。(実はその"別の物"の派生として今回のD01NXをザウルスで動かそう話が出ていたりします。kenyaさん@試作と色々目論んでおりますが、まだ人にお見せできる段階ではないのでこちらは今後こうご期待と言うことで…)

何だかちょっと先が見えてきましたよ。
ぼちぼちと頑張っていきまっしょい!

# 激しく出力されまくるログも何とかしたいものです…
posted by 月水和尚 (とも) at 02:38 | Comment(10) | TrackBack(0) | りなざう
この記事へのコメント
># 激しく出力されまくるログも何とかしたいものです…

これ、まともに動き始めたのでそろそろ考えないといけないですね。
今のところsyslog-ngのログ出力レベルを下げる(debugを出力しない。未検証)か、
多少の冗長出力は我慢して1日1回ローテートさせるか、というワークアラウンドを検討中。
あと、ザウルスではいっそのことsyslog入れないっていう離れワザも(笑

速度が出ない理由の1つに、通信と違う処理がインタラプトで入っているような気がするので、その部分が改善されればもう少し速くなる気がしますね。
これはTonyに相談するしかないな…
Posted by kenya at 2008年01月03日 08:19
うん。syslogのサイズがエラいことになっている。
とりあえずprintkを全部コメントアウトしちゃえば少しは改善されるかな?あと内部的にprintkを発行してるDBG/ERR/WARN/INFOからもprintkを削るとか。ちゃんとDEBUGオプションあるなしでログのでが変わるように是非ともTonyにお願いしたいところ。まぁログ削るだけなら力業で何とかできるのでいいんだけど。

通信と違う処理のインタラプトって具体的にはどの辺だろ?1Mbps出るようになるとかなり実用的な速度になるんだけど。Tonyとの連携は引き続きお願いします。

ドライバの正式公開まだかな…。
これだけ使えるドライバだと、もっといろんな人に使ってみてもらいたいもんなんだけど。
Posted by tomo at 2008年01月03日 09:24
こんばんは
masamuraです

微妙にすすんでるようですね。
こちらではとりあえずDEBUGのdefine内部を全部消してみたりしてました。

この状態で平均50kbpsぐらいでてるようでした。
(デフォルト状態で12kbps)
コンパイルスイッチの部分しかいじってないので、DBG()とASSERT関係を全部消すともっと軽くなるかもしれません。

kenyaさんとこの情報にあるserialのパッチ当ててまた試してみようと思います。

#コンパイルスイッチ切ると定義されてないdefine使ってるだけでコンパイルエラーでるんですねぇ
知りませんでした…
実はこれでちょっと悩んだりしてました(--;
Posted by masamura at 2008年01月03日 20:55
masamuraさん

DEBUGのdefineの中身消すだけでそんなに速度出るんですか。処理と直接関係ないものは徹底的に排除するとかなりのスピードアップが期待できそうですね。

ASSERT関係の処理って何やっているのか分からなくって手を入れてないんですが、これって消しちゃってOKなんですか?DEBUG関連も一緒に消すと呼ばれても中が空っぽな関数がたくさんできてしまうのでどうしたものかと思っていました。

1からソースを整理して、必要な処理だけにコードを絞り込む必要がありそうですね。大変そうですけど。

ソースをいじり始めるとなると、いよいよsf.jpでバージョン管理とか始めた方がいいですかね。ただ元になる1.9のソースが正式公開されてないので、その派生ソースも公開していいのかは悩ましいのですが。早くElan社の方針決まるといいんですけど。

PCMCIA_DEBUGをOFFにするとコンパイルが通らなくなるのは反則ですよね…。Elan社でもデバッグなしのコードは全然試してないって事なんですかね。

そういえばmasamuraさんは1.9のソース手に入れてますか?せっかく色々といじるのであれば新しいソースの方がいいと思いますので、お持ちでないようならML宛に連絡をお願いします。
Posted by tomo at 2008年01月03日 21:58
>tomoさん
ありがとうございます。
ソースはkenyaさんに直接いただいております。
現在のテスト環境は1.9に移行済みです。
MLに一度12kbpsの結果を報告したんですが、どうも投稿できてないようで…
別のアドレスを登録し直しましたのでテストをかねて後ほど何か書いてみます。

さて、試してみた結果ですが、うちの環境だとカーネルバージョンが違うので手動で値決めうち(4096)で行きましたが、kenyaさんの改造は当たりですね。
つながっても速度が出てないのは、やりとりするパケットサイズの設定のようです。
PHS用に作られたドライバだとすると64k用の作りだと思いますし、とりあえずは1500以上にしておけばよいかと思って余裕をとって4096にしてみました。
うちだとwindows環境で1.2MB/sぐらいなんですが、今回の改造でLinux上にて0.35MB/s程度にまでなりました。
Posted by masamura at 2008年01月03日 22:45
masamuraさん

考えてみれば1.4じゃ通信できませんでしたね。

今のところWindowsの1/3〜1/4くらいの性能は引き出せているようですね。あとはDEBUGとASSERTを削って、ソースを整理することでどのくらい性能が上がるか楽しみなところです。

ちなみにmasamuraさんはどんな環境でテストされていますか?

MLはおかしいようだったらご連絡下さい。
私の方でも何か書いてみます。
Posted by tomo at 2008年01月03日 23:16
続報です。

とりあえずoptionドライバでも通信はできました。
でもあんまり早くないです。
やった設定はcdc-acmでttyACM0のポートを見に行っていたのを、optionではttyUSB1にしたら通信できました。
optionドライバだとusb-serialが0になって、モデムは1になるのではないかと思います。

ただ、どちらのドライバを使ってもどうも通信が安定しません。
250kbpsぐらいでてるかと思ったら突然ぴたっと止まるんですよ。なかなか復帰しないし。

あと前回の書き込みMB/sじゃなくてMbpsですね…
Posted by masamura at 2008年01月04日 00:33
masamuraさん

optionでも動きましたか。ご報告ありがとうございます。
だとするとcdc-acmよりもoptionの方が何となく幸せですね。
何と言っても"USB driver for GSM and CDMA modems"なわけですから。
(根拠薄弱で申し訳ありません…)

私の環境では通信の不安定感はあまり感じませんでした。
単に回線いじめが足りてないだけかもしれませんが。
radishのように時間変化に対する速度を出してくれるサイトでテストしてみたいのですが、私のテスト環境だとJavaアプレットが動かなくて試してみることができません…とほほ。

速度測定システム Radish Networkspeed Testing
http://netspeed.studio-radish.com/index.html

また何か分かったらご報告をお願いします。
私ももう少し色々いじくり回してみます。
Posted by tomo at 2008年01月04日 01:12
とりあえず現在optionで試してます。
ソースを見たところ、こちらはデフォルトでin側のサイズ4096k、out側が128kで定義されているようです。
特に改造なしで、上のサイトのテストを動かすためにjavaを拾っているのですが、これで最大80KB/secぐらいでてるようでした。

javaの設定をしたので、動かしてみました。
速度測定システムの結果ですが、
速度472.5kbps (59.06kByte/sec)
測定品質 0.0 (笑
棒グラフが一本だけ異常に高いです。
通信にすごいムラがあるみたいで、常にこの高い状態だとかなり早そうな感じ。
上りは
速度3.907kbps(488Byte/sec)
測定品質91.1
とでました。

こちらの環境はThinkPadX60s上のPlamoLinux4.22 kernel2.6.22.9-plamoを少しいじった物です。
usb-serial.cのバッファサイズを変更、ドライバはoption(無改造)使用。
vmbのドライバはデフォルトの物でテストしました。
Posted by masamura at 2008年01月04日 21:39
masamuraさん

私の環境ではoptionではうまくいきませんでした…。
ちゃんとATコマンドは受け入れているようなのですが、何故かダイアルアップまでたどり着かず。ログを見ると初期化(ATZ)を繰り返した挙げ句に止まってしまっている感じです。
あとgnome-pppでDeviceをDetectさせるとやたらと時間がかかってしまいます。何かデバイスの認識のされ方が変なんですかね…。

ただcdc-acm(kenyaパッチ版)でものすごく安定して通信できている感じです。相変わらずJavaがうまく入らなくてradishでの計測はできていないのですが、gooのスピードテストで左上に出ている数値(たぶんダウンロードしたデータ量だと思われます)を見ている限り途中で速度が低下したりはしていないようです。

今測定してみたら1.12Mbpsも出ていました。(驚き!)
VMBドライバのデバッグ出力を押さえるような改造をして再計測してみたいと思います。

# 全くの余談ですが、私はX60、kenya氏はX61ユーザだったりします。
# (二人ともLinux用としてはX6xではなくInterLinkを使用していますが)
Posted by tomo at 2008年01月05日 00:10
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。