OSAKA NDS Embedded Linux Cross Forum #5

無線LANソリューションの構築方法について

2017年7月5日
ユークエスト株式会社

サマリー
会社概要
主な沿革

無線LANの基本的な構成
インフラストラクチャモード、P2Pモード

無線LANの基本的な機能
周波数帯、チャネル、伝送レート、セキュリティ

無線LANのソフトウェア開発
無線LANソフトウェアの構成、移植、検証

会社概要
会社名
設立
従業員
資本金
主な株主
所在地

ユークエスト株式会社 UQUEST, LTD.
2003年10月（2012年7月社名変更）
65名
2億円
株式会社東光高岳【東京本社】
東京都台東区上野1-10-12 商工中金・第一生命上野ビル7F【神戸支社】
兵庫県神戸市中央区磯上通7-1-8 三宮インテス8F

会社概要
主な沿革
1989年 株式会社神戸製鋼所新分野事業部発足
リアルタイムOS ‘VxWorks’ 販売開始
1997年 組込みミドルウェア製品の開発／販売開始
USBホストドライバ、TCP/IP、無線LANドライバ
2003年 東電ユークエスト株式会社設立
2009年 エネルギー監視ソリューションEcoQuestを発売
2011年 通信モジュール内蔵ルーターを発売2012年 ユークエスト株式会社へ社名変更

無線LANの基本的な構成

パソコン

スマートフォン

ゲーム機

無線LANルータ
デジタルカメラ
アクセスポイント(AP)ステーション(STA)

無線LANの基本的な構成

パソコン
テザリング

公衆無線LAN
スポット

ゲーム機

デジタルカメラ
アクセスポイント(AP)ステーション(STA)

無線LANの基本的な構成
インフラストラクチャモード

アクセスポイント（親機）
ステーション（子機）

アクセスポイントが親機となり、複数のステーション(子機)が接続される。

無線LANの基本的な構成
インフラストラクチャモード
アクセスポイント(AP)
周期的にビーコンを送信する
SSID, セキュリティの設定を行う

ステーション(STA)
スキャンを行うことによりAPを検索する
APを選択して、接続する
APのセキュリティの設定によって、キーの入力が必要※APとSTAで自動的にSSIDやセキュリティの設定を行うこともできる→WPS (Wi-Fi Protected Setup)無線LANの基本的な構成
P2Pモード（Wi-Fi Direct）

アクセスポイント（親機）

ステーション（子機）

基本的に1対1の接続となる。
接続時にネゴシエーションを行い、どちらがアクセスポイント（親機）に、どちらがステーション（子機）になるかを決定する。
接続する際は、WPSを使う。
どちらかを強制的に親機とする接続方法もある。
Miracastでは、P2Pモードでの接続が必須となっている。

無線LANの基本的な構成
P2Pモード（Wi-Fi Direct）

グループオーナー
クライアント3台以上でグループを構成することもできる。
親機には複数の子機を接続することができる。
Wi-Fi Directに対応していない子機も接続できる。
親機はグループオーナー、子機はクライアントと呼ばれる。

無線LANの基本的な機能
無線LANの周波数帯とチャネル(日本の場合)
2.4GHz1～14ｃｈ ※14chはIEEE802.11bのみ
5GHz
36, 40, 44, 48ch(W52)
52, 56, 60, 64ch(W53)
100, 104, 108, 112, … , 140ch(W56)

無線LANの基本的な機能
無線LANのモードと伝送レート
IEEE802.11b(2.4GHz) 11Mbps
IEEE802.11g(2.4GHz) 54Mbps
IEEE802.11a(5GHz) 54Mbps
IEEE802.11n(2.4/5GHz) 150/300/450/600Mbps
20/40MHz幅 1x1/2x2/3x3/4x4IEEE802.11ac(5GHz) 433/867/1300/1733Mbps
20/40/80MHz幅 1x1/2x2/3x3/4x4

無線LANの基本的な機能
無線LANのセキュリティ
WEP Wired Equivalent Privacy
WEPキーにより送受信データを暗号化する

MACアドレスフィルタ
アクセスポイントにステーションのMACアドレスを登録

SSIDステルス
アクセスポイントのSSIDを隠す
無線LANドライバで対応

無線LANの基本的な機能
無線LANのセキュリティ
WPA Wi-Fi Protected Access
暗号化はAES, TKIPがある
WPA-PSK, WPA-1Xがある

WPS Wi-Fi Protected Setup
PBC, PINの２つの方式がある
P2Pモード(Wi-Fi Direct)ではWPSが必須
STA WPAサプリカント（Open Supplicant）で対応
AP WPAオーセンティケータ（Hostapd）で対応

無線LANの基本的な機能
無線LANの基本的な機能要件
STAモード/APモード/P2Pモード
2.4GHz/5GHz、仕向け先
IEEE802.11a/b/g/n/ac
セキュリティ(WEP, WPA-PSK, WPA-1X, WPS)
ホストCPUとのI/F(PCIe, USB, SDIO)

無線LANのソフトウェア開発
無線LANソフトウェアの構成
チップベンダーから提供される無線LANドライバ

アクセスポイント(AP)
ステーション
(STA)

～2007

2008～

VxWorks

LinuxWindows

WindowsLinuxAndroid

無線LANのソフトウェア開発
Open Supplicant
Hostapdiw

アプリケーション

User Space

nl80211

cfg80211

mac80211

TCP/IP

Kernel Space

無線LANドライバ
PCIe Library

USB Host DriverFirmware

SDIO Driver

Hardware

無線LANのソフトウェア開発
無線LANソフトウェアの構成
無線LANドライバ
チップベンダーから提供される（契約が必要）
Open Sourceのドライバへのパッチだけが提供される場合もある
無線LANの制御を行う ※役割分担はチップによって異なる

Firmware
チップベンダーから提供される（契約が必要） ※バイナリのみ
無線LANの制御を行う ※役割分担はチップによって異なる

PCIe Library, USB Host Driver, SDIO Driver Linux標準
ハードウェアのデバイスドライバ及びライブラリ

無線LANのソフトウェア開発
無線LANソフトウェアの構成
mac80211 Linux標準
IEEE802.11のマネジメントフレームの処理を行うモジュール※mac80211を使用しないタイプのチップもある

cfg80211 Linux標準
無線LANの設定情報や接続状態遷移を管理するモジュール

iw Linux標準
無線LANの設定及び接続を行うためのツール
Kernel Spaceとのインタフェースはnl80211

無線LANのソフトウェア開発
無線LANソフトウェアの構成
Open Supplicant / Hostapd Linux標準
チップベンダーからパッチなどが提供される場合もある（契約が必要）
WPA, WPS, Wi-Fi Directなどに対応するために必要なモジュール

TCP/IP Linux標準
TCP/IPプロトコルスタック

アプリケーション
無線LANの設定及び接続
ユーザインタフェースからの入力をiwなどのコマンドに変換する
無線LANによるデータ送受信
ソケットインタフェースによりデータの送受信を行う

無線LANのソフトウェア開発
無線LANソフトウェアの移植
チップベンダーから提供される無線LANドライバはそのままでも動くのでは？
そのままで動く場合もある
チップベンダーでは特定環境（リファレンス環境）でのみ動作検証をしている場合が多い
ユーザ環境との差異（CPU, Linuxカーネルバージョン,ディストリビューション等）により、そのままでは動かない場合もある

無線LANのソフトウェア開発
無線LANソフトウェアの移植Linuxカーネルバージョンの差異による影響が最も大きいバージョンを下げる場合はBackportsを使うバージョンが古すぎると対応できない場合もある
Linux 3.10のドライバをLinux 2.6.32に移植したことはあるバージョンを上げる場合は自力でドライバを修正する
cfg80211及びmac80211と無線LANドライバのインタフェース関数の仕様が変わっていることがあった
cfg80211における接続状態遷移が変わっていて、無線LANドライバと不整合が発生したことがあった
バージョンがあまりにも大きく異なると、Linuxのネットワーク部分とのインタフェースが変わっている可能性がある

無線LANのソフトウェア開発
無線LANソフトウェアの移植
機能追加などのカスタマイズが必要な場合は？
自力でドライバを修正する
チップベンダーからは設計書は提供されない
自分でソースコードを読み解くしかない

Firmwareは修正できない
Firmwareはバイナリしか提供されない
最近のチップはFirmwareで制御される部分が増えてきており、カスタマイズが難しくなってきている。
チップベンダーに修正を依頼するしかない？

無線LANのソフトウェア開発
無線LANソフトウェアの検証
無線LANの設定及び接続
以下の方法で設定及び接続を行う
iw
wpa_cli
Open Supplicant/Hostapdのconfigファイル
接続対象機器を変えて検証を行う

無線LANによるデータ送受信
iPerfなどを使ってデータの送受信を行う(UDP/TCP)
連続運転、スループットの計測などを行う