Armadilloフォーラム

「デバッグモードのアプリをArmadilloで実行」を行うとエラーが出る

shiroro

2025年6月12日 13時51分

==========
製品型番:AGX4520-C02D0
Debian/ABOSバージョン:5.10.237-1
カーネルバージョン:5.10.0-35-amd64
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

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

作成したアプリ用のプログラムをArmadilloで実行しようと思い、VSCode上のABOSDE EXPLORERのOPENED PROJECTの「デバッグモードのアプリをArmadilloで実行」の▷ボタンを押すと、

No supported devices found with name or id matching 'Armadillo'.

The following devices were found:
Linux(desktop) ・linux ・linux-x64 ・Debian GNU/Linux 11(bullseye) 5.10.0-35-amd64
eLinux(desktop)・elinux-wayland ・flutter-tester ・Debian GNU/Linux 11(bullseye) 5.10.0-35-amd64
eLinux(desktop)・elinux-11 ・flutter-tester ・Debian GNU/Linux 11(bullseye) 5.10.0-35-amd64

というメッセージが出てきます。

ABOSDE EXPLORERのMONITORで、ネットワーク上のArmadilloをスキャンしても見つからないのですが、それが関係しているでしょうか?

development.swuを作成し、ネットワーク上のArmadilloが見つからなかったので、ABOS Webのブラウザからswuファイルのインストールまでは行っています。

また、1つのハブにArmadilloとPCを接続しており、VirtualBoxのネットワーク設定でのアダプター1はNAT、アダプター2はブリッジアダプターでRealtek USB GbE Family Controllerを選択しています。

ご確認のほど、よろしくお願いいたします。

コメント

at_shota.shimoyama

2025年6月12日 16時35分

アットマークテクノの下山です。

> ABOSDE EXPLORERのMONITORで、ネットワーク上のArmadilloをスキャンしても見つからないのですが、それが関係しているでしょうか?
はい、おそらくそれが間接的に関係しているのではないかと思います。

ABOSDEの内部では、「デバッグモードのアプリをArmadilloで実行」が押されると、(projectディレクトリ)/config/ssh_config に記載されているArmadilloのIPアドレス宛にSSH通信を試みます

デフォルトでは ssh_config にIPアドレスは記載されておらず、ABOSDE EXPLORERのMONITOR内のArmadilloで「Set IP in ssh config」を実行することによって、そのArmadilloのIPアドレスが ssh_config に記載されます。

そのため、「デバッグモードのアプリをArmadilloで実行」の機能は、事前に
・ABOSDE EXPLORERのMONITOR内のArmadilloで「Set IP in ssh config」を実行する
・ssh_config にArmadilloのIPアドレスを直接手動で記載する
のどちらかを行っていただく必要があります

いずれにしても、「ABOSDE EXPLORERのMONITORでネットワーク上のArmadilloをスキャンしても見つからない」という問題をまずは解決した方が良いと思いますので、下記3点について確認させてください。

1.「1つのハブにArmadilloとPCを接続しており」とのことですが、このハブに接続しているのはArmadilloとPCのみで、社内LANや他のデバイスは接続していないということでお間違いないでしょうか?

2.「ABOS Webのブラウザからswuファイルのインストールまでは行っています。」とのことですが、ABOS Webには ATDEのブラウザとWindowsのブラウザのどちらで接続できているのでしょうか?

3.ArmadilloのABOSのバージョンを教えてください。以下のコマンドの実行結果がABOSのバージョンになります。

armadillo:~# cat /etc/atmark-release

よろしくお願いします

お世話になっております。
ご質問に回答いたします。

> 1.「1つのハブにArmadilloとPCを接続しており」とのことですが、このハブに接続しているのはArmadilloとPCのみで、社内LANや他のデバイスは接続していないということでお間違いないでしょうか?

ハブに接続しているのは社内LANとArmadilloとPCになります。
Armadillo Base OS 基礎セミナー (VScode版) 資料の20ページと同じ構成です。

> 2.「ABOS Webのブラウザからswuファイルのインストールまでは行っています。」とのことですが、ABOS Webには ATDEのブラウザとWindowsのブラウザのどちらで接続できているのでしょうか?

ABOSにはATDEのブラウザ(Firefox)と、Windowsのブラウザ(Chrome)の両方で接続できています。
swuファイルのインストールはATDE側のブラウザから行いました。

> 3.ArmadilloのABOSのバージョンを教えてください。

3.21.3-at.13です。

よろしくお願いいたします。

at_shota.shimoyama

2025年6月13日 10時34分

ご回答ありがとうございます

もしかしたらアダプター1がNATになっていることが何か悪さをしているかもしれません

ハブに社内LAN(とその先のインターネット)とArmadilloとPCを接続しているということは、NATが無くてもブリッジアダプターだけで十分かと思いますので、
VirtualBoxのネットワーク設定で、
・アダプター1をブリッジアダプターでRealtek USB GbE Family Controller
・アダプター2は無効化
に変更してみていただけますでしょうか?
その設定で、以下に問題がないかご確認ください
・インターネットに接続できる(Firefoxで外部サイトを閲覧できる)
 (※ Realtek USB GbE Family Controllerだとインターネットに接続できなかった事例が過去にありましたので、もしかしたら接続できないかもしれません)
・ATDEのブラウザからABOS Webに接続できる
・ABOSDE EXPLORERのMONITORで、ネットワーク上のArmadilloをスキャンできる

ただ、もしアダプター1をNATに設定している理由などありましたらお教えください

よろしくお願いします

確認したところ、

・インターネットに接続できる
 → OK

・ATDEのブラウザからABOS Webに接続できる
 → OK (ただ、https://armadillo.local:58080のアドレスでは接続できず、https//[IPアドレス]:58050で接続できます)

・ABOSDE EXPLORERのMONITORで、ネットワーク上のArmadilloをスキャンできる
 → NG

となりました。

アダプター1をNATに設定している理由は特になく、armadilloを接続する際にブリッジアダプターにする必要があるということで、アダプター2をブリッジアダプターにしてアダプター1の設定はそのまま残していました。

よろしくお願いいたします。

at_shota.shimoyama

2025年6月13日 11時55分

ご確認ありがとうございます。

> アダプター1をNATに設定している理由は特になく、armadilloを接続する際にブリッジアダプターにする必要があるということで、アダプター2をブリッジアダプターにしてアダプター1の設定はそのまま残していました。
かしこまりました。でしたら、ひとまずは原因の切り分けのためにアダプター1をブリッジアダプターにした現状の設定で引き続きお願いします

https://armadillo.local:58080 の方だけ接続できないのはやはりおかしいですね…
念のため、Armadillo上で以下のコマンドを実行して、どのホスト名になっているかご確認ください

armadillo:~# ps aux | grep .local
 1820 avahi     0:51 avahi-daemon: running [armadillo.local]
13152 root      0:00 grep .loca

armadillo.localのところがArmadilloのホスト名になります(armadillo-2.localなどになっている場合もあります)

そしたら、ATDEのターミナルから、1.Armadilloのホスト名宛てのping、2.ArmadilloのIPアドレス宛てのpingを実行してみていただけますでしょうか?

1.Armadilloのホスト名宛てのping

atmark@atde9:~$ ping armadillo.local

2.ArmadilloのIPアドレス宛のping

atmark@atde9:~$ ping [IPアドレス]

ホスト名確認のコマンドを実行すると、例に出していただいたようなavahi-daemonは表示されず、rootしか表示されませんでした。

armadillo:~# ps aux | grep .local
 2926 root      0:00 grep .local

armadilloのホスト名がわからなかったので、armadilloのホスト名宛てのpingは実行できず、
armadilloのIPアドレス宛のpingを実行するとpingは通りました。

at_shota.shimoyama

2025年6月13日 14時54分

> ホスト名確認のコマンドを実行すると、例に出していただいたようなavahi-daemonは表示されず、rootしか表示されませんでした。

なるほど、どうやらPCやATDE側の問題ではなく、Armadillo側に問題がある可能性が高いですね
armadillo.localというホスト名はavahi-daemonというサービスによって提供されているのですが、
何らかの理由でavahi-daemonが起動していないか、クラッシュしているのかもしれません。

以下の3つのコマンドを実行していただけますでしょうか?(例として正常な場合のレスポンスも載せています)

armadillo:~# ps aux | grep avahi
 1634 avahi     0:00 avahi-daemon: running [armadillo.local]
 1639 avahi     0:00 avahi-daemon: chroot helper
 1971 root      0:00 grep avahi
armadillo:~# rc-status | grep avahi
 avahi-daemon                                                      [  started  ]
armadillo:~# rc-update | grep avahi
         avahi-daemon |      default

3つのコマンドを入力した結果、1つ目はrootのみ表示され、2つ目と3つ目は何も表示されませんでした。
2周してみましたが結果は変わらずです。

armadillo:~# ps aux | grep avahi
 7037 root      0:00 grep avahi
armadillo:~# rc-status | grep avahi
armadillo:~# rc-update | grep avahi
armadillo:~# ps aux | grep avahi
 8329 root      0:00 grep avahi
armadillo:~# rc-status | grep avahi
armadillo:~# rc-update | grep avahi

at_shota.shimoyama

2025年6月13日 15時50分

ありがとうございます。

どうやらavahiがそもそも起動していない可能性が高いです
以下のコマンドでavahiをデフォルト有効にした上で、改めて先ほどの3つのコマンドを実行していただけますでしょうか?

armadillo:~# rc-update add avahi-daemon
 * service avahi-daemon added to runlevel default
armadillo:~# persist_file /etc/runlevels/default/avahi-daemon
armadillo:~# reboot

avahiを有効にして3つのコマンドを入力すると、先程示していただいた正常なレスポンスの例と同じ結果が表示されました。

armadillo:~# ps aux | grep avahi
 1719 avahi     0:00 avahi-daemon: running [armadillo.local]
 1720 avahi     0:00 avahi-daemon: chroot helper
 2531 root      0:00 grep avahi
armadillo:~# rc-status | grep avahi
 avahi-daemon                                                      [  started  ]
armadillo:~# rc-update | grep avahi
         avahi-daemon |      default

次に、ブラウザでhttps://armadillo.local:58080 にアクセスするとABOS Webにアクセスできたので、ABOSDE EXPLORERのMONITORからネットワーク上のArmadilloをスキャンしたところ、検出できました。

ありがとうございました。お手数をおかけしました。

ABOS Webからdevelopment.swuをインストールしているのですが、MONITORのarmadillo.localから改めてインストールする必要はあるのでしょうか?

at_shota.shimoyama

2025年6月13日 16時44分

> 次に、ブラウザでhttps://armadillo.local:58080 にアクセスするとABOS Webにアクセスできたので、ABOSDE EXPLORERのMONITORからネットワーク上のArmadilloをスキャンしたところ、検出できました。

> なんとか問題が解決したようで何よりです

> ABOS Webからdevelopment.swuをインストールしているのですが、MONITORのarmadillo.localから改めてインストールする必要はあるのでしょうか?
いいえ、改めてインストールする必要はありません

ABOSDE EXPLORERのMONITOR内のArmadilloで「Set IP in ssh config」を実行していただければ、
「デバッグモードのアプリをArmadilloで実行」が正常にできるようになるはずです

下山様
お世話になっております。

先週からの続きになるのですが、
「ssh configにipを設定」を実行して、「/home/atmark/[プロジェクトフォルダ]/config/ssh_configのipを192.168.xxx.xxxに設定しました」というメッセージが出た後、「デバッグモードのアプリをArmadilloで実行」すると、下記のようなエラーメッセージが表示されます。

Launching lib/main.dart on eLinux in debug mode...
Uninstall flutter_app from armadillo.
Uninstallation Success
Install flutter_app (build/elinux/arm64/debug/bundle) to armadillo
Error executing install command for custom device armadillo: ProcessException: Process exited abnormally with exit code 1:
Failed to add the host to the list of known hosts (config/ssh_known_hosts).
tar: can't change directory to '/var/app/rollback/volumes/SignagePlayer': No such file or directory
tar: -: 10240 バイトのうち、8192 バイトのみ書き込みました
tar: Error is not recoverable: exiting now
  Command: ../scripts/flutter_util.sh install build/elinux/arm64/debug/bundle
Error launching application on eLinux.

これはどのようなエラーでしょうか?

また、上記のエラーと関係があるのか不明ですが、MONITORのarmadillo.localの中にあるContaiersをクリックすると、
「vscodeのhttp.proxySupport設定がoverrideの状態ではArmadilloと通信できません。falbackに変更しますか?」というメッセージが表示されます。
これはfallbackに変更してよいでしょうか?

ご教示いただければ幸いです。

at_shota.shimoyama

2025年6月16日 11時25分

shiroro 様

flutter-elinuxの実行過程でArmadilloにflutter_appをインストールする際にエラーが発生しているようです(Error executing install command for custom device armadillo: ... の行)
https://github.com/sony/flutter-elinux/blob/b5d4a8a63ff5777afe00df4b07e…

↑の処理では、my_project/scripts/flutter_util.shを実行するのですが、その際にエラーが発生しているものと思われます
ただ、flutter-elinuxからの実行だとそのエラー内容が見えないので、以下のコマンドでflutter_util.shを直接実行してみた際に出力される内容を添付いただけますでしょうか?

atmark@atde9:~/my_project$ cd app
atmark@atde9:~/my_project/app$ ../scripts/flutter_util.sh install build/elinux/arm64/debug/bundle

> 「vscodeのhttp.proxySupport設定がoverrideの状態ではArmadilloと通信できません。falbackに変更しますか?」というメッセージが表示されます。
> これはfallbackに変更してよいでしょうか?
はい、これはfallbackに変更してください

コマンドを実行するmy_projectは、今デバッグしようとしているプロジェクトでよいでしょうか?

コマンドを実行すると、先程のエラーの一部と同じメッセージが表示されました。

atmark@atde9:~/ドキュメント/SignagePlayer/app$ ../scripts/flutter_util.sh install build/elinux/arm64/debug/bundle
Failed to add the host to the list of known hosts (config/ssh_known_hosts).
tar: can't change directory to '/var/app/rollback/volumes/SignagePlayer': No such file or directory

at_shota.shimoyama

2025年6月16日 13時02分

> コマンドを実行するmy_projectは、今デバッグしようとしているプロジェクトでよいでしょうか?
はい、そうです

> コマンドを実行すると、先程のエラーの一部と同じメッセージが表示されました。
Armadillo上に/var/app/rollback/volumes/SignagePlayerディレクトリが無いと言われていますね…
development.swuをインストールした段階でこのディレクトリも作られるはずなので、おそらくdevelopment.swuをインストールできていないのかもしれません。ひとまず以下のコマンドの実行結果を教えていただけますでしょうか?

armadillo:~# podman images
armadillo:~# ls /etc/atmark/containers/
armadillo:~# ls /var/app/rollback/volumes/

コマンドを入力したところ、下記のような結果となりました

armadillo:~# podman images
REPOSITORY               TAG         IMAGE ID      CREATED        SIZE        R/O
localhost/signageplayer  latest      f604d4724dd8  4 days ago     665 MB      true
localhost/my_project     latest      1839ac83bfcd  13 months ago  90.8 MB     true
localhost/my_project3    latest      1305d5a7b9a6  13 months ago  603 MB      true
 
armadillo:~# ls /etc/atmark/containers/
README                        my_project.conf
alpine.conf.example           my_project3.conf
at-debian-image.conf.example  signageplayer.conf
 
armadillo:~# ls /var/app/rollback/volumes/
my_project     my_project3    signageplayer

at_shota.shimoyama

2025年6月16日 15時38分

shiroro 様

すみません、原因がわかりました。こちらの不手際です。

プロジェクト名に大文字があると、コンテナイメージ名やArmadillo内の.confファイルや/var/app/rollback/volumes/以下のディレクトリ名は小文字に変換されたものになります(SignagePlayer から signageplayer)

ですが、SignagePlayer/scripts/flutter_util.sh内では大文字のまま(/var/app/rollback/volumes/SignagePlayer)指定しているため、そのようなディレクトリが存在しない(実際には/var/app/rollback/volumes/signageplayerがある)というエラーが出力されているようです。

対処方法として、SignagePlayer/scripts/flutter_util.sh内の6行目に

PROJECT=$(basename "${PWD%/*}")

という行があるかと思いますが、この下に以下の行を追加してください。(大文字を小文字に変換する処理です)

PROJECT="${PROJECT,,}"

SignagePlayer/scriptsディレクトリはデフォルトではVS Codeから見えないようになっていますので、
通常のエクスプローラ(ATDE左上の「場所」)を使用してください

お手数おかけしますがよろしくお願いします

SignagePlayer/scripts/flutter_util.sh内の6行目にご教示いただいた行を追加したところ、先程のエラーは出てこなくなったのですが、また別のエラーが出てきてしまいました。
TCPポートがすでに使われているというエラーが出ているようなのですが、解消するにはどうしたらよいでしょうか。
よろしくお願いいたします。

Launching lib/main.dart on eLinux in debug mode...
Uninstall flutter_app from armadillo.
Uninstallation Success
Install flutter_app (build/elinux/arm64/debug/bundle) to armadillo
Installation Success
Launch flutter_app.name on armadillo
Failed to add the host to the list of known hosts (config/ssh_known_hosts).
Starting 'signageplayer'
Error: cannot listen on the TCP port: listen tcp4 :41077: bind: address already in use
error: signageplayer: Could not start signageplayer: 126
 
Null check operator used on a null value
#0  	ELinuxDevice.startApp (package:flutter_elinux/elinux_device.dart:178:44)
<asynchronous suspension>
#1  	FlutterDevice.runHot (package:flutter_tools/src/resident_runner.dart:483:33)
<asynchronous suspension>
#2  	HotRunner.run.<anonymous closure> (package:flutter_tools/src/run_hot.dart:425:14)
<asynchronous suspension>
#3  	Future.wait.<anonymous closure> (dart:async/future.dart:520:21)
<asynchronous suspension>
#4  	HotRunner.run (package:flutter_tools/src/run_hot.dart:456:34)
<asynchronous suspension>
#5  	RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:854:27)
<asynchronous suspension>
#6  	FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1450:27)
<asynchronous suspension>
#7  	AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#8  	CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#9  	FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:421:9)
<asynchronous suspension>
#10 	AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#11 	FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)
<asynchronous suspension>
#12 	run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:131:9)
<asynchronous suspension>
#13 	AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#14 	main (package:flutter_elinux/executable.dart:83:3)
<asynchronous suspension>

> Armadilloを一度再起動してみていただけますでしょうか?

再起動してみましたが、結果は同じでした。

at_shota.shimoyama

2025年6月16日 16時47分

my_projectかmy_project3のどちらかが先に起動してしまい、TCPポートがすでに使われているのかもしれません。

もし、my_projectとmy_project3が不要であれば、以下のように.confファイルを消してしまうか、

armadillo:~# persist_file -d /etc/atmark/containers/my_project.conf
armadillo:~# persist_file -d /etc/atmark/containers/my_project3.conf
armadillo:~# reboot

一時的に無効にするだけであれば、以下のviコマンドでset_autostart noの行を追加してみてください。

armadillo:~# vi /etc/atmark/containers/my_project.conf
armadillo:~# vi /etc/atmark/containers/my_project3.conf
 
armadillo:~# persist_file /etc/atmark/containers/my_project.conf
armadillo:~# persist_file /etc/atmark/containers/my_project3.conf
armadillo:~# reboot

confファイルを削除したところ、デバッグ実行することができました。
長時間にわたりご対応いただきましてありがとうございました。

最初に質問した内容とは異なるのですが、ArmadilloにBlueToothマウスのUSBを挿入してもArmadillo上でマウス操作ができず、Windows上でしかマウス操作ができない状態なのですが、armadillo上でマウス操作するにはどのようにしたらよいでしょうか?

過去のフォーラムの投稿をみると、X Window Systemを起動する必要があるようなのですが、不勉強で申し訳ないのですがX Window Systemを起動するところからわからないので、ご教示いただけるとありがたいです。

「デバッグモードのアプリをArmadilloで実行したらエラーが出る」件は解決したので、別途質問をフォーラムに投稿したほうがよければそのようにいたします。

at_shota.shimoyama

2025年6月17日 13時47分

> confファイルを削除したところ、デバッグ実行することができました。
> 長時間にわたりご対応いただきましてありがとうございました。

いえいえ、弊社のソフトの不具合のせいでお手間を取らせてしまいすみませんでした。

> 最初に質問した内容とは異なるのですが、ArmadilloにBlueToothマウスのUSBを挿入してもArmadillo上でマウス操作ができず、Windows上でしかマウス操作ができない状態なのですが、armadillo上でマウス操作するにはどのようにしたらよいでしょうか?
>
> 過去のフォーラムの投稿をみると、X Window Systemを起動する必要があるようなのですが、不勉強で申し訳ないのですがX Window Systemを起動するところからわからないので、ご教示いただけるとありがたいです。
>
> 「デバッグモードのアプリをArmadilloで実行したらエラーが出る」件は解決したので、別途質問をフォーラムに投稿したほうがよければそのようにいたします。

すみません、お手数おかけしますが、新しくフォーラムに別途投稿いただけますと幸いです

よろしくお願いします

> すみません、お手数おかけしますが、新しくフォーラムに別途投稿いただけますと幸いです
>
> よろしくお願いします

承知しました。
新しくフォーラムに投稿するようにいたします。

ありがとうございました。