2011年7月2日土曜日

CrunchBang Linuxで無線LAN、なのです

CrunchBang Linux(Statler)を持ち歩いて使ってみたいな、となると無線LAN接続できなきゃなあ、というわけでやってみたです。実験機と外出専用機のGateway EC19C-N52C/Sの無線NICはBroadcom BCM43225。有線(Atheros AR8151)で接続して設定を進めるです。設定はsudoでrootになって行うです。
CrunchBang Linuxを再インストールして日本語化した後、コマンドを実行して状態を見てみると、
lspci : BCM43225を認識している
lsmod : brcm80211はある
iwconfig : 無線のインタフェイスは無い(当然、ifconfigでも無線インタフェイスは表示されない)
だったです。で、次にdmesgを実行してbrcm80211関係を見てみると、

[ 9.950770] brcm80211 0000:02:00.0: firmware: requesting brcm/bcm43xx-0.fw
[ 9.993731] brcm80211: fail to load firmware brcm/bcm43xx-0.fw
[ 9.993736] brcm80211: Failed to find firmware usually in /lib/firmware/brcm
[ 9.993781] brcm80211 0000:02:00.0: PCI INT A disabled
[ 9.993797] brcm80211: wl_pci_probe: wl_attach failed!

となってたです。ファームウェアが合わないっぽいので、こちらを見て

aptitude update
aptitude install firmware-brcm80211 wireless-tools

を実行してrebootしてみたです。結果は、
lspci : BCM43225を認識している
lsmod : brcm80211はある
iwconfig : wlan0がある(ifconfigでもwlan0が表示される)

だったです。dmesgを実行してみると、

[ 9.629661] brcm80211 0000:02:00.0: firmware: requesting brcm/bcm43xx-0.fw
[ 9.905017] brcm80211 0000:02:00.0: firmware: requesting brcm/bcm43xx_hdr-0.fw
[ 9.996176] wlc_bmac_attach:: deviceid 0x4357 nbands 1 board 0xe021 macaddr: ~
[ 10.082077] wl_set_hint: Sending country code US to MAC80211
[ 10.082087] wl0: Broadcom BCM43xx 802.11 MAC80211 Driver 5.75.11 (1.82.8.0) (Compiled in . at 15:29:02 on Dec 10 2010)

ということで、うまくいったようです。
とりあえず、NetworkManagerを使わずに無線LANの設定をしてみるです。まず、runlevelコマンドを実行すると「N 2」と表示されるので、

cd /etc/rc2.d
mv S03network-manager s03network-manager
sh ./s03network-manager stop

でNetworkManagerを停止、無効化させたです。
我が家の無線ルータは
NECアクセステクニカのAterm WR8700Nで、WPA2/PSK(AES)、ESSIDステルスを有効にしてるです。

cd /etc/network
mv
interfaces interfaces.orig
cp
interfaces.orig interfaces
chmod 600
interfaces

を実行して、
/etc/network/interfacesを

---- ここから ----
# The loopback network interface
auto lo
iface lo inet loopback

# Atheros AR8151 Gigabit Ethernet
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp

# Broadcom BCM43225 wireless network
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid 無線ルータのESSID
wpa-psk 「wpa_passphrase ESSID
暗号化キー」を実行して作った長い文字列
wpa-key-mgmt WPA-PSK
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wpa-scan-ssid 1
wpa-ap-scan 2
---- ここまで ----

と書き換えてrebootすると、あっさり無線LAN接続できたです。
でも、これってもしかして、別の無線ルータを使う時は、その都度書き換えるってことになる?とか思って、wpa_supplicantを使ってみることにしたです。ifdown wlan0を実行してインタフェイスを停止させて、/etc/network/interfacesを

---- ここから ----
# The loopback network interface
auto lo
iface lo inet loopback

# Atheros AR8151 Gigabit Ethernet
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp

# Broadcom BCM43225 wireless network
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
---- ここまで ----

と書き換えて、/etc/wpa_supplicant/wpa_supplicant.confを新規作成し、これに、

---- ここから ----
ctrl_interface=/var/run/wpa_supplicant
ap_scan=2
network={
ssid="無線ルータAのESSID"
psk=
「wpa_passphrase 無線ルータAのESSID 暗号化キー」を実行して作った長い文字列
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP
group=CCMP
scan_ssid=1
}
network={
ssid="
無線ルータBのESSID"
psk=
「wpa_passphrase 無線ルータBのESSID 暗号化キー」を実行して作った長い文字列
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP
group=CCMP
scan_ssid=1
}
---- ここまで ----

と書いて chmod 600 /etc/wpa_supplicant/wpa_supplicant.confを実行してreboot。こちらも正常に無線接続できたです。WR8700Nを停止して、NEC Aterm WM3500Rの電源を入れ、CrunchBang Linuxをrebootさせると、DHCPでIPアドレス他が割り当てられるまで結構待たされたですが、WM3500Rに接続できたです。
ちなみに、出先でちょくちょく使うのは EAP-TTLSな無線LANなのですが、/etc/network/interfacesを

---- ここから ----
# The loopback network interface
auto lo
iface lo inet loopback

# Atheros AR8151 Gigabit Ethernet
allow-hotplug eth1
auto eth1
iface eth1 inet dhcp

# Broadcom BCM43225 wireless network
allow-hotplug wlan1
auto wlan1
iface wlan1 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
---- ここまで ----

に書き換え(インタフェイス名が変わるので)、/etc/wpa_supplicant/wpa_supplicant.confを

---- ここから ----
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="ほげほげ"
key_mgmt=WPA-EAP
eap=TTLS
identity="ユーザ名@ほげほげ"
password="パスワード"
phase2="auth=PAP"
}
---- ここまで ----

と書いてrebootすると、これも正常に接続できたです。
これで一瞬満足したですが、デスクトップに接続状態が表示されず、コマンド叩いたりブラウザを起動したりしないと無線接続できているのかわからない、というのはイマイチ(
EC19C-N52C前面左側の無線アクセスLEDも点灯してくれないし)なので、やっぱりNetworkManagerを使うことにしたです。wicdの方が良いよって話もあるけど。

ifdown wlan0
cd /etc/network
mv interfaces interfaces.test
mv interfaces.orig interfaces
cd /etc/rc2.d
mv s03network-manager S03network-manager

を実行して元通りに戻してreboot。後は、タスクバーのNetworkManagerのアイコンを右クリック、「接続を編集する」>「無線」タブで「追加」をクリック>「無線接続~の編集」ウインドウの「無線」タブ内を入力
SSID : 無線LANルータのESSID
モード : インフラストラクチャ
BSSID : 入力しなかった
MACアドレス : iwconfigで表示される無線インタフェイスのMACアドレス
MTU : 自動
続いて、「無線接続~の編集」ウインドウの「無線セキュリティ」タブ内を入力
セキュリティ : WPAとWPA2のパーソナル
パスワード : 無線LANルータのESSIDの暗号化キー

そして、「適用」をクリックして「閉じる」をクリック。これでOK。出先のEAP-TTLSな無線LANの場合、
「無線接続~の編集」ウインドウの「無線セキュリティ」タブで、
セキュリティ : WPAとWPA2のエンタープライズ
認証 : トンネル化TLS
匿名の識別子 : 入力しなかった
CA証明書 : (なし)
内部認証 : PAP
ユーザ名 : ユーザ名@ほげほげ
パスワード : パスワード
とすればOKだったです。

あ、忘れてた。日本語入力。これは、
aptitude update
aptitude install scim scim-anthy
reboot

して一発でうまくいったです。日本語入力の開始/終了は、Control+Spaceキーがデフォルト設定ですが、半角/全角キーでも可能にしたい場合は、デスクトップの何もない部分を右クリック >「SCIM入力メソッドの設定」>「フロントエンド」内の「全体設定」にある「開始/終了」右端の「...」をクリック>「開始/終了キーの設定」ウインドウの「キーコード」右端の「...」をクリック>半角/全角キーを押す>「追加」をクリックして、ウインドウ上部の「設定済のキー」にZenkaku_Hankakuが入ったことを確認>「OK」をクリック>「OK」をクリック、で
半角/全角キーで日本語入力のオン/オフができるようになるです







外出専用EC19C-N52CのWindows 7とほぼ同等のことがCrunchBang Linuxでできていることになり、何も困らなさそう。しかも、個人的にはなんだかWindowsより使い易い(SPARC-Sun-Solaris2.x+X11+Enlightenment or Blackboxで育ったせい?)。外出専用機のHDDを取り外して、SDHCカードにインストールしたCrunchBang Linuxを使えば満足できそうな気がしてきたです。

0 件のコメント:

コメントを投稿