GOL @Wiki
WiFiを使用したWireless環境の設定
最終更新:
divadiva
-
view
OpenSolarisはWiFi環境にも対応している。
が、実際に設定を行ってみると、すんなりいかないことも多いのではないだろうか。OpenSolarisがどうこう、というよりも、一般的な無線LAN設定の問題、もあるわけだが、とにもかくにも、実際につながるまで発生した問題などを書いておく。
が、実際に設定を行ってみると、すんなりいかないことも多いのではないだろうか。OpenSolarisがどうこう、というよりも、一般的な無線LAN設定の問題、もあるわけだが、とにもかくにも、実際につながるまで発生した問題などを書いておく。
デバイス設定
まず最初にしなければならないのは、Wireless NIC Driverのインストールである。
なので自分が使用しているWiFi NICがどのようなチップを使用しているのかを知らなければならない。そしてそのチップ用のドライバが入手できなければ話にならん!と。
なので自分が使用しているWiFi NICがどのようなチップを使用しているのかを知らなければならない。そしてそのチップ用のドライバが入手できなければ話にならん!と。
私のマシンはIntel Pro Wireless 2100Bというチップを使ったNICを内蔵しているので、OpenSolarisのサイトから対応するドライバ(ipw)をダウンロードしてインストールした。
OpenSolarisのサイトにはマシン再起動しなくても認識されると書いてあるが、私の場合はインストール直後に、
OpenSolarisのサイトにはマシン再起動しなくても認識されると書いてあるが、私の場合はインストール直後に、
# ifconfig ipw0 plumb
しても認識されなかった。
だが、再起動後にifconfigコマンドを実行すると、無事認識され、マシンのWiFiアンテナランプが点灯した。
だが、再起動後にifconfigコマンドを実行すると、無事認識され、マシンのWiFiアンテナランプが点灯した。
(注意 2006/07/23)
この時点でエラーが発生してうまくいかないことがある。
この時点でエラーが発生してうまくいかないことがある。
- ドライバインストール時に「インストールはしたけどattachできねーよ」といわれる
- ifconfig ipw0 plumb すると file not found などというエラーが出る
- OS起動時に undefined symbol error が発生する(mac_freeがどうのこうの)
これらはカーネルのbuildバージョンとドライバがマッチしていない場合に出てくるのだ!
たとえばipw-0.5のドライバはon build 44以上を要求しているのだ。カーネルが古い場合はipwドライバも過去のものを使おう。
たとえばipw-0.5のドライバはon build 44以上を要求しているのだ。カーネルが古い場合はipwドライバも過去のものを使おう。
WiFi設定
デバイスが認識されたら、wificonfigコマンド(これもOpenSolaris.orgからパッケージを入手してインストールしておく)でWiFiの接続設定プロファイルを設定する。
ESSID、暗号化方式、認証方式などを設定するわけだが、一つ注意点。ipwのmanページにも記述があるが、現時点ではSharedKey認証がサポートされていない。認証方式としてはOpenSystem方式を利用することになるので、AP側の設定を、SharedKey固定などにしておくと接続ができないので注意である。
暗号化についてはWEPのみサポートされており、WEPキーは40bitまたは128bitのASCII文字列あるいは16進文字列が使用可能である。
ESSID、暗号化方式、認証方式などを設定するわけだが、一つ注意点。ipwのmanページにも記述があるが、現時点ではSharedKey認証がサポートされていない。認証方式としてはOpenSystem方式を利用することになるので、AP側の設定を、SharedKey固定などにしておくと接続ができないので注意である。
暗号化についてはWEPのみサポートされており、WEPキーは40bitまたは128bitのASCII文字列あるいは16進文字列が使用可能である。
また、wificonfigではなくGUIの設定ツールinetmenuを使用する場合、最近のAPが備えるESSID秘匿モードには対応しないので注意したい。wificonfigのscanコマンドで取得できないESSIDはinetmenuの設定対象にならないので、そういう場合はinetmenuではなくwificonfigで設定しなければならない。
で、例えば下記のコマンドで接続ができる。
手順としては、まずプロファイルを作成し、次にネットワークインタフェースに対してプロファイルを割り当てる、というかたちである。
手順としては、まずプロファイルを作成し、次にネットワークインタフェースに対してプロファイルを割り当てる、というかたちである。
まずはプロファイルの作成。ESSIDがプロファイル名となる。下記コマンドでは、WEP暗号化方式を指定し、WEPキー1に対してキー文字列を割り当て(1~4まで指定可能)、キー1を使用することを宣言している。
# wificonfig createprofile essid=YOUR_ESS_ID encryption=WEP wepkey1=YOUR_WEB_KEY wepkeyindex=1
プロファイル自体はいくつでも作成できる。作成したプロファイルは下記のコマンドで確認可能である。
# wificonfig showprofile
そしてプロファイル名をネットワークインタフェースipw0に割り当てる。インタフェース名は、使用するWirelessデバイスドライバによって異なる。
# wificonfig -i ipw0 connect YOUR_PROFILE_NAME
この後、
# wificonfig -i ipw0 showstatus
として、linkstatus:connected と表示されていれば、とりあえず接続だけは成功したことになる。
もしそれでもネットワークがうまくつながらなかった場合は、ifconfigコマンドで一度WiFiインタフェースをDOWNさせ、再度UPさせてみよう。
inetmenuに注意!
GUIツールのinetmenuには注意が必要。
svcsコマンドでも確認できるが、こいつはboot時にdhcpサーバにアクセスに行く。boot時にはAPに接続されていないので、dhcpサーバへのアクセスに失敗し、結果としてIPアドレスが不明な/etc/hostsファイルが生成される。
svcsコマンドでも確認できるが、こいつはboot時にdhcpサーバにアクセスに行く。boot時にはAPに接続されていないので、dhcpサーバへのアクセスに失敗し、結果としてIPアドレスが不明な/etc/hostsファイルが生成される。
(APに接続するには wificonfig -i ipw0 connect~ コマンドが実行されなければならないが、通常boot up時にこのコマンドが自動実行されることは無い)
たとえば/etc/hostsにstatic addressとマシン名を書いてあったとしても、それが削除されて、対応するIPアドレスが空になってホスト名だけが記述された、不正な/etc/hostsに書き換えられてしまう。
この動作は将来改善される可能性があるようだが、現時点ではどうしようもないので、inetmenuをsvcadmなどでdisableしておくことをおすすめする。
この動作は将来改善される可能性があるようだが、現時点ではどうしようもないので、inetmenuをsvcadmなどでdisableしておくことをおすすめする。
詳しくは、OpenSolaris.orgのDiscussonsの
「Automatic WiFi Connect on boot」スレッドを参照。
「Automatic WiFi Connect on boot」スレッドを参照。
最終的にこんなんなりました!
このところ出張でPCを持ち歩くことが多くなり、NW環境を頻繁に切り替えるようになった。また、当初はinetmenuふざけるな的な感じでいたわけだが、その後バージョンも上がり、変な動きをすることはなくなった(みたい)。
なので結局inetmenuを全面的に使うことになった。
なので結局inetmenuを全面的に使うことになった。
ホテルのネット接続環境は通常DHCPになるが、その環境はホテルによって微妙に異なる。当初は手作業で設定していたが、環境毎の「くせ」に合わせるのが非常にめんどくさいので、まぁやはりinetmenuが良いのである。
で、DHCPの設定についてもinetmenuで選択すればいいだけなのでとても簡単なのだが、やはりinetmenuの「くせ」がこれまたあったりするので、私は少しいじっている。
詳細についてはこちらのinetmenuの項目を参照。