Linux
WiFi

802.11mc対応APの構築

Android P developper preview が 802.11mc / FTM / ToF / Indoor positioning with Wi-Fi RTTに対応したというこで802.11mcの評価環境について調べてみました。

自分の理解では、この機能を使うには対応したAPを用意しないと使えません。

現時点(2018-03)には、市販されているAPは対応していません。(そのうち Google Wifiが対応するような気がしますけど。)

結論から言うと、「 Intel 8260 を搭載したLinuxマシンを使って、802.11mc対応APを構築できる。」です。 (でも自分は試せてません)

手順は
https://bugzilla.kernel.org/show_bug.cgi?id=197187
のチケットのコメントとリンクに書いてありますが、まとめてみます。

追記

Google I/O 18 の セッション How to get one-meter location-accuracy from Android devices (Google I/O '18) で、Google WiFiがまもなく11mc対応することが正式発表されてました。ビデオの21分ごろです。

802.11mc対応AP構築手順

準備

AP 操作手順

  • ドライバをロード
  • hostapでAPを起動
driver=nl80211
interface=wlan0
hw_mode=g
channel=13
wmm_enabled=1
ssid=tof_test
ftm_responder=1
ftm_initiator=1
  • sysfsからtof responderの設定を行う
# cd /sys/kernel/debug/iwlwifi/0000:06:00.0/iwlmvm/netdev:wlan1
# echo channel_num=1 > tof_responder_params#
# echo bssid=bb:bb:bb:bb:bb:bb > tof_responder_params
# echo rate=1 > tof_responder_param
# echo ftm_per_burst=5 > tof_responder_params
# echo send_responder_cfg=1 > tof_responder_params

STA 操作手順

  • ドライバをロード
  • tofリクエストを送信して、tofレスポンスを表示 bb:bb:bb:bb:bb:bb はAPのMACアドレスに置き換える。
# cd /sys/kernel/debug/iwlwifi/0000:06:00.0/iwlmvm/netdev:wlan1
# echo send_tof_cfg=1 > tof_enable
# echo 'num_of_ap=1' > tof_range_request
# echo 'ap=0 1 0 0 bb:bb:bb:bb:bb:bb 0 10 0 5 5 0 0 0 0 -40' > tof_range_request
# echo 'send_range_request=1' > tof_range_request

# cat tof_range_response
request_id = 0
status = 2
last_in_batch = 1
num_of_aps = 0
  • iw を使ってftm requesstを送信して、レスポンスを受信。bb:bb:bb:bb:bb:bb はAPのMACアドレスに置き換える。
# echo bb:bb:bb:bb:bb:bb bw=20 cf=2472 > /tmp/config.txt
# iw dev wlan0 ftm_request /tmp/config.txt
phy #1: FTM result! Status: 0
Target: bb:bb:bb:bb:bb:bb, status: 4, rtt: 0 psec, distance: 50 cm

あとがき

  • さて、これ本当に動くんでしょうかね。
  • まぁ、もうちょっとしたら、お手軽に試せるようになるとは思います。
  • それから、802.11mcのスペックは2017/12/31にpublishされたので、半年後の2018/06/01にget802のページから無料でダウンロードできるようになります。