CentOS 6.xでASUS USB-AC56を使う

CentOS 6.xで無線LANカード(ASUS USB-AC56)を使う

無線LANカード非搭載のCentOSで、USB-AC56を無線LANインタフェースとして利用する設定メモ。
この無線LANインタフェースは以下の点で導入を決めた。

  • IEEE802.11acに対応し、5GHzの通信で高速、障害物に強い(理論値867Mbps)
  • 867Mpbsの高速通信を活かせるUSB3.0接続
  • クレードル、拡張アンテナ付きで設置方式が多様、ラップトップでもデスクトップでも使いやすい

若干高いのが気になる(一般的な無線LANインタフェースが1000~3000円に対し、こいつは7000円程度)が、それでも上記内容から導入してよかったと思う。
なお、標準では無線LANインタフェースどころか、チップセットも正しく認識してくれない。

usb 1-3: new high speed USB device number 4 using ehci_hcd
usb 1-3: New USB device found, idVendor=0b05, idProduct=17d2
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: 802.11n NIC
usb 1-3: Manufacturer: Realtek
usb 1-3: SerialNumber: 123456
usb 1-3: configuration #1 chosen from 1 choice

この状態から、ドライバをインストールし無線LAN設定を行う。

Realtekのチップセットをドライバをインストールし、無線LANインタフェースとして認識させる

参考:https://github.com/gnab/rtl8812au
Wikiなどによると、USB-AC56はRealtekの8812AUを使用しているらしく、有志が作成している8812AU用ドライバをビルドしてインストールする。

git clone https://github.com/gnab/rtl8812au.git
cd rtl8812au/

make && insmod

dmesg | tail -n 1

成功すると、dmesgに下記の1行が表示される。

usbcore: registered new interface driver rtl8812au

最後にカーネルのモジュールに組み込む。
成功すれば、NICとして認識されるようになる。

cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/
depmod

ifconfig -a


wlan0 Link encap:Ethernet HWaddr zz:yy:xx:vv:uu:ww
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

当然のことながら、udevのNIC登録スクリプト内に今回追加したUSB-AC56をwlanNとして認識するエントリが追加されている。

cat /etc/udev/rules.d/70-persistent-net.rules


# USB device 0xXXXX:0xXXXX (usb)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”zz:yy:xx:vv:uu:ww”, ATTR{type}==”1″, KERNEL==”wlan*”, NAME=”wlan0″

wlanNの設定を行う(WPA2)

参考:http://www.linuxmania.jp/wireless_lan.html
WPA2の設定を行うためにwap_supplicantというパッケージをインストールする。

yum install wpa_supplicant

wpa_passphraseというコマンドで、ESSIDと対応するパスワードの設定を生成する。

cp -piv /etc/wpa_supplicant/wpa_supplicant.conf{,.org}

_essid="ESSID HERE"
_passphrase="PASSPHRASE HERE"

wpa_passphrase "${_essid}" "${_passphrase}" >> /etc/wpa_supplicant/wpa_supplicant.conf

動作確認

wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -D wext

フォアグラウンドで動作し、アクセスポイントに接続を試みる。
成功すれば、以下のような出力が出る。

Associated with ZZ:YY:XX:WW:VV:UU
WPA: Key negotiation completed with ZZ:YY:XX:WW:VV:UU [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED – Connection to ZZ:YY:XX:WW:VV:UU completed (auth) [id=0 id_str=]

DHCPを有効にしている場合は、dhclientを起動し、IPアドレスをもらえるか確認する。

dhclient -d wlan0

Internet Systems Consortium DHCP Client 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/zz:yy:xx:vv:uu:ww
Sending on LPF/wlan0/zz:yy:xx:vv:uu:ww
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 4 (xid=0x12345678)
DHCPOFFER from 192.168.0.1
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 (xid=0x12345678)
DHCPACK from 192.168.0.1 (xid=0x12345678)
bound to 192.168.0.5 — renewal in 37308 seconds.

この状態でCtl+Cで抜け、ifconfigにてインタフェースを確認すると、IPアドレスが払い出されていることが確認できる。

wlan0 Link encap:Ethernet HWaddr zz:yy:xx:vv:uu:ww
inet addr:192.168.0.5 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8324 (8.1 KiB) TX bytes:4478 (4.3 KiB)

動作が確認できたら一旦フォアグラウンドで動いているwpa_supplicantをCtl+Cで停止させておく。

最後に恒久的に動作するよう設定を入れる。

cp -piv /etc/sysconfig/wpa_supplicant{,.org}
sed -i -e 's/^DRIVERS=""$/DRIVERS="-D wext"/' /etc/sysconfig/wpa_supplicant
sed -i -e 's/^INTERFACES=""$/INTERFACES="-i wlan0"/' /etc/sysconfig/wpa_supplicant
diff /etc/sysconfig/wpa_supplicant{.org,}

cat <<CONF > /etc/sysconfig/network-scripts/ifcfg-wlan0
DEVICE="wlan0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Wireless"
CONF

chkconifg wpa_supplicant on
/etc/init.d/wpa_supplicant start

ifconfigで確認するとwlan0でIPアドレスが払い出され、ネットワークに接続できることが確認できるはず。

メモ

wpa_supplicantが起動した後、ifup wlan0をやらないと正しくDHCPでIPアドレスが払いだされない様子。
chkconifg wpa_supplicant onqをし、ifcfg-wlan0内にONBOOT=”yes”を記載した状態であっても、OSを再起動するとwlan0インタフェースが上がっているが、IPアドレスがはらいだされていない状態になっている。
(ifup wlan0を手動で実行すると、DHCPでIPアドレスが払い出され、正常に接続できる)

暫定対応として、/etc/rc.local(/etc/rc.d/rc.local)の末尾に”ifup wlan0″を追加しておく。

echo "ifup wlan0" >> /etc/rc.local

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です