yukimi.kushi
2022年8月22日 14時58分
node-bleを使用して、REX-BTPM25の測定値を5分毎に取得する処理を走らせております。
Armadillo-X1で上記ソフトを動作させたところ、2~4時間程度で測定が出来ない状況になってしまいます。
問題が発生した場合に、「bluetoothctl power off」と一旦し、「bluetoothctl power on」とすると再度REX-BTPM25との通信が復活する様です。
また、同じソフトを「Armadillo-IoT G3L」や「ThinkerBoardS」で動作させた場合には1週間連続動作をさせても問題は発生しない状況です。
各動作環境
〇Armadillo-X1
Debian GNU/Linux 10 (buster) イメージファイル:v20220617
node-ble:1.7.0をベースに不具合個所を修正(dbus-nextの不具合も併せて修正)
〇Armadillo-IoT G3L
Debian GNU/Linux 10 (buster) イメージファイル:v20220531
node-ble:1.7.0をベースに不具合個所を修正(dbus-nextの不具合も併せて修正)
〇ThinkerBoardS
Tinker_Board-Debian-Buster-v3.0.11-20211026.img
node-ble:1.7.0をベースに不具合個所を修正(dbus-nextの不具合も併せて修正)
〇問題が発生している状況でのdbusの状況
「dbus-monitor --system "type='signal',sender='org.bluez'"」にてモニターをすると以下の様なログを繰り返し続けています。
signal time=1661141535.388891 sender=:1.12 -> destination=(null destination) serial=438505 path=/org/bluez/hci0; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged string "org.bluez.Adapter1" array [ dict entry( string "Discovering" variant boolean false ) ] array [ ] signal time=1661141536.668016 sender=:1.12 -> destination=(null destination) serial=438514 path=/org/bluez/hci0; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged string "org.bluez.Adapter1" array [ dict entry( string "Discovering" variant boolean true ) ] array [ ]
コメント
yukimi.kushi
ご助言ありがとうございます。
NetworkManager.confの修正を試してみましたがやはり3時間程度で止まってしまいました。
※止まった後にPower off→Power onで復活するのも同じ状況でした。
syslog、user.log、kern.log、messagesを添付いたします。
・特に何か問題なところも見受けられずです。
・ syslog内の一部情報は、弊社の情報が含まれるためカットしてあります。
・2022-08-23T20:14:45+09:00~2022-08-23T20:18:13+09:00の間でおかしくなったと推測されます。
ファイル | ファイルの説明 |
---|---|
syslog.zip | syslog、user.log、kern.log、messages |
at_akihito.irie
入江です。
回答が遅くなってしまい申し訳ございません。
一応ですが、以下のコマンドを実行した後に再度ランニング試験してみていた
だけますでしょうか。
[armadillo]# echo on > /sys/devices/soc0/soc/30800000.aips-bus/30b30000.usb/ci_hdrc.1/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/power/control [armadillo]# echo on > /sys/devices/soc0/soc/30800000.aips-bus/30b30000.usb/ci_hdrc.1/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/rfkill1/power/control
お手数おかけしますがよろしくお願いいたします。
yukimi.kushi
ご助言頂いた「2点の設定」+「NetworkManager修正」の環境で試させていただきましたが
しばらく時間が経過すると動作しなくなってしまいました。
色々と試していたのですが、以下の方法であれば24時間以上の稼働でも動作し続けております。
・NetworkManagerの修正を行う(これは必須ではないかもしれません)。
・WiFi+BTコンボモジュールを取り外す。
・USBポートにUSBドングルタイプのBTモジュールを接続する(手元にあったBUFFALOのBSBT4D205BKを使用)
・これまで質問させていただいていた環境と同じソフトウェア
→上記構成ですと24時間以上連続動作させていますが問題は発生しません。
X1のWiFi+BTコンボモジュールの時のみ問題が発生するのですが、対策方法はありますでしょうか。
※G3Lが発生しなかったのは、WiFi+BTコンボモジュールでは無かったのが良かったのではと見ています。
> 入江です。
>
> 回答が遅くなってしまい申し訳ございません。
>
> 一応ですが、以下のコマンドを実行した後に再度ランニング試験してみていた
> だけますでしょうか。
>
>
> [armadillo]# echo on > /sys/devices/soc0/soc/30800000.aips-bus/30b30000.usb/ci_hdrc.1/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/power/control > [armadillo]# echo on > /sys/devices/soc0/soc/30800000.aips-bus/30b30000.usb/ci_hdrc.1/usb2/2-1/2-1.1/2-1.1:1.0/bluetooth/hci0/rfkill1/power/control >
>
> お手数おかけしますがよろしくお願いいたします。
>
ファイル | ファイルの説明 |
---|---|
実行ログ.zip |
at_akihito.irie
yukimi.kushi
テスト環境ソフトを切り出しましたのでご確認頂ければと思います。
使用方法等は添付ファイルの方をご参照頂ければと思います。
ファイル | ファイルの説明 |
---|---|
usb-devices.txt | usb-devicesの実行結果 |
使い方.txt | 添付のテスト環境について |
testBle.zip | テスト環境のセット |
yukimi.kushi
at_akihito.irie
入江です。
お返事が遅くなってしまい申し訳ございません。
頂いたソフトで当方でも現象を再現できたのですが、原因の究明にお時間を頂
いております。
BTモジュールのファームウェアやドライバを新しいものに切り替えてみるなど
試していますが、原因の特定が出来ておりません。
現在のところ確実なアドバイスを差し上げることはできませんが、傾向として
デバイスのconnect時にエラーが発生しやすく見えます。
お客様の実装では、scan→connect→値の取得
→disconnect→scan→connect→…を繰り返しているようですが、
scan→connect→値の取得→wait→値の取得…のように毎回disconnectしない
ようにしてみるなど、ソフトウェアの実装でカバーできる部分もあるかもしれ
ませんので、お手数おかけしますが、可能であればお試しいただければと思い
ます。
調査に進展がありましたらご連絡します。
ご不便おかけして申し訳ございませんが、よろしくお願いいたします。
at_akihito.irie
2022年8月23日 10時38分
入江です。
過去に、BluetoothデバイスがNetworkManagerの管理下にある際に、稀に接続
できなくなる場合があることがありました。
https://armadillo.atmark-techno.com/forum/armadillo/8617
上記フォーラムでの私の回答のように、NetworkManagerの管理デバイスから
Bluetoothを除外した上で、再度ランニング試験をしてみていただけますでしょ
うか。
また、可能であれば、測定できなくなったときのsyslogを送っていただければ
何かわかるかもしれません。
お手数おかけしますが、よろしくお願いいたします。