« All-In-One Eclipseを使用する | トップページ | sane の Update でスキャナを認識しなくなる »

2007/05/13

librettoU100とVineLinux4.1でWPA-PSKの無線LANを使用する

以前、librettoU100とVineLinux3.2で無線LANを使うという記事で、めちゃめちゃ苦労しながらWEPでの無線LAN使用に成功し、VineLinux4.0からは簡単に無線LANが設定できるようになったため、librettoU100&VineLinuxで無線LANを満喫しております。

が、以前から頭にひっかかることがあったのでした。
今時、WEP でいいのか!? という点です。
Linuxで無線LANを使いたいがために、家中の無線LANの設定がWEPになっているのです。

そんな折、@ITで無線LANをWPAで暗号化して使用するにはという記事が出ていました。
なに!?LinuxでもWPA-PSKで無線LANできるのか!?これはやってみなくては!
ただし記事とは違って、嫁のWindowsノートがWPA-AESに対応していないので、WPA-TKIPでの設定です。


今回の環境
機種
libretto U100/190DSB
OS
Vine Linux4.1
ルータ
BUFFALO の AirStation WHR-HP-G54

まず前提としてルータの設定です。
ルータをWPA-PSKのTKIPに設定するのですが、
注意点としてESSIDをブロードキャストしないステルスモードでは
接続できないようです。ESSIDをサーチしに行った時に空白のIDが
返って来てしまいました。
私のルータ(BUFFALO の AirStation WHR-HP-G54)では、
「Any接続を許可」する設定になります。


アプリケーション→システム・ツール→Synapticパッケージマネージャ
でSynapticを起動
Synaptic のリポジトリに extras を追加していない場合は、
追加する必要があります。
Synapticの 設定→リポジトリ の各セクションに、extras を追加します。
セクションは、全体で
main plus updates nonfree extras
になります。

Synapticの再読み込みを行うと wpa_supplicant が追加されるので、
Synapticから wpa_supplicant をインストールします。

wpa_supplicant-gui ってのもあるので、一緒にインストールしておきました。
これはGUIでwpa_supplicantの状態をチェックできるので、
入れておくと確認が楽です。これのインストール時に、
一緒に qt もインストールされます。

/etc/sysconfig/wpa_supplicant を編集します。

# wlan0 and wifi0
# INTERFACES="-iwlan0 -iwifi0"
INTERFACES="-iath0"
# ndiswrapper and prism
# DRIVERS="-Dndiswrapper -Dprism"
#DRIVERS="-Dmadwifi"
DRIVERS="-D wext"


コメント(#)の無い所のみ必要です。あとはいりません。
INTERFACES="-iath0"
の部分ですが、libretto U100/190DSB は無線LANのチップに
Atheros製のチップ(Atheros AR5005GS)を使用しているので
ath0 になります。

#DRIVERS="-Dmadwifi" をコメントしていますが、ここはハマリどころでした。
WEPではmadwifiで無線LANの接続ができていたので、
ここでももちろんmadwifiを使用するものだと思ってました。
madwifiを使用すると途中までうまく行くのですが
途中で
Association request to the driver failed
と出て接続に失敗します。
デバッグモードで詳細を見ると、
ioctl[IEEE80211_IOCTL_SETMLME]: Invalid argument
ってなっていました。

今回は
DRIVERS="-D wext"
が正解でした。
ただ、ネットで調べるとmadwifiでうまくいっている人もいるので、
バージョンなどでまた変わってくるかもしれません。


# wpa_passphrase 無線LANのSSID
とコマンドすると、パスフレーズを聞かれますので、
WPAに接続するパスフレーズを設定します。
(ルータに設定したものと同じ物です。)
すると、入力したパスフレーズが暗号化されて画面に表示されるので
これをコピーして
/etc/wpa_supplicant/wpa_supplicant.conf
に貼り付けます。

私の環境の /etc/wpa_supplicant/wpa_supplicant.conf は、
このようになっています。

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

network={
        ssid="無線LANのSSID"
        key_mgmt=WPA-PSK
        proto=WPA
        pairwise=TKIP
        group=TKIP
        #psk="入力したパスフレーズ"
        psk=暗号化されたパスフレーズ
}


WPA-AESの場合は、TKIPの部分がCCMPになるそうです。


/etc/sysconfig/network-scripts/ifcfg-ath0
を修正します。
ここに余計なものがいろいろと書かれていると
接続に失敗しました。
ここで必要なのは、DHCPを使用できる設定にすることです。
でないとDHCPでIPをもらえません。
私の環境ではこうです。

BOOTPROTO=dhcp
ONBOOT=yes
DEVICE=ath0
HWADDR=00:00:00:00:00:00 ←ここはlibrettoのMACアドレス
TYPE=Wireless
ESSID=無線LANのESSID


設定はこれだけです。

接続のテストをするのですが、その前にやっておくことがあります。
アプリケーション→システムツール→ネットワークの設定
を起動して、ath0が動いていたら停止させます。
これをやっておかないと wpa_supplicant がタイムアウトしてしまいます。
ここでもハマりました・・・。

wpa_supplicant を起動させます。
# /etc/init.d/wpa_supplicant start
ちなみに止めるのは start が stop になります。

次に、wpa_supplicant-gui を起動させます。
# /usr/bin/wpa_gui

wpa_supplicant-gui でconecct とかすると、
接続が開始されます。
イベントに CTRL-EVENT-CONNECTED って出ていればOKです。

でも、このままではまだ繋げません。
DHCPからIPを取得できていないからです。
アプリケーション→システムツール→ネットワークの設定
を起動して、ath0が動いていたら停止させます。
再度 ath0を動かすと、IPを取得していると思います。
# ifconfig
で確認し、ath0 に正常なIPが割り振られていれば、
無線LANに接続できています。


次に、自動起動の設定です。
ath0が接続する前に wpa_supplicant を起動させる必要があります。
デフォルトだとここがうまく行かないので
/etc/init.d/wpa_supplicant の
chkconfig: 部分を - 12 88 から 2345 09 88 に 変更します。
ちなみに、2345はランレベル、09は開始順、88は終了順です。
最初の部分は、

#!/bin/bash
#
# wpa_supplicant
#
# chkconfig: 2345 09 88
# description: wpa_supplicant is a WPA Supplicant for Linux, BSD and \
# Windows with support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant \
# is the IEEE 802.1X/WPA component that is used in the client stations. \
# It implements key negotiation with a WPA Authenticator and it controls \
# the roaming and IEEE 802.11 authentication/association of the wlan driver.#
processname: wpa_supplicant
# config: /etc/wpa_supplicant/wpa_supplicant.conf
#

となります。

で、
# chkconfig wpa_supplicant on
とコマンドすれば、自動起動が有効になります。

再起動して確認すると、無線LANに接続できていると思います。
が、できていないこともあるんです。このへんは何故なのかまだよく解りません。
その時は、
アプリケーション→システムツール→ネットワークの設定
を起動して、ath0が動いていたら停止させます。
再度 ath0を動かします。
で、接続できます。

07/05/15 追記 上記起動時にうまく接続できない件ですが、
/etc/sysconfig/network-script/
に、ifcfg-wifi0 という全然使っていないファイルがあったのが原因みたいです。
(起動時に毎回接続しようとして落ちてました。(笑))
このファイルを他のディレクトリに移動させれば、うまくつながるようになりました。


おまけ
wpa_supplicant -h
でヘルプ。使用できるドライバも見れる。

wpa_supplicant -iath0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Dwext -w
で、wpa_supplicant のログを見ながら起動できる。Ctrl+C で停止。
(wpa_supplicant-gui のイベントログと同じ)

wpa_supplicant -iath0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Dwext -dd
で、wpa_supplicant のデバッグログを見ながら起動できる。Ctrl+C で停止。


参考にしたページ
YANO's digital garage
madwifiでもwextを使うところ、起動スクリプトの書き換え、など参考にさせていただきました。

Linux上でのWPA/PEAP-TKIP設定
Vine Linux 3.2、madwifi、wpa_supplicant-0.3.9、WPA-EAP での接続実績です。

[Fedora 2708] madwifi WPA-PSK(TKIP) + wpa_supplicant動作報告

ryoblog Redhat9.0 + WLI-CB-G54 + WPA(AES)

shag の日記 2007-01-25 Ubuntu Edgy で無線LAN を WPA-PSK で使う

他いろいろ・・(忘れた・・・。)
上記の方々の情報のおかげです。本当にありがとうございます。

|

« All-In-One Eclipseを使用する | トップページ | sane の Update でスキャナを認識しなくなる »

librettoU100」カテゴリの記事

VineLinux」カテゴリの記事

無線LAN」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/54336/15056747

この記事へのトラックバック一覧です: librettoU100とVineLinux4.1でWPA-PSKの無線LANを使用する:

» やっと無線LAN接続完了 [Turtle日記 Annex]
やっと無線LAN接続完了。ふぅ、よかった~。 結局 http://blog.enjoitech.jp/detail.php?aid=95 にあるとおり、ipw2000ドライバ(ソースコード)とファームウェア(RPM)をインストールしてieee802.11は変更しませんでした。 あとは http://hirotyanteikoku.cocolog-nifty.com/cocolog/2007/05/librettou100vl4_c6ef.html のページを参考に、wpa_supplica... [続きを読む]

受信: 2007/11/23 21:39

» [pc]自宅の無線LANの設定をやっとWEP→WPA-AESに変更、、、したら結構対応していない機器が多くて困る。 [趣味と物欲]
DSが対応していないのは予想していたんだけど、Zaurus SL-C1000やRD-XS40に繋げているイーサネット変換アダプタも使えなくなってしまった。あとLinuxもUbuntsuやVineは標準で簡単に設定できるのはWEPだけのようだった。Linuxは設定をいじればなんとかできるかもしれないけれ... [続きを読む]

受信: 2007/12/10 11:28

« All-In-One Eclipseを使用する | トップページ | sane の Update でスキャナを認識しなくなる »