UbuntuでWN-G300UA(8192cu)を使ったアクセスポイント仮想化

2017年5月現在、Linux、Debian、Ubuntu、AP、WiFi、アクセスポイントなどをキーワードにしてググると、LinuxでAP化についてそれなりにたくさん情報が入手できる。でも、情報が古かったり安定って書かれてても実はそうでなかったり、意外と単一記事情報だけでは安定稼働にたどり着けなかった。
最初はVyOSでwlan0認識させるのがスマートだ!と思っていたものの、サックリとうまくいかず再起動を繰り返し、ネット遮断がタルくなった(ポンコツだ)。

ルーターも仮想化したし、そうだAPも仮想化しよう

注目すべき構築ポイントは、インターフェイス認識と、Wi-Fiデバイスモジュール(ドライバ)が適切かの2つ。前者はUbuntuの自動認識に任せ、後者はフィクス版に入れ替えることで安定した。以下を真似れば、そのままド安定するものとして覚え書きのメモ。

環境・使用したもの

・ESXi 5.5.0
・ubuntu-16.04-server-amd64.iso で仮想インストール
IOデータ WN-G300UA
・USBデバイスパススルー(「Realtek WN-G300UA」認識)
・create_ap(hostapd)

16.04 LTS標準の8192cuモジュールは諦めるべき

Ubuntuインストール直後にパススルーでWN-G300UAを接続しても自動認識する。一見、問題なく使えるように見えるけれど、iwconfigコマンドで見て「Power Management:off」になっているにも関わらずデバイスがサスペンドしてしまう。
さまざまな情報を頼りにOffにしたつもりでも、表示に反してハマり続ける始末(1か月くらい試行錯誤したポンコツ)。そのためUbuntuデフォモジュールは早々に諦めるのが吉であり、有志のフィクスモジュールへ入れ替えることで超安定した。

/etc/network/interfaces はデフォのままいじらず

とにかく簡単に済ませたいので、インターフェイス周りはUbuntuデフォでいっさい変更しない。以下は、Ubuntuインストール時に固定IPアドレスで設定した場合だが、DHCPでも構わないと思う(メンテしづらいから固定よね)。

wlan0でなくてもそのまま使う、まったく問題ない

WN-G300UAを仮想マシンにUSBデバイスパススルー接続したら、dmesgで認識状況してみると次のようになる。Ubuntu 16.04 LTSの場合は(10.04以降)、wlan0からwlx3476c541xxxxなどと自動変更されるが、とにかく編集個所を少なく済ますのでそのまま使う。

rtl8192cu 1-1:1.0 wlx3476c541xxxx: renamed from wlan0
などの行が確認できるかがポイント。あちこちで定番と書かれていたWLI-UC-GNM2(バッファロー)なども試したが、お手軽完全自動認識なのは、WN-G300UAだけだった(当方で数製品試した中で)。

create_apで十分、神スクリプト

この状態で、ifconfigでインターフェイス状態を見ても、刺した直後は有効になってないため確認できない。でも、iwconfigでリンク状態ならば問題ない。次に、hostapdを超簡単に機能させるcreate_ap をインストールする。hostapdも設定のハマりどころがたくさんある。もうcreate_apに任せるべきw ついでに、iwconfigコマンドが含まれるパッケージ(wireless-tools)も入れておく。

iwconfig で確認すると次の通り。現在のところ、11n有効にできず11gのままで54Mbpsリンク。まぁ、スマホ繋げる程度なので私的にはこのスピードで十分。よって放置。。。

などとして起動すれば、hostapd設定もいっさい必要なくアクセスポイントが完成。超簡単!
この時点でifconfigしてみると、Wi-Fiインターフェイスも確認できる。

最後に、再起動してもcreate_apが自動起動するようにrc.localに書いておく(超適当w)。

終わり! もう二度と構築しないぞ、とovaエクスポートしておきつつ(覚書不要な件w)、16.04 LTSなのでメンテナンスフリーのまま2、3年以上環境壊れないで使い続けられればいいなぁと期待。たぶんイケる。

もう、この環境で1か月以上24時間ド安定しています。




コメントを残す

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

*