Armadilloフォーラム

gui_appのインストールでエラー発生

urasue

2023年2月6日 16時45分

いつもお世話になっております。
浦末と申します。

Armadillo X2にUSBメモリを使ってflutterのgui_app_rel_image.swuをインストールしているのですが、
下記のエラーが出てインストール出来なくなってしまいました。
インストール自体は一度、成功していたのですが、podman rmi でイメージを消し、再度インストールしようとしたところ、エラーが起きるようになりました。
何か対処方法はありますでしょうか。

/var/log/message

Feb  6 16:31:58 armadillo kern.info kernel: [ 1414.356642]  sda: sda1
Feb  6 16:31:58 armadillo kern.notice kernel: [ 1414.361305] sd 0:0:0:0: [sda] Attached SCSI removable disk
Feb  6 16:31:59 armadillo user.notice swupdate-auto-update: Mounting sda1 on /mnt in private namespace
Feb  6 16:31:59 armadillo kern.info kernel: [ 1414.683643] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
Feb  6 16:31:59 armadillo user.notice swupdate-auto-update: Trying update /mnt/gui_app_rel_image.swu
Feb  6 16:31:59 armadillo user.info swupdate: START Software Update started !
Feb  6 16:31:59 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Feb  6 16:31:59 armadillo user.err swupdate: FAILURE ERROR : /!\ Nothing to do -- failing on purpose to save bandwidth
Feb  6 16:31:59 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Feb  6 16:31:59 armadillo user.err swupdate: FAILURE ERROR : Command failed: sh -c 'sh $1 ' -- /var/tmp/swupdate-usb.Fr9igH//scripts_pre.sh.zst
Feb  6 16:31:59 armadillo user.err swupdate: FAILURE ERROR : Error streaming scripts_pre.sh.zst
Feb  6 16:31:59 armadillo user.err swupdate: FATAL_FAILURE Image invalid or corrupted. Not installing ...
Feb  6 16:31:59 armadillo user.info swupdate: IDLE Waiting for requests...

USBメモリの中身

armadillo:~# mount /dev/sda1 /mnt
armadillo:~# ls /mnt
gui_app_rel_image.swu  lost+found
armadillo:~#
コメント

下記の投稿を見つけました。
/etc/sw-versions を書き換えることで再インストールすることが出来ました。
https://armadillo.atmark-techno.com/forum/armadillo/11194

次に、X2にgui_app_dev_image.swuをインストールし、
ATDE9上のVScodeからリモートデバッグを試みていますが、パスワードの入力を求められます。
試しにパスワードをatmarkユーザのパスワードを入力していましたが、受け付けられませんでした。
何か手順が間違っているのでしょうか。

Building an eLinux application with wayland backend in debug mode for arm64 target...        32.7s
Flutter 3.3.10 • channel unknown • unknown source
Framework • revision 135454af32 (8 weeks ago) • 2022-12-15
07:36:55 -0800
Engine • revision 3316dd8728
Tools • Dart 2.18.6 • DevTools 2.15.0
atmark@192.168.201.79's password: 
atmark@192.168.201.79's password: 
atmark@192.168.201.79's password: 
No supported devices found with name or id matching
'Armadillo'.

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

at_shiita.ishigaki

2023年2月6日 18時02分

石垣です。

>

> Building an eLinux application with wayland backend in debug mode for arm64 target...        32.7s
> Flutter 3.3.10 • channel unknown • unknown source
> Framework • revision 135454af32 (8 weeks ago) • 2022-12-15
> 07:36:55 -0800
> Engine • revision 3316dd8728
> Tools • Dart 2.18.6 • DevTools 2.15.0
> atmark@192.168.201.79's password: 
> atmark@192.168.201.79's password: 
> atmark@192.168.201.79's password: 
> No supported devices found with name or id matching
> 'Armadillo'.
> 

gui_app_dev_image.swu は Armadillo の root ユーザーに ssh することを想定しております。
ログでは atmark ユーザーにログインしようとしていますので、
gui-app-project-[version]/ssh_config の User を atmark に変更されていないでしょうか。
変更されている場合は root ユーザーに変更して ssh が繋がるか確認していただけるでしょうか。

> インストール自体は一度、成功していたのですが、podman rmi でイメージを消し、再度インストールしようとしたところ、エラーが起きるようになりました。
swu ファイルはインストールが成功しますと、/etc/sw-versions にその swu のバージョンが記録されます。
次に同じ swu ファイルをインストールするには、/etc/sw-versions のバージョンよりも大きい必要が有ります。
現在 swu ファイルのバージョンは 1 に固定されるようになっていましたので、
今後のアップデートで swu ファイル作成時に自動的にバージョンが上がるように変更したいと思います。
お手数をおかけして申し訳ございません。

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

石垣様

ご回答ありがとうございます。
ssh_configをrootユーザに変更しました。
また、config/id_rsa.pubをArmadillo側の/root/.ssh/へコピーしていませんでしたのでコピーを行いました。
パスワードを聞かれる事は無くなりましたが、「終了コード 1 で終了しました。 」という結果となります。

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

●rootユーザに変更しました。

Host Armadillo
    Hostname 192.168.201.79
    User root
    Port 2222
    IdentityFile ../config/ssh/id_rsa

●sshでrootログイン出来る事を確認しております。

Using username "root".
root@192.168.201.79's password:
Welcome to Alpine!
 
The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki.alpinelinux.org/>.
 
 
Please note this system is READ-ONLY with a read-write overlayfs,
after updating password make sure to save new password with
# persist_file /etc/shadow
 
You can change this message by editing /etc/motd.
armadillo:~#

●VSCodeからタスク 「App run on Armadillo」を実行。

実行するタスク: cd app && flutter-elinux pub get && flutter-elinux build elinux --target-arch=arm64 --target-compiler-triple=aarch64-linux-gnu --system-include-directories=/usr/aarch64-linux-gnu/include/c++/10/aarch64-linux-gnu --target-compiler-flags="-fms-extensions -DUSE_EGL_IMAGE_DMABUF" --debug && flutter-elinux run -d Armadillo 
 
Flutter 3.3.10 • channel unknown • unknown source
Framework • revision 135454af32 (8 weeks ago) • 2022-12-15 07:36:55 -0800
Engine • revision 3316dd8728
Tools • Dart 2.18.6 • DevTools 2.15.0
Running "flutter pub get" in app...                                 3.6s
Flutter 3.3.10 • channel unknown • unknown source
Framework • revision 135454af32 (8 weeks ago) • 2022-12-15 07:36:55 -0800
Engine • revision 3316dd8728
Tools • Dart 2.18.6 • DevTools 2.15.0
 
💪 Building with sound null safety 💪
 
Building an eLinux application with wayland backend in debug mode for arm64 target...        41.7s
Flutter 3.3.10 • channel unknown • unknown source
Framework • revision 135454af32 (8 weeks ago) • 2022-12-15 07:36:55 -0800
Engine • revision 3316dd8728
Tools • Dart 2.18.6 • DevTools 2.15.0
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-21-amd64
eLinux (desktop) • elinux-wayland • flutter-tester • Debian GNU/Linux 11 (bullseye) 5.10.0-21-amd64
eLinux (desktop) • elinux-x11     • flutter-tester • Debian GNU/Linux 11 (bullseye) 5.10.0-21-amd64
 
 *  ターミナル プロセス "/usr/bin/bash '-c', 'cd app && flutter-elinux pub get && flutter-elinux build elinux --target-arch=arm64 --target-compiler-triple=aarch64-linux-gnu --system-include-directories=/usr/aarch64-linux-gnu/include/c++/10/aarch64-linux-gnu --target-compiler-flags="-fms-extensions -DUSE_EGL_IMAGE_DMABUF" --debug && flutter-elinux run -d Armadillo'" が終了コード 1 で終了しました。 
 *  ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。 
armadillo:~# podman ps -all
CONTAINER ID  IMAGE                               COMMAND               CREATED            STATUS                PORTS                 NAMES
1f31490adbd4  localhost/gui_app_dev_image:latest  /bin/bash -c /usr...  About an hour ago  Up About an hour ago  0.0.0.0:2222->22/tcp  gui_app
armadillo:~#
armadillo:~# podman images
REPOSITORY                   TAG         IMAGE ID      CREATED     SIZE
localhost/gui_app_dev_image  latest      51cd679bf90f  7 days ago  427 MB
armadillo:~#

at_shiita.ishigaki

2023年2月7日 10時56分

石垣です。

> また、config/id_rsa.pubをArmadillo側の/root/.ssh/へコピーしていませんでしたのでコピーを行いました。
id_rsa.pub のコピー先は Armadillo の Armadillo Base OS に直接ではなく、コンテナイメージ localhost/gui_app_dev_image の中を想定しています。
これは gui_app_dev_image.swu をインストールすることで自動的に配置されるようになっております。

> ●sshでrootログイン出来る事を確認しております。

> Using username "root".
> root@192.168.201.79's password:
> Welcome to Alpine!

Flutter のアプリケーションは localhost/gui_app_dev_image で動かすことを想定していますので、
ssh 先を Armadillo Base OS(alpine Linux)ではなく localhost/gui_app_dev_image にする必要が有ります。
localhost/gui_app_dev_image に ssh できるか確かめるため gui-app-project-[version] ディレクトリ上で
下記コマンドを実行して、 config/ssh_config を使用して ssh が繋がるか試して頂けますでしょうか。

[ATDE ~/gui-app-project-[version]$] ssh -F config/ssh_config Armadillo

> ●VSCodeからタスク 「App run on Armadillo」を実行。

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

先ほどの ssh コマンドが通ることが確認できましたら、こちらのデバイスリストに Armadillo と表示されるはずです。

また、デバイスリストに Armadillo が表示されなかった場合は下記コマンドの実行結果を添付して頂けますでしょうか。

[ATDE ~]cat ~/.flutter_custom_devices.json

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

お世話になっております。浦末です。

> 下記コマンドを実行して、 config/ssh_config を使用して ssh が繋がるか試して頂けますでしょうか。

atmark@atde9:~/gui-app-project-v1.0.1$ ssh -F config/ssh_config Armadillo
root@192.168.201.79's password: 
Permission denied, please try again.

パスワードを求められるのですが、このパスワードはmkswu --initを実行した時に入力したパスワードでしょうか。
もしそうであれば、パスワードが通らないため、再度mkswuからやり直したいと思います。

at_shiita.ishigaki

2023年2月7日 15時15分

石垣です。

> パスワードを求められるのですが、このパスワードはmkswu --initを実行した時に入力したパスワードでしょうか。
config/ssh_config では鍵認証を行うようになっていますので、おそらく Armadillo 側の公開鍵が読み取れなかった、
もしくは、違う公開鍵が保存されているため、パスワードの入力を求められたかと思います。

以下のコマンドを実行して、gui-app-project にある公開鍵とコンテナイメージ側の公開鍵が同じ内容か確認して頂けますでしょうか。

gui-app-project 側

[ATDE ~/gui-app-project-[version]$] cat config/ssh/id_rsa.pub

コンテナイメージ側

[ATDE ~$] podman run -it localhost/gui_app_dev_image bash
[container ~#] cat ~/.ssh/authorized_keys

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

浦末です。

確認しましたところ、ご指摘の通り内容が違っておりました。
どの様にして合わせるのが良いでしょうか。

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

at_shiita.ishigaki

2023年2月7日 16時01分

石垣です。

> どの様にして合わせるのが良いでしょうか。

gui-app-project の config/ssh/id_rsa.pub の中身をコンテナイメージの ~/.ssh/authorized_keys に書き換えて
再度下記コマンドで ssh が繋がるか試して頂けますでしょうか。

[ATDE ~/gui-app-project-[version]$] ssh -F config/ssh_config Armadillo

gui-app-project の config/ssh/id_rsa.pub の公開鍵がどこからコピーされたかお心あたりありますでしょうか。
(例えば、ATDE の ~/.ssh/id_rsa.pub 等)
再発防止のため、もしご存知でしたらお聞かせ頂きたいです。

また、ご質問をして頂いた最初の内容となるのですが
> インストール自体は一度、成功していたのですが、podman rmi でイメージを消し、再度インストールしようとしたところ、エラーが起きるようになりました。
こちらのコンテナイメージを再度インストールする理由についても合わせて教えて頂けると幸いです。

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

at_shiita.ishigaki

2023年2月7日 16時12分

石垣です。

失礼しました。先ほどの内容に誤りが有りました。
> gui-app-project の config/ssh/id_rsa.pub の中身をコンテナイメージの ~/.ssh/authorized_keys に書き換えて
gui-app-project の config/ssh/id_rsa.pub を書き換えると、秘密鍵とのペアが変わってしまいますので、
Armadillo の localhost/gui_app_dev_image コンテナ内の ~/.ssh/authorized_keys を ATDE の config/ssh/id_rsa.pub に書き換える必要が有ります。

お手数をおかけして申し訳ございませんが、よろしくお願いいたします。

お世話になっております。浦末です。

> gui-app-project の config/ssh/id_rsa.pub の中身をコンテナイメージの ~/.ssh/authorized_keys に書き換えて
> 再度下記コマンドで ssh が繋がるか試して頂けますでしょうか。

書き換えて試してみましたが、繋がりませんでした。

atmark@atde9:~/gui-app-project-v1.0.1/config$ cat ssh_config 
Host Armadillo
    Hostname 192.168.201.79
    User root
    Port 2222
    IdentityFile ../config/ssh/id_rsa
 
 
atmark@atde9:~/gui-app-project-v1.0.1/config/ssh$ ls
id_rsa  id_rsa.pub
atmark@atde9:~/gui-app-project-v1.0.1/config/ssh$
 
atmark@atde9:~/gui-app-project-v1.0.1$ ssh -F config/ssh_config Armadillo
no such identity: ../config/ssh/id_rsa: No such file or directory
root@192.168.201.79's password:

id_rsaが見つからないと出ますが、ファイルはありました。
sshを実行するパスをconfigディレクトリから実行してみたところ、id_rsaが不一致となりました。

atmark@atde9:~/gui-app-project-v1.0.1/config$ ssh -F ssh_config Armadillo
identity_sign: private key ../config/ssh/id_rsa contents do not match public
root@192.168.201.79's password: 

> gui-app-project の config/ssh/id_rsa.pub の公開鍵がどこからコピーされたかお心あたりありますでしょうか。
> (例えば、ATDE の ~/.ssh/id_rsa.pub 等)
> 再発防止のため、もしご存知でしたらお聞かせ頂きたいです。
>
> また、ご質問をして頂いた最初の内容となるのですが
> > インストール自体は一度、成功していたのですが、podman rmi でイメージを消し、再度インストールしようとしたところ、エラーが起きるようになりました。
> こちらのコンテナイメージを再度インストールする理由についても合わせて教えて頂けると幸いです。

VSCodeからgui_appをArmadillo上で動作させようとした際、うまく行かず最初からやり直すため、
mksw --initを実行したと思います。
工場出荷状態からやり直す事は可能でしょうか。

at_shiita.ishigaki

2023年2月8日 9時38分

石垣です。

> sshを実行するパスをconfigディレクトリから実行してみたところ、id_rsaが不一致となりました。
誤った内容を一度お伝えてして申し訳ありません。
> gui-app-project の config/ssh/id_rsa.pub を書き換えると、秘密鍵とのペアが変わってしまいますので、
> Armadillo の localhost/gui_app_dev_image コンテナ内の ~/.ssh/authorized_keys を ATDE の config/ssh/id_rsa.pub に書き換える必要が有ります。
こちらが正しい対処法となっておりました。
現在鍵の組み合わせが合わなくなってる状態だと思いますので、下記コマンドを実行して、
再度、鍵と gui_app_dev_image を作成し、インストールした後に、Flutter アプリが動作するか確認頂けますでしょうか。

# Armadillo にログイン
[Armadillo ~#] vi /etc/sw-versions
gui_app_dev_image 1 を削除
[Armadillo ~#] persist_file /etc/sw-versions
 
# ATDE で操作
[ATDE ~/gui-app-project-[version]$] rm config/ssh/id_rsa*
[ATDE ~/gui-app-project-[version]$] podman rmi localhost/gui_app_dev_image
 
VSCode の task から Setup environment を実行
VSCode の task から Generate development swu を実行
 
生成された gui-app-project-[VERSION]/container/dev/gui_app_dev_image.swu を Armadillo にインストール
 
VSCode の task から App run on Armadillo を実行

> VSCodeからgui_appをArmadillo上で動作させようとした際、うまく行かず最初からやり直すため、
> mksw --initを実行したと思います。
swu ファイルは Armadillo に podman イメージをインストールすることのみ行っているため、mkswu は問題がないと思われます。
例えば、Setup environment と Generate development swu を実行し、生成された swu ファイルを Armadillo にインストールした後に、
ATDE に保存されている鍵を削除し、もう一度 Setup environment を実行したりすると、
Armadillo 内の公開鍵と、ATDE に保存されている公開鍵が合わなくなってしまいますので、
これに似た状態が起きてしまったのではないかと考えております。

> 工場出荷状態からやり直す事は可能でしょうか。
以下マニュアルに記載されている、初期化インストールディスクを作成し、
Armadillo でインストールディスクを使用することで、初期化することができます。
https://manual.atmark-techno.com/armadillo-x2/armadillo-x2_product_manu…

以上、お手数をかけて申し訳ございませんがよろしくお願いいたします。

お世話になっております。
浦末です。

> 例えば、Setup environment と Generate development swu を実行し、生成された swu ファイルを Armadillo にインストールした後に、
> ATDE に保存されている鍵を削除し、もう一度 Setup environment を実行したりすると、
> Armadillo 内の公開鍵と、ATDE に保存されている公開鍵が合わなくなってしまいますので、
> これに似た状態が起きてしまったのではないかと考えております。

なるほど。承知いたしました。鍵の件、注意いたします。
工場出荷状態に戻して、もう一度初めからやり直してみたところ、
スムーズに動作させることができました。

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

> > 工場出荷状態からやり直す事は可能でしょうか。
> 以下マニュアルに記載されている、初期化インストールディスクを作成し、
> Armadillo でインストールディスクを使用することで、初期化することができます。
> https://manual.atmark-techno.com/armadillo-x2/armadillo-x2_product_manu…
>
> 以上、お手数をかけて申し訳ございませんがよろしくお願いいたします。
>