Armadilloフォーラム

Wi-Fi使用時に通信が途切れることがある問題について

yuki.shigefuji

2025年6月2日 17時05分

お世話になっております。

現在、Wi-FiでArmadilloからサーバへ定期的にデータを送信するプログラムを実行しています。
しかし、1週間に1~2回程度のペースでWi-Fi通信が途切れる事象が発生しています。
1度途切れると、復帰には数時間~1日以上かかります。

そこで、Armadillo内部でWi-Fiのシグナルが正常に取得できているかを確認するため、
ログを仕込んで確認したところ、通信ができなくなっている間、Wi-Fiのシグナルが何も
取得できていないことがわかりました。

具体的には、`nmcli dev wifi`コマンドを1分ごとに実行してどのようなログが取れるかを確認したところ、
添付ファイルのようなログが取得できました。
(※BSSIDとSSIDはセキュリティの観点からダミーに差し替えてあります。)

問題なく通信できている時間帯は、いくつかアクセスポイントが受信できているようですが、
問題がある時間帯はアクセスポイントが表示されていないか、または1つだけ表示されているが
BSSIDとBARSが何もなしになっており、SIGNALも0になっています。

このことから、何か原因などが分かれば対応をしたいのですが、どういった原因が
考えられますでしょうか。
また、どのような対応が考えられますでしょうか。

下記項目に関してですが弊社ネットワークセキュリティの関係で確認が明日以降になってしまいますので必要であれば確認後追記いたします。
==========
製品型番:
Debian/ABOSバージョン:
カーネルバージョン:
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

ファイル ファイルの説明
ログサンプル.txt
コメント

at_satoshi.ohta

2025年6月2日 17時44分

お世話になっております。
太田です。

Wi-FiはNetworkManagerが管理しているので、
成功している場合、失敗している場合の時間帯付近におけるログ(/var/log/message)をいただけますでしょうか?

また Armadillo Base OS のバージョンは何でしょうか?
もし、最新でなければ最新の Armadillo Base OS でも同様の現象が起きるか検証していただければ幸いです。

どうぞよろしくお願いいたします。

yuki.shigefuji

2025年6月4日 8時49分

お世話になっております。
ご回答いただきありがとうございます。

昨日添付したファイルの時間帯のmessagesは残っておりませんでしたが、
本日新たネットワーク切断が発生しましたので、その時間帯の
WiFiシグナルのログと、/var/log/messagesのログを添付いたします。
(※IPアドレスやMACアドレス、SSIDは、や
のようにダミーデータに差し替えてあります。)
ログファイルの14:19~14:20頃の時間帯で切断が発生しております。

Armadillo Base OSのバージョンは`abos-base-2.6-r0 aarch64`です。

以上、ご確認よろしくお願いいたします。

ファイル ファイルの説明
syslog(一部).txt
WiFiSignal.txt

at_satoshi.ohta

2025年6月4日 13時08分

太田です。

syslogの情報をありがとうございます。

syslog の14:20頃をみると、

Jun  3 14:20:16 armadillo daemon.warn NetworkManager[1346]: <warn>  [1748928016.0729] device (mlan0): link timed out.
Jun  3 14:20:16 armadillo daemon.info NetworkManager[1346]: <info>  [1748928016.0730] device (mlan0): state change: activated -> failed (reason 'ssid-not-found', sys-iface-state: 'managed')

とあり、このログではアクセスポイント(AP)側との接続が確認ができず、time out したことが原因で SSID を見つけられないのが原因のように見えました。

AP側の機器を再起動してみる、Armadillo の位置をAPに近づけてみるとどうなるでしょうか?

また、Armadillo Base OSのバージョンは`abos-base-2.6-r0 aarch64`とのことですが、Armadillo Base OS を最新にすることを推奨します。

https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…

どうぞよろしくお願いいたします。

at_satoshi.ohta

2025年6月4日 14時34分

太田です。
立て続けに申し訳ありません。
2点ほど追記させてください。

1. syslog にドライバ側のログも出力させたいので以下を実行していただけますでしょうか?
wifiに関連するドライバのデバッグレベルを設定するコマンドです。

armadillo:~# echo 0x80207 > /sys/module/moal/parameters/drvdbg

2. Wifi のシグナルを取得するログですが、コマンドを`nmcli dev wifi list --rescan yes` で値を取得していただけますでしょうか?

> 具体的には、`nmcli dev wifi`コマンドを1分ごとに実行してどのようなログが取れるかを確認したところ、

とのことでしたが、`nmcli dev wifi` ですと最新のデータを表示していない可能性がありますので、--rescan yes にすることで強制的に再スキャンすることができます。

その上で、改めて /var/log/message をいただければ幸いです。
お手数をおかけして申し訳ありません。
どうぞよろしくお願いいたします。

お世話になっております。
時間が空いてしまい申し訳ありません。
現在一週間に最低一度のペースで原因不明の停止が起こる状態が続いております。

syslogにつきましてはSSIDが出てしまうためそちらの添削中ですが共有可能なものを先に共有致します。

上記対策のため一度ご確認お願いいたします。

> 太田です。
> 立て続けに申し訳ありません。
> 2点ほど追記させてください。
>
> 1. syslog にドライバ側のログも出力させたいので以下を実行していただけますでしょうか?
> wifiに関連するドライバのデバッグレベルを設定するコマンドです。
>
>

> armadillo:~# echo 0x80207 > /sys/module/moal/parameters/drvdbg
> 

>
> 2. Wifi のシグナルを取得するログですが、コマンドを`nmcli dev wifi list --rescan yes` で値を取得していただけますでしょうか?
>
> > 具体的には、`nmcli dev wifi`コマンドを1分ごとに実行してどのようなログが取れるかを確認したところ、
>
> とのことでしたが、`nmcli dev wifi` ですと最新のデータを表示していない可能性がありますので、--rescan yes にすることで強制的に再スキャンすることができます。
>
> その上で、改めて /var/log/message をいただければ幸いです。
> お手数をおかけして申し訳ありません。
> どうぞよろしくお願いいたします。

ファイル ファイルの説明
syslog_2025071111.txt
syslog_2025071110.txt
停止ログ.pdf

at_satoshi.ohta

2025年7月15日 11時16分

太田です。

nmcli dev wifi で信号がとれなくなった時間帯で

Jul 11 10:40:41 armadillo kern.err kernel: [27635.681421] Block woal_cfg80211_scan in abnormal driver state

に示すように、 "Block woal_cfg80211_scan in abnormal driver state" というエラーがドライバ側で発生していることが見受けられます。

Armadillo Base OS のバージョンが abos-base-2.6-r0 を使っているとのことでしたが、1年前でだいぶ古いので最新の ABOS にアップデートしてみてもう一度、同様の現象が発生するかログを取っていただいてもよろしいでしょうか?

https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…

また、

Jul 11 11:40:41 armadillo kern.info kernel: [31235.772577] podman0: port 2(veth1) entered disabled state
Jul 11 11:40:41 armadillo kern.info kernel: [31235.773679] device veth1 left promiscuous mode
Jul 11 11:40:41 armadillo kern.info kernel: [31235.773693] podman0: port 2(veth1) entered disabled state
Jul 11 11:41:57 armadillo syslog.info syslogd started: BusyBox v1.36.1
Jul 11 11:41:57 armadillo user.notice swupdate-auto-update: Mounting mmcblk1 on /mnt in private namespace
Jul 11 11:41:57 armadillo user.notice swupdate-auto-update: error: mount failed

とあり、こちらは再起動時にカーネルパニックが発生しているようです。
シリアルコンソールをつなげることが出来る環境であれば、再起動時にターミナル上でなにかしらのエラーが出力されるかもしれないので、可能であればそのログも取れるかお試しいただければ幸いです。

どうぞよろしくお願いいたします。

お世話になっております。

調査方法のご指導感謝いたします。
シリアルを繋いでのログ取得なのですが、手元に実機が無く実機での即時の再現が難しい状況です。
そこで別途代案が無いかお伺いしたいです。

提案を頂いた方法につきましては本部署で用意した撮影環境にてシリアルのログ取得を並行で行う予定です。

以上、ご確認よろしくお願い致します。

お世話になっております。

Armadillo Base OS のアップデートの件でご質問です。
対象の実機が現在すでに現場に入っている物であり、安全性の観点からアップデートを行う事が難しい状況です。
上記アップデートはOSの総入れ替えでしょうか。また、当アップデートを行った場合そのまま入っていたコンテナ、設定等の引継ぎは為されるのでしょうか。
可能であれば過去の事例と合わせてご教授頂きたく存じます。

以上、お手数をおかけしますがご確認よろしくお願い致します。

at_satoshi.ohta

2025年7月16日 11時18分

太田です。

> 上記アップデートはOSの総入れ替えでしょうか。また、当アップデートを行った場合そのまま入っていたコンテナ、設定等の引継ぎは為されるのでしょうか。

Armadillo Base OS をアップデートすると rootfs が更新されます。
コンテナイメージおよびユーザーデータディレクトリ(/var/app/volumes, /var/app/rollback/volumes)は更新されません。

運用中の Armadillo をアップデートをする前に開発で使用した Armadillo が手元にあるならば、運用中の Armadillo と同様の環境を複製して実際にアップデートを試して問題ないか動作確認することをお願いいたします。

どうぞよろしくお願いいたします。

お世話になっております。

動作確認の件承知いたしました。
追加でのご質問なのですが、現地の機器へsshで遠隔接続をした際にOSアップデートは可能なのでしょうか。

実機を改修してのアップデートが必須か、ネットワークを介してのアップデートは可能かをご教授頂きたいです。

以上、ご確認よろしくお願い致します。

at_satoshi.ohta

2025年7月17日 10時24分

太田です。

ssh で行う場合でしたら、以下の方法があります。

現地の機器がインターネットに接続できない場合:
[ATDE]

atmark@atde9:~$ wget https://download.atmark-techno.com/armadillo-iot-g4/image/baseos-x2-latest.swu
atmark@atde9:~$ scp baseos-x2-latest.swu root@<Armadillo の IPアドレス>:/root/
atmark@atde9:~$ ssh root@<Armadillo の IPアドレス> "swupdate -i baseos-x2-latest.swu"

現地の機器がインターネットに接続されている場合:
[ATDE]

armadillo:~# ssh root@<Armadillo の IPアドレス> "swupdate -d '-u https://download.atmark-techno.com/armadillo-iot-g4/image/baseos-x2-latest.swu'"

また、Armadillo Twin を使用すれば、ssh を使用せずにインターネット経由でアップデートが可能ですのでご検討ください。

どうぞよろしくお願いいたします。

お世話になっております。

ありがとうございます、現在OSアップデートを実施し経過の観察をしております。
なお一応のご確認ですが以下の点は仕様で間違いなかったでしょうか。
・前VerのOSからスクリプト関連がすべて消える。
・crondが自動起動しない設定に戻る。
・ベースOSにインストールしたパッケージが消える

また、別件にはなりますが、起動時にUSBカメラを拾う処理があるのですが極稀にUSBカメラの認識より実行プログラムが立ち上がるのが早い時があり、カメラ不在となって正常に動作しない場合が確認されています。

こちらの対処法として現在は暫定的に、コンテナ起動時に sleep 10 などの意図的な起動ラグを入れて対応しておりますが、他有効な手段等はありますでしょうか。もし別途対応方法がありましたらご教授頂けると幸いです。
以上、ご確認よろしくお願い致します。

at_satoshi.ohta

2025年7月25日 11時47分

太田です。

> ・前VerのOSからスクリプト関連がすべて消える。

rootfs のアップデートの際に関係ないファイルであれば persist_file -p (または -P)を実行するとアップデートしても消えないです。

armadillo:~# persist_file -p <file path>

> ・crondが自動起動しない設定に戻る。
これは以下のコマンドで対応できるはずです。

armadillo:/etc/runlevels/default# ln -s /etc/init.d/crond crond 
armadillo:/etc/runlevels/default# persist_file -p crond
armadillo:/etc/runlevels/default# persist_file -p /etc/crontabs/root 
armadillo:/etc/runlevels/default# persist_file -p <必要であれば実行スクリプト>

> ・ベースOSにインストールしたパッケージが消える

こちらはそのとおりです。
どうしても必要であれば、ABOS 上でそれ用の処理をする alpine コンテナなどを立ててその中で実行していただくことを推奨します。

> また、別件にはなりますが、起動時にUSBカメラを拾う処理があるのですが極稀にUSBカメラの認識より実行プログラムが立ち上がるのが早い時があり、カメラ不在となって正常に動作しない場合が確認されています。

> こちらの対処法として現在は暫定的に、コンテナ起動時に sleep 10 などの意図的な起動ラグを入れて対応しておりますが、他有効な手段等はありますでしょうか。もし別途対応方法がありましたらご教授頂けると幸いです。

コンテナ自動起動ファイルに add_hotplugs video4linux を記述すると USB カメラがコンテナ起動後にも認識するようになりますので、
アプリケーション側で Armadillo が USB カメラが認識したことを検知して、検知した後にその USB カメラをオープンするような仕組みは考えられます。

例えば、 udev rules (例えば/usr/lib/udev/rules.d/99_user.rulesを作ってその中に記述)でその USB カメラが認識した場合に通知用のスクリプトが実行するように設定します。
アプリケーションは通知が来たら(例えば簡単な例だとフラグのファイルを作るなど)USB カメラをオープンするといった流れです。

どうぞよろしくお願いいたします。

お世話になっております。

ベースOSアップデートを実施し、稼働実験を行っていたところ再度停止致しました。
通信障害の原因を探るため検証を行っていますが、再現性も無く難航しております。こちらのログもみて頂き見解と対策をお聞きしたく存じます。
また、IPやネットワーク名は差し替えております。以上、お手数ですがご確認よろしくお願い致します。

ファイル ファイルの説明
syslog_2025073110.txt

at_satoshi.ohta

2025年7月31日 18時32分

太田です。

お世話になっております。
ABOSのアップデートを実施して頂きありがとうございます。
また、ログの添付もありがとうございます。

こちらでも現在、現象を再現できないか調査中です。

ログに関してですが、頂いたログのJul 31 10:00:00 よりも前の時間帯でも kern.err が発生していないか気になっております。
よろしければ、差し支えない範囲で前の時間帯のログも頂ければ何か分かるかもしれません。

どうぞよろしくお願いいたします。

お世話になっております。

昨日共有したログファイルに加え、前後3時間ほどのログを共有致します。
こちらでも調査は続けておりますが以前課題は解消できていない状況となっております。

以上、お手数ですがご確認よろしくお願い致します。

ファイル ファイルの説明
2025-07-31.zip

at_satoshi.ohta

2025年8月1日 14時30分

太田です。

ログの添付ありがとうございます。
調査してみます。
もう一点ご確認ですが、アップデートした Armadillo Base OS のバージョンは 3.21.3-at.14 でお間違いないでしょうか?

どうぞよろしくお願いいたします。

at_satoshi.ohta

2025年8月1日 16時17分

太田です。

前に添付していただいたログファイルに以下のログがありました。

Jul 31 10:22:07 armadillo kern.warn kernel: [26520.080331] wlan_pcie 0000:01:00.0: Direct firmware load for nxp/pcie9098_wlan_v1.bin failed with error -2

このログはwifi のクライアントとして接続している時に定期的に wifi をスキャンすると何らかの原因でドライバーリセットがかかり、再度 firmware をロードしようとした際にロードすべきファイル(nxp/pcie9098_wlan_v1.bin)がないためエラーになったことを示します。
その後、firmware をロードできなかったので wifi が復帰することはなくなります。

wifi が突然ドライバーリセットする原因は分からないですが、nxp/pcie9098_wlan_v1.bin を以下の NXP のサイトからとって、Armadillo に配置いただければ復帰は出来ると思います。

Armadillo Base OS 3.21.3-at.14の場合:
https://github.com/nxp-imx/imx-firmware/blob/lf-6.12.3_1.0.0/nxp/FwImag…

Armadillo Base OS3.22.1-at.1の場合:
https://github.com/nxp-imx/imx-firmware/blob/lf-6.12.20_2.0.0/nxp/FwIma…

ダウンロードしていただいたファイル(pcie9098_wlan_v1.bin)を Armadillo の /lib/firmware/nxp 配下に置いてください。

armadillo:~# ls /lib/firmware/nxp/pcie9098_wlan_v1.bin
/lib/firmware/nxp/pcie9098_wlan_v1.bin                                          
armadillo:~# persist_file -p /lib/firmware/nxp/pcie9098_wlan_v1.bin

これでドライバーがリセットしたとしても wifi が復帰するはずですので、お試しいただけますでしょうか?

根本的な原因である wifi が突然ドライバーリセットする原因を NXP に報告するにしても、最新の firmware で同じ現象が発生するか検証するのが理想です。
何度も申し訳ないですが、現在の Armadillo Base OS のバージョンは 3.21.3-at.14 であれば、昨日リリースした 3.22.1-at.1 にアップデートして再度現象を再現できないか、検証いただければ幸いです。

また、ログのデバックレベルをあげるためにも、以下のコマンドを実行していただけますでしょうか?
前に armadillo:~# echo 0x80207 > /sys/module/moal/parameters/drvdbg を実行していただきましたが、再起動してその設定が消えているようです。

armadillo:~# echo "options moal drvdbg=0x80207" >> /etc/modprobe.d/wlan_dbg.conf
armadillo:~# persist_file -p /etc/modprobe.d/wlan_dbg.conf

これで再起動してもその設定が消えることはないはずです。

どうぞよろしくお願いいたします。