Armadilloフォーラム

WiFi-APの設定について

hanako

2018年8月29日 16時54分

Armadillo-IoT G3 M1モデルを使用し、(WiFiルータではない)WiFi-APの設定を試みています。

hostapd Ver.2.4をインストールし、各種設定を行い、
温度センサからWiFi-APへ接続を試みますと、Armadilloがリブートしてしまいます。

リブート直前に、
「WPA: pairwise key handshake completed (RSN)」
というログが出ていました。

今回使用している温度センサは、以下の通りです。
 株式会社ティアンドデイ TR-7wfシリーズ

Armadillo-IoT G3 M1モデルに設定した内容を
Armadillo-IoT G3に反映して試したところ、
温度センサから接続してもリブートすることはありませんでした。

Armadillo-IoT G3では、hostapd Ver.2.3となっていました。

ちなみに、Armadillo-IoT G3 M1モデルに
hostapd Ver.2.3をインストールし、
温度センサから接続すると、リブートします。

リブートの原因がつかめていない状況です。
上記現象から、何が原因であるか推測できますでしょうか?

●Armadillo-IoT G3 M1モデルのセットアップに使用したファイル
u-boot-x1-at17.bin
uImage-x1-v4.9-at2
armadillo_iotg_g3_m1-v4.9-at2.dtb
debian-stretch-armhf_aiotg3_20180621.tar.gz

●インストールしたパッケージ
ifupdown、ssh、hostapd、isc-dhcp-server

※/etc/network/interfacesを使った方法でArmadilloを設定するため、
 ifupdownをインストール

●hostapd.confの設定
interface=wlan0
driver=nl80211
ssid=testap123
hw_mode=g
channel=3
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=testap123
rsn_pairwise=CCMP

コメント

溝渕です。

>  株式会社ティアンドデイ TR-7wfシリーズ

上記デバイスが手元に無かったので、Armadillo-IoT G3からArmadillo-IoT G3
M1に接続してみましたが、現象を再現することができませんでした。

問題の切り分けを行うため、同様の手順を試してみていただけますか。

宜しくお願いいたします。

ご連絡ありがとうございます。

Armadillo IoT G3で確認はできておりませんが、
Raspberry PiからArmadillo-IoT G3 M1に接続してみた限りでは
リブートしませんでした。

リブート発生時のログを採取しましたので、添付致します。
※hostapd.confの内容とリブート発生時のログを添付します
※ログ採取時の手順は、
 rootで「hostapd -dd -t /etc/hostapd/hostapd.conf」を実行しました。

ログを確認する限り、nl80211で処理が行われている際に、
リブートしているように見受けられます。

添付ファイルをご確認頂き、何か気づきがございましたら、
ご教授いただければ幸いです。

ファイル ファイルの説明
hostapd.conf_.txt
log1.txt
log2.txt
log3.txt

溝渕です。

ご確認いただき有難うございます。

> 添付ファイルをご確認頂き、何か気づきがございましたら、

リブートしない状態(ap:G3 M1, sta:G3)のログと比較してみましたが、特徴的
な差異は見当りませんでした。

リブートするという挙動からの推測ですが、Linuxカーネル内でのデッドロッ
クを疑っています。

添付のパッチを適用後、デフォルトコンフィギュレーションを適用したLinux
カーネルで動作確認してみていただけますか。

正しく変更を適用したLinuxカーネルで起動したことは、次のように確認する
ことができます("CONFIG_DEBUG_SPINLOCK=y"と出力されると正しいです)。

root@armadillo:~# zcat /proc/config.gz | grep DEBUG_SPINLOCK
CONFIG_DEBUG_SPINLOCK=y

溝渕様

ご連絡ありがとうございます。

> 添付のパッチを適用後
申し訳ございませんが、添付が見当たらなかったのですが。
再度、添付いただけますか?

> 溝渕です。
>
> ご確認いただき有難うございます。
>
> > 添付ファイルをご確認頂き、何か気づきがございましたら、
>
> リブートしない状態(ap:G3 M1, sta:G3)のログと比較してみましたが、特徴的
> な差異は見当りませんでした。
>
> リブートするという挙動からの推測ですが、Linuxカーネル内でのデッドロッ
> クを疑っています。
>
> 添付のパッチを適用後、デフォルトコンフィギュレーションを適用したLinux
> カーネルで動作確認してみていただけますか。
>
> 正しく変更を適用したLinuxカーネルで起動したことは、次のように確認する
> ことができます("CONFIG_DEBUG_SPINLOCK=y"と出力されると正しいです)。
>
>
> root@armadillo:~# zcat /proc/config.gz | grep DEBUG_SPINLOCK
> CONFIG_DEBUG_SPINLOCK=y
>
>

溝渕です。

> > 添付のパッチを適用後
> 申し訳ございませんが、添付が見当たらなかったのですが。
> 再度、添付いただけますか?

添付忘れです。申し訳ございません。

ファイル ファイルの説明
linux-4.9-x1-at2_debug-lock.patch

溝渕様

添付ありがとうございます。

大変申し訳ございませんが、
パッチの適用方法、並びに
デフォルトコンフィギュレーションの適用方法をご教授頂けますか?
無知ですみません。

溝渕です。

> パッチの適用方法、

Linuxカーネルのソースに移動して、patchコマンドでパッチを適用します。

[atde]$ cd linux-4.9-x1-at2
[atde]$ patch -p 1 < [パッチをダウンロードしたパス]/linux-4.9-x1-at2_debug-lock.patch

> デフォルトコンフィギュレーションの適用方法をご教授頂けますか?

以下のドキュメントを参考にしてください。

https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…

[atde]$ cd linux-4.9-x1-at2
[atde]$ make ARCH=arm x1_defconfig

溝渕様

ご教授頂き、ありがとうございました。

パッチの適用、デフォルトコンフィギュレーションを適用したLinuxカーネルでは、リブートが発生しないようになりました。

今後も、Armadillo-IoT G3 M1を利用していく点から、
根本的な原因確認、対策が必要と考えております。

お手数ですが、根本的な原因と対策について、
ご教示いただけますでしょうか?

ちなみにですが、リブートが発生する環境で、
hostapdのバージョンをVer.2.6にアップしてみましたが、
リブート問題は、改善されませんでした。

溝渕です。

> パッチの適用、デフォルトコンフィギュレーションを適用したLinuxカーネルでは、リブートが発生しないようになりました。
>
> 今後も、Armadillo-IoT G3 M1を利用していく点から、
> 根本的な原因確認、対策が必要と考えております。

私が添付したパッチは、問題の解決を意図したものではありません(デバッグ
用カーネルコンフィギュレーションの有効化のみです)。

Linuxカーネルのログ(dmesgコマンドで参照可能)に何か出力されていませんか。

溝渕様

まだ、dmesgコマンドでLinuxカーネルのログを確認していないのですが、
コンソールに添付のようなログが出力されました。

今回の問題と何か関係しますでしょうか?

ファイル ファイルの説明
ログ.txt

溝渕様

昨日添付しましたログですが、
syslogを確認したところ、DHCP OFFER の後に出力されているようです。
以上、お知らせまで。

> 溝渕様
>
> まだ、dmesgコマンドでLinuxカーネルのログを確認していないのですが、
> コンソールに添付のようなログが出力されました。
>
> 今回の問題と何か関係しますでしょうか?
>
>

溝渕です。

ご対応ありがとうございます。

> 今回の問題と何か関係しますでしょうか?

ログによると、lock変数が適切に初期化されていないようなので、関係がある
可能性もあります。

ちなみに、ログの該当箇所は、以下でlockを取得しようとしているところです。

drivers/net/wireless/ath/ath9k/xmit.c
1982: void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
1983: {
:(snip)
1996: spin_lock_bh(&sc->chan_lock);

現在のところ、解決には至っていません。

溝渕様

> 現在のところ、解決には至っていません。
補足となるか分かりませんが、
こちらではSDカードブートを利用しています。
※Toshiba製 32GB
以上です。

溝渕です。

情報ご提供有難うございます。

> 補足となるか分かりませんが、
> こちらではSDカードブートを利用しています。
> ※Toshiba製 32GB

上記、SDカードでなければ問題が再現しないという理解で良いでしょうか。

返信が遅くなり申し訳ありません。

現状、SDカードでしか試しておりません。

> 溝渕です。
>
> 情報ご提供有難うございます。
>
> > 補足となるか分かりませんが、
> > こちらではSDカードブートを利用しています。
> > ※Toshiba製 32GB
>
> 上記、SDカードでなければ問題が再現しないという理解で良いでしょうか。
>

溝渕です。

不正なlockを取得する可能性があるところがありました。

mainlineでは次のように修正されています。

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/comm…

恐らくこれで改善できると思います。上記をパッチファイルにしたものを添付します。

ファイル ファイルの説明
0001-ath9k-clean-up-and-fix-ath_tx_count_airtime.patch

中村です。

> 恐らくこれで改善できると思います。上記をパッチファイルにしたものを添付します。

溝渕さん、ありがとうございます。

8月31日に
https://armadillo.atmark-techno.com/forum/armadillo/3483#comment-6001
で報告していた、問題が発生したパソコンの持ち主に
今回のパッチを試してもらっところ、
Armadilloが落ちる(再起動する)ことはなくなったとの
連絡をもらいました。

当面は、このパッチをあてたものを使うことにします。

--
なかむら

溝渕です。

ご連絡いただき有難うございます。

> 今回のパッチを試してもらっところ、
> Armadilloが落ちる(再起動する)ことはなくなったとの
> 連絡をもらいました。

このパッチで解決できて良かったです。

また、解決までに時間を要し申し訳ございませんでした。

中村です。

つい最近のことですが、知り合いのところでも
wifi接続するとArmadilloが再起動してしまう問題が出てまして、
同じ原因のような気がしますので、
状況をお知らせしておきます。

Armadillo-IoT G3(旧)
linux-4.9-x1-at2
Debian/Stretch
です。
カーネルは1か所だけコンフィグレーションを変更して
あるドライバを有効にしていますが、
今回の問題とは関係ないと思いますので、
その情報は省略させてもらいます。

ArmadilloのWiFi設定は、
https://armadillo.atmark-techno.com/forum/armadillo/2132
で古賀さんが書いてくれていたWiFiルータ化とほぼ同じです。
SORACOMのSIMを使って3Gも有効にしてあります。

この設定で、パソコンからWiFi接続して、
Armadilloのwebサーバ(http://10.42.0.1/)アクセスすると、
Armadilloが再起動してしまいます。

いろいろ試してみてもらっていたのですが、
パソコンを別のものに変更したら問題は発生しなくなった、
との連絡が今日ありました。

その問題が出るパソコンでも、
G3(旧)、linux-3.x、Debian/Jessie
ArmadilloのWiFiは同じ設定では
問題は出ておらず、
カーネル4.9、Debian/Stretchへの
移行作業でこの問題に遭遇しました。

--
なかむら

溝渕です。

ご報告有難うございます。

> この設定で、パソコンからWiFi接続して、
> Armadilloのwebサーバ(http://10.42.0.1/)アクセスすると、
> Armadilloが再起動してしまいます。

上記現象が発生するパソコンの、WLANチップとOSをご教授いただくことは可能
でしょうか。

中村です。

溝渕さん、
対応、ありがとうございます。

> > この設定で、パソコンからWiFi接続して、
> > Armadilloのwebサーバ(http://10.42.0.1/)アクセスすると、
> > Armadilloが再起動してしまいます。
>
> 上記現象が発生するパソコンの、WLANチップとOSをご教授いただくことは可能
> でしょうか。

問題のパソコンのメーカー型番などは
lenovo T440p
Windows8.1 64ビット
とのことでした。

WiFiチップは、所有している人(今回の問題に遭遇した人)に
調べてもらますので、少々お待ちください。

--
なかむら

溝渕です。

> WiFiチップは、所有している人(今回の問題に遭遇した人)に
> 調べてもらますので、少々お待ちください。

お手数をお掛けし、大変申し訳ございません。

可能であれば、ご利用のドライババージョンもご確認いただけると幸いです。

宜しくお願いいたします。

中村です。

2x2 11b/g/n Wireless LAN M.2 Adapter
製造元: Realtek Semiconductor Corp.
パージョン: 2012.2.827.2013

とのことでした。

よろしくお願いします。

--
なかむら

> > 2x2 11b/g/n Wireless LAN M.2 Adapter
> > 製造元: Realtek Semiconductor Corp.

Realtekモジュールのものでしたか、ちょっと調べてみたところRTL8192EE(BT搭載)のようですね。

> > パージョン: 2012.2.827.2013

緊急のもの含めいくつか新しいバージョンのドライバがリリースされていましたが、問題の再現性が同じかどうかわからないので重要な情報です。
ありがとうございます。

Realtek Wireless LAN Adapter Software for Windows 8.1 (64-bit) - Laptops
https://pcsupport.lenovo.com/us/en/downloads/ds040240
> 2012.2.827.2013 / 1.00.0227