ネットワークアイコンが表示された!

GW-CF54G を挿してネットワークアイコンが表示されるようになりました!

teraさまのコメントのとおり、class "wlan-ng" のドライバとして /etc/pcmcia/????.conf に追記すればOKでした。
こう書くと簡単そうですが、ここまでくるには色々紆余曲折がありまして・・・・。

実は初めに試したときは動かなかったのです。
おそらく cardmgr を再起動しわすれていたか、/etc/pcmcia のスクリプトをいじりすぎて動かない状態だったのだと思います。

これがダメだったので、各種スクリプトにデバッグ文を入れまくって挙動を解析したりとかなり遠回りしてしまいました。

片っ端から /opt/QtPalmtop 以下のバイナリを strings してみたり、cardmgr に細工があるのかと pcmcia-cs の cardmgr をコンパイルして差し替えてみたり ・・・。

で、ついにネットワークアイコンを表示させるトリガを発見!

/var/lib/pcmcia/stab ファイルでした。

Socket 0: PLANEX GW-CF54G
0    wlan-ng    mcf25    0    wlan0
Socket 1: empty

↑こういう中身

このファイルは cardmgr が作成するもので、カードを刺すとカード名、クラス名、ドライバ名、デバイス名が書き出されます。
このクラス名の部分が "wlan-ng" のエントリが書き出されたときにネットワークアイコンが表示されるようです!(どーん)

なので、多分ですが、有線LANのカードを挿した状態でこのファイルを書き換えればネットワークアイコンが表示されるはずです。使い道無いですが^^;

いや、こんなとこ監視してるとは思いませんでした。

これでネットワーク接続のUI部分とドライバ部分は動くようになったので、常用可能な状態に一歩近づきました!
ただ、 このドライバの suspend, resume がうまく動かないようで、一度 suspend すると resume しても正しく動作しないようです。

zaurus の一般的な動作として、無線LANカードを挿すとすぐ suspend 状態になり、ネットワーク接続をするときに resume するようにできているため、suspend / resume に対応は必須条件。
ここをどうやってクリアするか・・・ドライバに手を入れるしかないかなぁ。
resume 時に catdctl eject , insert でドライバロードし直せばごまかせるかな?

ネットワークアイコンが表示された!” への2件のフィードバック

  1. いやー、苦労なされたんですね…。
    おめでとうございます、そしてお疲れさまでした。
    しかしそんなとこ監視してるなんて…判るか!
    本当に良く判りましたね…決まり手はやはりstringsでしょうか?

    ちなみに私の所でも例のBluetoothカードのsuspend/resumeには苦労させられました…。
    最終的に、/etc/pcmcia/bluetoothでsuspend/resume時に
    ・ifdown -> modprobe -r
    ・cardctl resume 0 -> modprobe -> ifup
    みたいな処理をせざるをえませんでした。
    これでsuspend/resume時に通信が途切れてしまうのですが、何かうまい対処法等見つかりましたら私にもお教え頂ければ幸いです。

    1. 分かったきっかけはもっと泥臭いですよ ^^;
      それは cardmgr を殺しておいて、cardmgr の動作を手動で実行するというものです。

      普通に動作する WLI2-CF-S11 をスロットに挿してから、アイコンが表示されるまでを追いかけようと思いまして・・・。

      カード挿したら modprobe でドライバロードして、/etc/hotplug/wlan.agent を実行して、/etc/pcmcia/wlan-ng 実行して・・・
      と、1 つ 1 つ手動で実行していたらいつの間にかアイコンが表示されていて・・・といった感じです。

      その中で何かのスクリプトを実行する際に /var/lib/pcmcia/stab を
      実際のカードに合わせて書き換えないとエラーになってしまう為に、
      WLI2-CF-S11を挿したときの stab ファイルに置き換える操作をしていたのです。

      というわけで、あたりを付けてスマートに追いかけたわけではなく、
      泥臭く1つ1つつぶしていったという感じでしょうか。
      自分でも良く分かったなと思います・・・。

      GW-CF54G の suspend/resume はもうちょっと厄介なようです。
      というのも、ドライバをロードするだけでは有効にならず、cardmgr からの ioctl による指示で有効になるので、ドライバのロードし直しだけでは有効にならないのです。
      やはりドライバに手を加えるしかないかもしれないですね。。

      Bluetooth は良く分からないんですが、再接続のコマンドを実行すればいいとか単純じゃないのですね。
      接続を確立するのに何かコマンドを実行するのでしょうか?
      Bluetoothを使ったこと無くて、アドバイスできるようなレベルにいないです・・・。
      ちょっと勉強します (^^;

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です