Linuxカーネルが認識したwifiネットワークアダプタがアクセス・ポイントになれるかどうかをチェックするには、iwコマンドを利用します。まず最初に、カーネルが認識したネットワークデバイスの基本情報を表示させます。
root@RPi-Dev:/etc/hostapd# iw dev phy#0 Interface wlan0 ifindex 4 wdev 0x1 addr b8:27:eb:48:76:23 type managed phy#1 Interface wlan1 ifindex 3 wdev 0x100000001 addr 00:13:ef:6b:19:cb ssid HOME-Wifi type managed
実はこの例は私のラズベリーパイ3のもので、phy#0/wlan0が内蔵wifiチップを、phy#1/wlan1が外付けしているUSB wifiアダプタです。ここで、物理ハードウェアIDとそれに対応するデバイス名、それぞれのMacアドレス、さらにwlan1の場合にはHOME-WifiというSSIDのワイヤレスに接続していることが表示されています。
では、wlan0に現在割り振られているphy#0が、wifiアダプタとしてどんな機能を持っているかをチェックしてみましょう。このためにはiw infoコマンドを使います。なお、物理番号とデバイス番号は必ずしも一致するとは限らないので、必ずiw devで確認してから実行してください。
$ iw phy0 info | less Wiphy phy0 ... Supported interface modes: * IBSS * managed * AP * monitor * P2P-client * P2P-GO ...
iwは詳細な情報を表示しますが、とりあえず注目しなければいけないのが、Supported interface modesです。この例ではIBSS (ad-hocネットワークアクセス)、managed(別名インフラストラクチャーモード:一般的なwifiモードのこと)、monitor (パケットモニタリングモード)、P2P-Client, P2P-GO, APとあります。この中にAP(アクセス・ポイント)があればこのwifiアダプターはAPとして使えます。
Capablities
Capabilitiesもチップセットで実装されている機能を表すものですが、こちらの方はネットワークアダプタとしてよりも省電力装置の実装方法とか、使える電波帯、その電波帯で使える機能を表しています。例えばPi 3内蔵のwifiチップでは次のようになっています。
... Capabilities: 0x1020 HT20 Static SM Power Save RX HT20 SGI No RX STBC Max AMSDU length: 3839 bytes DSSS/CCK HT40 ...
この情報が実際に必要になることは少ないのですが、まれにhostapdのht_capabの中で指定しなければならないこともあります。
Virtual Network Interface
Virtual Network Interfaceというのは、一つのwifiチップであたかも複数のネットワークデバイスが存在するかのように振舞う機能で、例えば一つのチップで、AP機能とWifiクライアント機能を同時に実現したりできます。
これを確認するためのiwコマンドで表示される情報は、valid interface combinationです。Pi 3内蔵のwifiチップだと以下のように表示されています。
valid interface combinations: * #{ managed } <= 1, #{ P2P-device } <= 1, #{ P2P-client, P2P-GO } <= 1, total <= 3, #channels <= 2 * #{ managed } <= 1, #{ AP } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1, total <= 4, #channels <= 1
もしVirtual Network Interfaceにwifiチップが対応していない場合は、
interface combinations are not supported
と表示されるはずなので、iwで表示される限りは、Pi 3のwifiチップ一つでwifi APとインフラストラクチャーモード、P2Pが同時に実現できるはずです。
しかし、残念なことに実際に実現できたという話はありません。これはRaspbianのwifi実装部分が多少他と異なっていることや、hostapdのコンパイルオプションによるものらしいのですが、解明できていないようです。現在のところはPi 3の内蔵wifiではAPかインフラストラクチャーモードのどちらか排他利用しかできようです。これはバージョンアップを待つしかないようですね。