« 非対応機種で無理矢理モバイル版Wassrを利用 | Main | [chumby]chumbyにUSBカメラをつないでみた »

2008.07.06

[chumby]chumbyを各種インターネット共有/WMWifiRouter経由でネットにつなぐ

2008.07.07: Windows XPのインターネット接続の共有の説明で、ファイアウォールをOFFにすることを説明し忘れていたので追記しました。



chumbyのデモを出先でする場合、無線LANによる通信経路の確保を模索することになりますが、デフォルトでは無線LANのアクセスポイントのみを検索する仕様であることが問題になります。

chumbyからアクセスできる無線LANのアクセスポイントが、必ず存在するとは限らないからです。

かといって、PCやWindows Mobile等のデバイス経由でどうにかしようと思っても、chumbyはAd-Hocモードの相手を見付けてくれないのでつながりません。

Mac OS Xのインターネット共有で「相手のコンピュータが使用するポート」をAirMacにした場合、Macの無線LANはアクセスポイントとしてふるまうのでchumbyから見付けることができるのですが、ネットワークの設定がうまくいかず「unreachable」のエラーで終わるはずです。

現状ではPHS300などを用意しないと、出先では通信経路の確保がままならないということになります。

ググったり何だりした結果、Mac OS Xのインターネット共有をchumbyから使うためのTIPS、chumbyと相手デバイスとを無線LANでAd-Hoc接続しつつ、chumbyが接続相手のDHCPを引く設定が分かりましたので、ここに書いておきます。

紹介している手順全般に言えるのは、セキュリティ無しの内容になっていることです。
まずは接続を確認してからセキュリティをかけてみてください。

西尾さんのChumbyをMacBookのインターネット接続共有で動かす方法に情報があります。

Mac OS X Leopard (10.5.4)のインターネット共有を使う

  • 「システム環境設定>共有>インターネット共有」を選択して、隣のペインにインターネット共有の設定を表示させます。
  • 「共有する接続経路」のドロップダウンリストから、インターネットに接続する経路を選択します。(W-ZERO 3 Modem Port、Bluetooth PANなど)
  • 「相手のコンピュータが使用するポート」の「AirMac」のチェックボックスをONにします。
  • 「AirMac オプション...」ボタンを押し、「ネットワーク名」を「chumby」などに変更します。「チャンネル」は「自動」、「暗号化 (WEPを使用)」のチェックボックスはOFFに設定。セキュリティが気になる向きは後で設定してください。OKボタンで終了。
  • 「インターネット共有」のチェックボックスをONにして、インターネット共有を開始します。
  • 「Terminal.app」を起動し、以下のように操作します。
$ cd /etc
$ sudo cp bootpd.plist _bootpd.plist
$ sudo vi _bootpd.plist
  • viが起動しますので、ファイルの最後の方にあるreply_threshold_secondsを4から0に編集します

オリジナル


<key>reply_threshold_seconds</key>
<integer>4</integer>

変更後


<key>reply_threshold_seconds</key>
<integer>0</integer>

  • 「インターネット共有」のチェックボックスをOFFにして、インターネット共有を停止します。
  • 引き続き以下のように操作します。
$ sudo mv _bootpd.plist bootpd.plist
$ sudo chmod 644 bootpd.plist
$ ls -l bootpd.plist
-rw-r--r--  1 root  wheel  1048  7  6 06:32 bootpd.plist

「インターネット共有」は起動時に/etc/bootpd.plistを生成、インターネット共有の停止時に/etc/bootpd.plistを削除します。編集内容がリセットされないように、リードオンリーにするわけです。

  • 再度、「インターネット共有」のチェックボックスをONにして、インターネット共有を開始します。
  • chumbyの「Scanning or wireless connections...」の後の「Choose a wireless connection」に、さきほど設定したネットワーク名「chumby」が見えているはずですので、それを選択します。
  • 「Choose IP allocation method」は「Automaic (recommended)」を選択、後は流れ通りでOKなはずです。chumbyに振られるIPは「10.0.2.n」になると思います。

64kでつなぐと遅くて、スライドショー系、ストリーミング系は実用になりません。
W-ZERO3を使い、高速化サービスが有効になるような設定だと64kでも結構大丈夫です(即ち、Bluetooth PAN経由か、WMWifiRouterなど経由か)。

WMWifiRouterを使う

Windows Mobile上で動作するソフトウェアWiFiルータ、WMWifiRouterが使えます。

  • WMWifiRouterをインストールします。詳細は割愛します。
  • ファイル名「debugchumby」でテキストファイルを作ります。改行コードはLFにしておきます。内容は以下のようなものです。WMWifiRouterで使うessidが"WMWifiRouter"である必要があります。違う場合は書き換えてください。
#!/bin/sh
ESSID="WMWifiRouter"
LOG=/mnt/usb/adhoc-status.txt
fbwrite "connecting to Ad-Hoc Wi-Fi network ${ESSID}...."
echo >>${LOG}
date >>${LOG}
iwconfig rausb0 mode Ad-Hoc essid ${ESSID} key off >>${LOG} 2>&1
udhcpc -t 5 -n -p /var/run/udhcpc.rausb0.pid -i rausb0 >>${LOG} 2>&1
ifconfig rausb0 >>${LOG} 2>&1
  • テキストファイル「debugchumby」をUSBメモリのルートディレクトリにコピーし、chumbyのUSBポートに挿入します。
  • WMWifiRouterを起動し、接続準備を完了させます。
  • chumbyが起動中であれば一度電源を落としてから、chumbyを(再度)起動します。

起動シーケンス中に液晶の上の方に"connecting to Ad-Hoc Wi-Fi network WMWifiRouter...."と表示された後、WMWifiRouter経由でインターネットと通信しながら起動するはずです。
おかしい場合はUSBメモリに出来ているはずの「adhoc-status.txt」の内容が参考になるかもしれません。

Windows XPのインターネット接続の共有を使う

chumby側の手順はWMWifiRouterと同様。debugchumby内ESSIDを、PC側のそれに書き換えるだけです。

普通にWindows XPでインターネット接続の共有の設定をすればいいのですが、ハマるポイントがいくつかあるので念のため書いておきます。

W-ZERO3をUSBモデムとして使いインターネットに接続するダイヤルアップ接続を、無線LAN経由で共有する例です。
ダイヤルアップ接続の名前を「dialup01」という名前にしていると仮定して説明します。
「dialup01」でインターネットに接続できることを確認しておきます。
Bluetooth PANの場合でも、有線LANでも接続先が違うだけでほぼ同様です。

なお、自分が使っているのは、Windows XP Home SP2です。SP3だとちょっと違うかもしれません。

こっちも現状セキュリティ無しなので、気になる向きは設定をお願いします。

  • 「コントロールパネル>ネットワーク接続」を起動します。
  • ダイヤルアップ「dialup01」のプロパティを表示します。
  • 「詳細設定>インターネット接続の共有>ホーム ネットワーク接続」のドロップダウンリストから「ワイヤレス ネットワーク接続」を選択します。
  • 「詳細設定>インターネット接続の共有>ネットワークのほかのユーザーに、このコンピュータのインターネット接続をとおしても接続を許可する」のチェックボックスをONにします。
  • また、その下にある「ネットワークのコンピュータがインターネットにアクセスを試みるたびにダイヤルアップ接続を確立する」のチェックボックスもONにします。
  • 「OK」ボタンを押してプロパティを閉じます。
  • 「コントロールパネル>ネットワーク接続」の中にある「ワイヤレス ネットワーク接続」のプロパティを表示します。
  • 「全般>この接続は次の項目を使用します>インターネット プロトコル (TCP/IP)」のプロパティを表示します。
  • 「全般」タブの「次の IP アドレスを使う」のラジオボタンをON、「IP アドレス」を「192.168.0.1」に、「サブネットマスク」を「255.255.255.0」に。
  • 「ワイヤレス ネットワーク」タブの「追加」ボタンを押します。
  • 「アソシエーション>ネットワーク名 (SSID)」を「chumby」に、「データの暗号化」を「無効」にします。
  • 「これはコンピュータ相互 (ad-hoc) のネットワークで、ワイヤレス アクセス ポイントを使用しないのチェックボックスをONにします。
  • さらに「OK」ボタンでプロパティを閉じます。
  • 「ワイヤレス ネットワーク」タブに戻ったので、「詳細設定」ボタンを押します。
  • 「アクセスするネットワーク」を「コンピュータ相互 (ad-hoc) のネットワークのみ」に、「優先でないネットワークに自動的に接続」のチェックボックスをOFFにします。
  • 「閉じる」ボタンで「詳細設定」のダイアログを閉じます。
  • 「詳細設定(タブ)>Windows ファイアウォール」の「設定」ボタンを押し、「無効 (推奨されません)」を選択してファイアウォールを切り、「OK」ボタンを押して「Windows ファイアウォール」のダイアログを閉じます。さらに「OK」ボタンを押して、「ワイヤレス ネットワーク接続のプロパティ」を閉じます。
  • ファイル名「debugchumby」のテキストファイルをテキストエディタで作ります。改行コードはLFにしておきます。内容は以下のようなものです。SSIDを「chumby」にしたので、「ESSID="chumby"」という記述になっています。変えた場合は書き換えてください。
#!/bin/sh
ESSID="chumby"
LOG=/mnt/usb/adhoc-status.txt
fbwrite "connecting to Ad-Hoc Wi-Fi network ${ESSID}...."
iwconfig rausb0 mode Ad-Hoc essid ${ESSID} key off >>${LOG} 2>&1
udhcpc -t 5 -n -p /var/run/udhcpc.rausb0.pid -i rausb0 >>${LOG} 2>&1
ifconfig rausb0 >>${LOG} 2>&1
  • 「debugchumby」をUSBメモリのルートディレクトリにコピーし、chumbyのUSBポートに挿入します。
  • chumbyが起動中であれば一度電源を落としてから、chumbyを(再度)起動します。
  • 起動シーケンス中に液晶の上の方に"connecting to Ad-Hoc Wi-Fi network chumby...."と表示された後、PC側でダイヤルアップが始まって、インターネットと通信しながら起動するはずです。
  • おかしい場合はUSBメモリに出来ているはずの「adhoc-status.txt」の内容が参考になるかもしれません。

PC側の無線LANを固定IPかつ「192.168.0.n」にするところがミソです。
こうしないとICSが機能しないそうです。
普段のDHCPを使う設定との切り換えをスムーズにする手段が必要ですね。

複数のプロファイルを持てる機能があるかどうかよく知りませんが、ひょっとしたらこういうのはnetコマンドでやるもんなんでしょうか。

また、PC側の無線LANのファイアウォールをOFFにしておかないと、chumbyがICSのDHCPを引けません。これもハマりポイント。
より選択的にファイアウォールをOFFにする方法があるかと思います。ご存知の方がいらしたら教えてください。

|

« 非対応機種で無理矢理モバイル版Wassrを利用 | Main | [chumby]chumbyにUSBカメラをつないでみた »