BrilloはGoogleが開発しているIOT用のシステム
BrilloのWi-FiのHALはAndroidとは異なるみたいなので、どんな感じかを調べてみました。
Brilloのバージョンは調査時点の最新版 brillo-m10-dev です。
調べてみたら、ドライバのロードだけあまり中身がなかったけど、公開しときます。
Brilloでのwifi設定はshillを使っているみたいです。
ソースコード
README
README によると以下の3つの機能を持ちます
* ドライバの初期化、ブート直後はデバイスが利用できないので、ブート時にこのメソッドを使って初期化する。
* APモードとstationモードを選択する。これはドライバ初期化直後時に呼ばれることだけを保証する。
* 上位レイヤ用のWi-Fiハードウェアのデバイスネームを返すメソッド
Wi-Fi Directとかはサポートしないみたいなので、Brilloは一時的なネット接続等は考えていないようです。
個人的には、Androidと一時的なネット接続をするならWi-Fi Directは便利だと思ってるけど
API
- wifi_driver_open( const hw_module_t* module, wifi_driver_device_t** device)
- wifi_driver_close(wifi_driver_device_t* device)
- driver->wifi_driver_initialize()
- driver->wifi_driver_set_mode(wifi_driver_mode mode, char* wifi_device_name_buf, size_t wifi_device_name_size)
使用例
- HALの使用例はwifi_init.cに含まれます。
- wifi_init ap でAPとしてドライバを起動する
- wifi_init client としてドライバを起動する
実装例
wifi_driver_set_mode で検索するといくつか実装例がありました
- Raspberry Pi 3のBCM43448
- Marvell SD8xxx
- Qualcomm Atheross WCN3620
- AP6212