Darkside(リンクエラー修正しました)

2019年06月06日の記事

2019年6月6日(木) 21:50

WiFi問題の焦点

 WiFi通信は、泥沼だ。訳が分からない。

 ここのサイトは相当に参考になったが、残念ながら Jetson Nano にはUbuntu 18 が搭載されている。また、hospapd.conf に関しても、実例が記載されているサイトごとに内容が異なっており、何が正解なのか分からない。恐らくどのサイトも、死ぬほど試行錯誤した挙句、何とかマトモに動いている状態に辿り着き、必要充分条件は把握していないのだろう。
 仮に自分が今回の問題を解決しても、同じようなことになりそうだ。WiFIは、余りにも挙動不審過ぎる。

 その中で、現時点で恐らく間違いないだろうと思われる情報だけを記載しておく。

 まず基本として、WiFiカードを無線親機として機能させるために、2つのソフトを使っていた。親機化するのに hostapd、そしてそこに接続したスマホにIPアドレスを割り当てるために dnsmasq だ。このうち、dnsmasq はお役御免とし、サービスとして自動起動を disable に設定した。代わりに採用したのが、isc-dhcp-server である。
 次に、hostapd.conf の記述。重要なのは、

・country_code=JP
 8265は、技適マークが付いていないようだ。国別コードを日本に設定することで、合法周波数と合法出力に制限される。

・hw_mode=g と ieee80211n=1
 この2つは、必ずセットで記述せねばならない。2つ記述することで、802.11g で動作する。
 デフォルトでは 802.11b であり、MAX毎秒11Mbit しか出ず論外に遅い。8265を屋外で合法的に使用できるのは 11b か 11g しかないので、11g の一択である。

 そして、最も重要な無線AP化。何十回も再起動させてスマホ受信を試したところ、3つのパターンに分かれた。
1)設定したSSIDが、WiFi一覧に表示されない。
2)設定したSSIDがWiFi一覧に表示されるが、選んでも永久に接続完了しない。
3)設定したSSIDがWiFi一覧に表示され、選ぶと接続完了。カメラ映像も閲覧可能。

 これ以外のパターン、例えば接続完了したのにカメラ映像は閲覧できない、ということはない。実際はあったが、動画配信部分の記述をミスしていただけだった。そのように明確なミスがあると、必ず失敗する。修正すれば、必ず成功する。
 問題なのは、1)と2)と3)のいずれになるかは、ランダムで決まっているかのように感じられること。どこかの設定をミスしているので失敗しているなら、毎回失敗するはずだ。それが、何もいじっていないのに成功したり失敗したりする。
 失敗の直接的な原因は、判明した。

 1)になる原因は、hostapd が起動していないこと。
 2)になる原因は、isc-dhcp-server が起動していないこと。
 hostapd と isc-dhcp-server は自動起動するようにしてある。電源投入後に両方とも自動起動に成功すれば、3)になる。hostapd は自動起動に成功したが isc-dhcp-server が失敗すれば、2)になる。それ以外の場合は、1)になる。
 重大な事実として、自動起動に失敗した場合でもターミナルから手動で起動させると、必ず起動に成功するのだ。失敗したことはない。そして、両方が起動していれば確実に3)が実現する。

 要するに、問題を何とか単純化できた。
 hostapd と isc-dhcp-server を確実に自動実行成功させることが出来れば、解決だ。自動実行の定義ファイル /lib/systemd/system/*.service に適切な AFTER 定義を行えば解決しそうに感じるが、では何を記述するのが正解なのか分からない。
 After=network.target なんて当たり前の記述は当然に行っているわけで。

written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL
Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4