2016年3月20日日曜日

UbuntuのWi-Fiアクセスポイント化

いま手元にUbuntu 14.04のPCがあるのでこれを
Wi-Fiアクセスポイントにしてみた。

すぐできるとおもったが手間取った。
ジャパニーズの書いた記事を読むと
hostapdをたててNetworkManagerを殺せ的なことが書いているが
面倒なのでやりたくなかった。

まず参考にしたのがこれ
http://ubuntuhandbook.org/index.php/2014/09/3-ways-create-wifi-hotspot-ubuntu/
手順を要約する
①ネットを切れ
②ネットワークマネージャのメニュから編集を選び追加ボタンを押せ
③ドロップダウンからWiFiを選び作成ボタンを押せ
④Wi-Fiタブを開き
 適当な接続名を入れろ
 SSID名も入れろ
 モードはインフラストラクチャをえらべ
 デバイスのマックアドレスにWiFiのMACアドレスを入れろ
⑤WiFiセキュリテイタブで
 WPA & WPA2 Personal
 を選びパスワードを入れろ
⑥IPv4設定で
 方式から 他のコンピューターへ共有 をえらべ
おわったら保存せよ

でさらにつづき
④の接続名のファイルがwifi-hotspotならそのファイルが
/etc/NetworkManager/system-connections/wifi-hotspot
のようにあるのでそのファイルをまずひらけ
gksu gedit /etc/NetworkManager/system-connections/wifi-hotspot
(sudo vi /etc/NetworkManager/system-connections/wifi-hotspot)
この中に
mode=infrastructure
の行があるので
mode=ap
に直せ
 
ですべてOKでつなぐとアクセスポイントができる的なことが書いているが
私の環境ではうまくいかなかった。
 
悪あがきして
ネットワークマネージャーのメニューで
”新しいWi-Fiネットワークを作成”を選んで先ほど作ったものを選ぶと
 
 接続を有効にするのに失敗しました
(32) Access Point (AP) mode is not supported by this device. 
のメッセージが表示される。

実はこれには続きがある  
このPCは実はDualBootであってWindows側ではアクセスポイント化できてたので
ハード的には問題ないのが私にはわかっていた。
そこでさらにさがすと
http://ubuntuhandbook.org/index.php/2014/09/wifi-hotspot-access-point-not-supported/
これにいきあたる
 
結論から言うとドライバーがまずいから差し替えろということ
たまたま私のPCのドライバーも上記ページと同じwl
なので対策も同じにした。ただドライバの追加と削除をGUIからしろ
という指示には耐えられないのでそれは違うやり方にした
以下に書く
①iw list
  を実行
 Supported interface modes:
* IBSS
* managed
のような表示だった。
これがAPをサポートするものなら
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor 
のようにAPが出る。
 
②理屈はともかくこれを実現するためにはカーネルモジュールwlを
brcmsmac
にかえればよい。(その理屈は上記ページをみてください)
まず
sudo apt-get install firmware-b43-installer
のあと
sudo vi /etc/modules
で brcmsmac 追記
さらに
sudo vi /etc/modprobe.d/blacklist.conf
で wl 追記 
 これで再起動すると自動的にAPできてた。
 
ただこのままだと普段のようにWiFiアクセスポイント一覧がでなくなるので
元にもどすときはふたたび両方をコメント(先頭に#)でOK
 
このドライバーの差し替えを上記ページだとGUIからしろとかいているけど
実際やると遅くていやになるのでやめたほうがいい。 
 
結局hostapdを使うのとたいして変わらない手間が出るのが私らしさか…。 

windowsでアクセスポイント化する手法もついでに書いておく
というかアプリを紹介するだけだが。
http://virtualrouter.codeplex.com/
これをつかうとコマンド操作なく一発でできるのでぜひ使って下さい。
つかいかたは好きなSSID、PASSを入れて開始するだけ。
こちらも切れやすいとかIPv6がなんだとか面倒な問題はあるけど
調べたらどこでも載ってるからかかない。