何か、不安定ですhostapd。 昨夜は、何故か出勤後の9:58に勝手に謎のrebootしてたし、 今日も帰宅後、NotePCがWiFiで繋がらないから試行錯誤すると、 一旦USB WiFiドングル抜き差ししてhostapdをstop/startしたら、漸く。 でも、1秒毎にreconnectしたりして、もう何だか。 やっぱり、何かWiFi station買ってこないとダメなのかなー。
Author: U-ryo
Hostapd After That...
Current Project I'm Working in
今、グループ内会社のAndroidアプリ開発に売られてるんですけど、そこのソフトの作りがひどくてひどくて泣けてきます。
- 「結果が表示されなくなった」というので見てみたら、
toString()
が変わっていたのが原因。より根本的な原因は、toString()
というdebug用途のmethodをoverrideしてmainのlogicに使っていること。まぁ、Activity跨ぐstructured dataをParcelable
にする時間が無かった、という事情は分かるんですけど、StringBuilder#toString
ですら使わずnew String(StringBuilder)
とするくらいなのでぼくは。 - 「途中で落ちる」というので見てみると、ヌルポが出てました。どうしてかなー、と見ていくと、途中でnullを代入しているmethodが呼ばれています。どうしてこれを呼ぶよう変えたのか聞いてみると、終了処理をちゃんとするようしてる時に、comment outしてあったこのfinishっぽいmethodをcomment inしたんだそう。それがどういう効果を持つのかわからぬまま、そうしたんだって。えーーーっ!?
- 極めつけは、今日わかったんですが、
HashMap
をList
にしてその0番目を使ってるんですね。えーーーっ! どうしてAndroid 4.4.2ではうまく動かないの? というのを探っていったら、そこに行き着きました。逆に、これまでよく動いていましたねぇ。素晴らしい!! 先月までいた派遣のフリー技術者が書いたcodeの一部でしたけど、わざと書いたならいざ知らず、もし意識せず書いたのなら、恐ろしいです。
Grain on CodeAnywhere
ちょっと、やっぱりダメですね。
1 2 3 4 5 6 |
|
といわれて、./grainw generate
も./grainw gendeploy
も出来ません。 あーあ、なぁんだ。
Illegal Keysize
AndroidでNanoHTTPDを 動かすprogramを開発しているんですが、 WebRTCにするのに、TLSが必要じゃないですか。 そのserver certを普通に作ると、Illegal keysize
と言われて key load時に落ちるのでハマりました。 NanoHTTPDの解説にあるように、
1
|
|
と作ってもダメでした。 色々調べると、AndroidにはBouncyCastle(BKS)でないとならないらしく、 証明書は面倒なのでsnakeoilを流用して、
1 2 |
|
とすると、
1
|
|
と言われてimport出来ませんでした(→jksが作れませんでした)。 かなり悩んだのですが、結局JavaでAES256を使用できるようにするにあるように、 JCE(Java Cryptography Extension)を落としてきて local_policy.jar
を上書きしたら、 jksも出来て、Android側でも何事もなくloadしてくれました。
Revive Hostapd
家のオンプレミスサーバが最近五月蝿く、 何か常に3.4GHz近くまでいっていて電気食ってるようなので、 1年弱ぶりに止めてみました。 すると、次、立ち上げた時、 繋げていたPlanexの11/n/g/b Real Portable Wi-Fi Router MZK-RP150N が死にました。 通電はしているようなのですが、 Wi-Fiは繋がらず(ランプも消灯)、resetかけようとマニュアル探して、 その通りにボタン10秒以上長押ししてもPowerランプがつかず。 USB刺してすぐはPowerランプとWirelessランプが暫時点灯するので、 ランプの故障ではない模様。 また、ケーブルがInternet側でもLAN側でも、設定したIP、 defaultのIP、どんなIPでも繋がらず(ping不通)。 ノートPCと直接LANで繋いでpacket captureしても、 packetは漏れてこず。 どうしようもないので、家庭内LANから取り外しました。 けどWi-Fiがないのは不便すぎます。 そこで、余っていたUSB WiFiドングルをオンプレミスサーバに挿し、 実に久し振りにhostapdにしてみました。 21世紀初頭、hostapdで頑張っていたんですが、 設定が面倒臭かったから、MZK-RP150N買ってきたのに、 今はhostapd、凄い簡単になったんですね。 かつてはhostapdが出来るchipから気にしなきゃいけなかったのに、 今やその辺のドングル刺しても大丈夫なんですか。隔世の感。 こういうのは時に応じて調べなきゃならないと思うので、 ここで設定の覚書を書いといても無駄な気がしますけど、一応。
apt install hostapd
/etc/hostapd/hostapd.conf
を編集- bridgeは必要(ウチの場合)→
/etc/network/interfaces
にbr0
の設定要
hostapd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
あと前やったのに書き方忘れてたのが、 /etc/network/interfaces
のbr0
設定。
interfaces
1 2 3 4 5 6 |
|
iptalesの設定も変更忘れないように。
Planex MZK-RP150NではMac Address制限が出来なかったので、 ちょっぴり安心に。
ですが、hostapd.accept
書き換えても sudo service hostapd restart
しないと反映されず、 restartするとbr0
消えるっぽいので、注意です。 hostapd stop
してifup br0
、 hostapd start
するのが正しい手順でしょうか。 その間ノートPCからは接続切れるので、これも気を付けませんと。
それと、 コマンド一発でLinuxマシンを即席無線LANルーターにできる「create_ap」がすごい便利だったは、 別件で使ってみましたが、ホントにすぐにhostapからbridge、 dhcpまで出来て感動モノでした。 今読んで、haveged
というのを初めて知りました。 オンプレミスサーバにはentropyが足りなかったので入れてみて、 確かにentropyは上がりましたが、 Wireless LANがホントに早くなるのかどうか... (確かに遅い感じはしてました)。