2009年2月1日日曜日

FreeBSDで無線LAN

FreeBSDのrelease 7.1をインストールしてみた。理由はあまったノートをwebサーバーにしようと思っているから。FreeBSDのインストールは,インストールCDのイメージを取ってきて,CDからインストール。でもそれは起動だけに使って,インストールするファイルはネット上からHTTP-proxyを通して取ってくる作戦にしてみた。いろいろなアプリケーションはcvsupでportsを最新にしてからインストールした。インストールはこれまでデスクトップで数台行ってきたので,大きな問題なく完了。設定ファイルも他のFreeBSDマシンからコピーすればよいので,さっさと作業できた。

 ところが,一個問題が発生。それはサーバーの設置環境では,マシンを無線LANでつながないといけない,という点。そのためにはFreeBSDで無線LANを使えるようにしないといけない。そこで,無線LANに挑戦した。マシンはDynabookで,無線LANは,Intel 2200 PRO/Wireless 2200 Network Connectionが使われている。FreeBSD上ではiwiと認識される。以前,FreeBSDをインストールしたことがあったが,その時は/usr/ports/net/iwi_firmwareをインストールしたが,さすがに昨今の状況から無線LANは当たり前になってきたようで,iwi_firmwareは不必要だと言われてしまった。無線LANは,IEEE 802.11gで,WPA-PSK (TKIP)でパスワードで保護している。WPA-PSKとはWPAパーソナルと言われたりもするみたい。WEPよりもちょっとだけ安全度が高いみたい。でも全然大したことないのでTKIPというのが加えられて,より安全になっているみたい。以前の方法が使えないので,どうしようと悩んだが,とりあえずFreeBSDサイト(英語)でマニュアルを検索してみた。すると
 http://www.freebsd.org/cgi/man.cgi?query=iwi&sektion=4&manpath=FreeBSD+7.1-stable
にFreeBSD 7.1-release用のiwiドライバーの記述があった。そこの記述をみると,方法として,一つにはkernelの設定ファイルに以下の4行を加えて,kernelの再構築を行うというもの。
device iwi
device pci
device wlan
device firmware

もう一つは,/boot/loader.confに以下の行を加えて,起動時にmoduleを読み込む方法。今回は起動時にmoduleを読み込む方法を採用してみた。大事なのは最後の行を忘れないこと。これはLicenceに関することみたい。
if_iwi_load="YES"
wlan_load="YES"
firmware_load="YES"
iwi_bss_load="YES"
iwi_ibss_load="YES"
iwi_monitor_load="YES"
#
legal.intel_iwi.license_ack=1

さらに/etc/rc.conf に下記の行を追加する。
ifconfig_iwi0="WPA DHCP"

最後に /etc/wpa_supplicant.conf を作って,以下のように書く。
network={
     ssid="ほげ"
     scan_ssid=1
     key_mgmt=WPA-PSK
     psk="ふが"
}
ssidは無線LANのアダプターが出す情報,pskは自分で設定したパスワード。scan_ssid=1はなんだっけ?忘れた。気にしないでおこう。

これだけ設定して再起動したら,なんと無線LANがつながってしまった。世の中楽チンになったねぇ。

# ifconfig -a
iwi0: flags=8843 metric 0 mtu 1500
     ether 00:aa:bb:cc:dd:ee
     inet 192.168.xx.xx netmask 0xffff0000 broadcast 192.168.255.255
     media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
     status: associated
     ssid LTM_purehabu_G channel 8 (2447 Mhz 11g) bssid 00:11:22:33:44:55
     authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit bmiss 10
     scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi11g 7
     roam:rate11g 5 protmode CTS roaming MANUAL
fxp0: flags=8843 metric 0 mtu 1500
     options=8
     ether 00:0e:bb:cc:dd:ee
     inet 192.168.1.1 netmask 0xffff0000 broadcast 192.168.255.255
     media: Ethernet autoselect (100baseTX )
     status: active
lo0: flags=8049 metric 0 mtu 16384
     inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
     inet6 ::1 prefixlen 128
     inet 127.0.0.1 netmask 0xff000000
======================================================================
(追記)
実は,折角無線LANをつなげたけど,バッファローの無線LANルーターとの間だとよく通信が切れるみたい。これじゃサーバー向きじゃないから,サーバーマシンとしての無線LANはお預けにしてしまった。今回は有線でつなぐことにした。モジュールを読み込んで追加する方式にしてて正解やった。やめるのも/boot/loader.confを書き換えるだけで済んじゃったからね。

0 件のコメント: