ラズパイでのソフトウェアアクセスポイントを用いたクライアントとAPモードの並列使用
前回Raspberry PiでAPモードを用いることで無線LANでの親機として用いる方法を記載いたしました。
elsammit-beginnerblg.hatenablog.com
ただ、もし親機として使用しながら子機のようにも扱いたいな!!と思った時に
こちらの方法だと切り替えが必要になるよな。。。切り替えしたい時面倒だよな。。
と思っておりました。
まぁ、普通はそんなことしないよね😅
普通はこちらのように有線LANに接続しておいてWifiはAPモードで動かす、ルータ的な利用が普通ですよね🤣
www.itmedia.co.jp
ただ、、、やってみたい!!と思い調べてみたところ1つ方法を見つけました!!
ソフトウェアアクセスポイントを用いる方法です!!
■ソフトウェアアクセスポイントとは
APモードで動作させつつクライアントモードして動作させることが出来る。
要するに仮想的にwifiを二つに分けて片方をAPモードとして、もう一方をクライアントモードとして動作させる方法です。
具体的な手順はこちらにまとまっております。
https://wiki.archlinux.jp/index.php/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88
今回はRapsberry Piでソフトウェアアクセスポイントを用いて両方いいとこどりを目指していきたいと思います!!
■何を実施したか?
先ほどの記事からAPモードかつ単一モードであれば動作すると記載されていたため、
下記コマンドを実施の上、確認したところ
iw list
Supported interface modes: * IBSS * managed * AP * P2P-client * P2P-GO * P2P-device
#{ managed } <= 1, #{ AP } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1, total <= 4, #channels <= 1
出力されたのでまずは条件はOKと判断。
次に単一のWifiモジュール(今回はwlan0)を仮想的に二つに分けてみます。
とりあえずこちらのコマンドを実行!!
sudo iw dev wlan0 interface add wlan0_sta type managed
そうしたところ、
command failed: Device or resource busy (-16)
とのエラーとなりました。
こちらのコマンドを実行しても、
sudo iw dev wlan0 interface add wlan0_ap type managed
同じように、
command failed: Device or resource busy (-16)
と出力。。。
調べてみたところ、こちらの記事のようにwlan0を完全に停止させればよさそう。
https://bbs.archlinux.org/viewtopic.php?id=261603
ということでこちらのコマンドを実行!!
sudo ifconfig wlan0 down sudo ip link set dev wlan0 down sudo service wpa_supplicant stop
再度こちらのコマンドを実行!!
sudo iw dev wlan0 interface add wlan0_ap type managed
同じように
command failed: Device or resource busy (-16)
と出力。。。
■うまく行かなった理由
どうやら、ラズパイに組み込まれたWifiだとうまくいかない模様。。。
こちらのQAにもラズパイにWifiドングルを装着して解決したと記載されておりました。。。
https://superuser.com/questions/1148811/adding-virtual-interface-to-wlan0-with-iw-device-or-resource-busy-16
少し特殊な条件でのみ動作するんでしょうか??
それともwlan0を停止させることが出来ないのでしょうか??
■最後に
Wifiドングル付けたら仮想的に2つに分けずに物理的に用途分けて使いますよね😅
とりあえず、当面動かすことないと思うので先ほどの記事のように無線LANルータ化して使用しようかな??🤔
https://www.itmedia.co.jp/news/articles/2008/14/news042.html
後、ソフトウェアアクセスポイントだと仮想MACアドレスをセットしなければならないらしいけどいいのかな?
■参考
https://www.itmedia.co.jp/news/articles/2008/14/news042.html
https://wiki.archlinux.jp/index.php/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88
https://bbs.archlinux.org/viewtopic.php?id=261603
https://superuser.com/questions/1148811/adding-virtual-interface-to-wlan0-with-iw-device-or-resource-busy-16