Category:
Linux
Linux に繋いだ GW-US54GXS (USB) を 無線 LAN アクセスポイントにすることを検討する。AP ではなくクライアントとして使いたい場合はこちらの記事を参照されたい。
<コンセプト>
「Nintendo DS を接続したいが、WEP を常用するのは避けたい」 → 「NDS 専用の AP を作ろう」
<環境>
* いつもの Linux PC / Fedora 7 (Kernel 2.6.23.8-34)
* Planex GW-US54GXS (zd1211b チップ)
<手順>
zd1211 vendor driver をインストール
Kernel 2.6.18 以降には zd1211rw というドライバが含まれているが、これは未だ Master モード (i.e. AP) をサポートしていない(参照:zd1211rw Status; Master mode: "not yet")。そこで、ベンダードライバを導入する。ちょくちょくアップデートが行われている。上記リンクの releases ディレクトリから最新リリースをダウンロードして、インストールする(make するだけ)。Linux_zd1211_UserGuide.doc は必読!
これをインストールすると(リブートしたほうが良い?)、無線 LAN アダプタが wlan0 として認識される。
AP の設定
尚、iwconfig wlan0 mode master を行った後に、直ぐに ESS-ID の設定を行おうとすると、失敗する場合がある。シェルスクリプトを書く場合は sleep 5 程度入れると良いだろう。
bridge-utils をインストール&設定
無線 LAN(USB)と Ethernet 側の NIC でブリッジを組むことにする(ちなみに、Windows では簡単に実現できる)。bridge-utils を導入する。Fedora ではディストリビューションのパッケージとして提供されているので、GUI のパッケージマネージャからインストールできる(他のディストリについては不明)。大雑把な使い方は次の通り(インターフェースを up した後で):
これで、wlan0 と eth0 がブリッジされ、相互接続が可能となる。
<現状>
Nintendo DS との相性の問題か、2 回に 1 回程度「アクセスポイントが込み合っている為云々」というエラーが出てしまう(通常の PC からの利用では問題ない)。その点に目を瞑れば AP として利用できるレベルを確保していると思われる。
<参考>
・WEP 暗号は既にクラッキングツールが出回っているため、ローカルネットワークに接続されてしまうことがセキュリティ上の問題に直結するような環境では利用すべきではない。必要なときのみ有効化するのがベストだろう。
・SSID を隠す(ステルスモード)ためには、ドライバ自体のソースを変更する必要があるようだ(未調査)。
・Nintendo DS のエラーコードについては、日本の Web サイトには解説が無いので、英語版 Customer Service サイトを利用するとよい(Error Code Lookup にエラーコードを入力し、System: DS として検索)。
追記(2008.04.15)
vendor driver の URI を更新(旧:http://dsd.object4.net/zd1211-vendor/)
<コンセプト>
「Nintendo DS を接続したいが、WEP を常用するのは避けたい」 → 「NDS 専用の AP を作ろう」
<環境>
* いつもの Linux PC / Fedora 7 (Kernel 2.6.23.8-34)
* Planex GW-US54GXS (zd1211b チップ)
<手順>
zd1211 vendor driver をインストール
Kernel 2.6.18 以降には zd1211rw というドライバが含まれているが、これは未だ Master モード (i.e. AP) をサポートしていない(参照:zd1211rw Status; Master mode: "not yet")。そこで、ベンダードライバを導入する。ちょくちょくアップデートが行われている。上記リンクの releases ディレクトリから最新リリースをダウンロードして、インストールする(make するだけ)。Linux_zd1211_UserGuide.doc は必読!
これをインストールすると(リブートしたほうが良い?)、無線 LAN アダプタが wlan0 として認識される。
AP の設定
iwconfig wlan0 mode masterAP モードにして、
iwconfig wlan0 essid nameOfAccessPointESS-ID をセットして、
iwpriv wlan0 set_mac_mode 33 = IEEE802.11b モードにして(詳細は上記ドキュメント参照)、
iwconfig wlan0 channel 7チャンネルを設定し(干渉を防ぐため、既存の AP のチャンネルから 4 以上間隔を空ける(例えば 1 と 5 など)ようにすると良い)、
iwconfig wlan0 key 1234-5678-1234-5678WEP キーを設定する(詳しくは man 参照)。128 bits までしか対応していないようだ(NDS は 152 bits まで対応している)。
尚、iwconfig wlan0 mode master を行った後に、直ぐに ESS-ID の設定を行おうとすると、失敗する場合がある。シェルスクリプトを書く場合は sleep 5 程度入れると良いだろう。
bridge-utils をインストール&設定
無線 LAN(USB)と Ethernet 側の NIC でブリッジを組むことにする(ちなみに、Windows では簡単に実現できる)。bridge-utils を導入する。Fedora ではディストリビューションのパッケージとして提供されているので、GUI のパッケージマネージャからインストールできる(他のディストリについては不明)。大雑把な使い方は次の通り(インターフェースを up した後で):
ifconfig eth0 0.0.0.0IP アドレスは環境に応じて変えること。ブリッジでは 2 つの NIC に同じ IP を割り当てることになる(最終行の 2 つめの引数)。
ifconfig wlan0 0.0.0.0
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 wlan0
ifconfig br0 192.168.0.100 broadcast 192.168.0.255 netmask 255.255.255.0 up
これで、wlan0 と eth0 がブリッジされ、相互接続が可能となる。
<現状>
Nintendo DS との相性の問題か、2 回に 1 回程度「アクセスポイントが込み合っている為云々」というエラーが出てしまう(通常の PC からの利用では問題ない)。その点に目を瞑れば AP として利用できるレベルを確保していると思われる。
<参考>
・WEP 暗号は既にクラッキングツールが出回っているため、ローカルネットワークに接続されてしまうことがセキュリティ上の問題に直結するような環境では利用すべきではない。必要なときのみ有効化するのがベストだろう。
・SSID を隠す(ステルスモード)ためには、ドライバ自体のソースを変更する必要があるようだ(未調査)。
・Nintendo DS のエラーコードについては、日本の Web サイトには解説が無いので、英語版 Customer Service サイトを利用するとよい(Error Code Lookup にエラーコードを入力し、System: DS として検索)。
追記(2008.04.15)
vendor driver の URI を更新(旧:http://dsd.object4.net/zd1211-vendor/)
RSS
Comments
いや、単に自分が知らなさ過ぎるだけか。
…勉強します
いや、かなりニッチな対象を想定してるので、えーと、もう、すいません(何