momosuke
2022年6月27日 16時39分
https://armadillo.atmark-techno.com/migrate-from-rpi-to-armadillo/softw…
上記のガイドに沿ってRaspberry PiからArmadilloへの移行をしています
その際、podman runコマンドで以下のログが出てコンテナに入ることができません
armadillo:~# podman run -it --name=rpi1_container localhost/rpi_image /bin/bash [ 322.146734] IPv6: ADDRCONF(NETDEV_CHANGE): vethe603ddcc: link becomes ready [ 322.153962] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 322.160620] cni-podman0: port 1(vethe603ddcc) entered blocking state [ 322.167027] cni-podman0: port 1(vethe603ddcc) entered disabled state [ 322.173558] device vethe603ddcc entered promiscuous mode [ 322.178975] cni-podman0: port 1(vethe603ddcc) entered blocking state [ 322.185336] cni-podman0: port 1(vethe603ddcc) entered forwarding state armadillo:~# [ 322.634807] cni-podman0: port 1(vethe603ddcc) entered disabled state [ 322.641884] device vethe603ddcc left promiscuous mode [ 322.646977] cni-podman0: port 1(vethe603ddcc) entered disabled state
どうしたらこのコンテナに入れるかご教授頂きたいです。
コメント
at_dominique.m…
momosukeさん
お世話になっています、
アットマークテクノのマルティネです。
> その際、podman runコマンドで以下のログが出てコンテナに入ることができません
分かりにくいですが、このログではbashがすぐに停止するように見えます。
コンテナの内容を確認してもらえますか?以下のコマンドの出力をお願いします。
armadillo:~# apk add file ^ file コマンドをメモリ上でインストールします armadillo:~# podman run -it --replace --name=rpi1_container localhost/rpi_image /bin/bash armadillo:~# m=$(podman mount rpi1_container); echo $m ^ コンテナのマウントパスを取得します armadillo:~# file $m/bin/bash ^ bashの存在とarchを確認します。例: /run/containers/storage_root/overlay/fa1cad7740cefb172f37795bc8fa2d5baafea11a7db5efd4ab48b0d8d4e48cec/merged/bin/bash: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=187a59265dfe6e8319a93bdf9cd64ed9be250aaa, stripped armadillo:~# $m/lib/ld-linux-aarch64.so.1 --list --library-path $m/lib:$m/lib/aarch64-linux-gnu $m/bin/bash ^ 前のコマンドの"interpreter"が違っていたらそれを使って見てください。その場合に --library-pathの調整も必要かもしれません。 ls などで "$m" の中身と raspberry piの中身が一致していることを確認してください。 armadillo:~# $m/lib/ld-linux-aarch64.so.1 --library-path $m/lib:$m/lib/aarch64-linux-gnu $m/bin/bash -c 'uname' ^ --listができたら、実行してみます。恐らく--listの段階でエラーがでると思いますので、その場合にそのエラーで結構です。
よろしくお願いします。
momosuke
> コンテナの内容を確認してもらえますか?以下のコマンドの出力をお願いします。
すみません、私が初心者でコメントの意味があまり理解できなかったです
一応コマンドの出力はしました
armadillo:~# podman run -it --replace --name=rpi1_container localhost/rpi_image /bin/bash d75519bd5c29ef64dc8f8cdee6ee80571f44f138fb35897c68d20a711d19996d [ 3182.035894] IPv6: ADDRCONF(NETDEV_CHANGE): vethafe88d8b: link becomes ready [ 3182.043036] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 3182.049616] cni-podman0: port 1(vethafe88d8b) entered blocking state [ 3182.056006] cni-podman0: port 1(vethafe88d8b) entered disabled state [ 3182.062522] device vethafe88d8b entered promiscuous mode [ 3182.067916] cni-podman0: port 1(vethafe88d8b) entered blocking state [ 3182.074274] cni-podman0: port 1(vethafe88d8b) entered forwarding state armadillo:~# [ 3182.474562] cni-podman0: port 1(vethafe88d8b) entered disabled state [ 3182.481569] device vethafe88d8b left promiscuous mode [ 3182.486664] cni-podman0: port 1(vethafe88d8b) entered disabled state armadillo:~# m=$(podman mount rpi1_container); echo $m /var/lib/containers/storage/overlay/d4ac21d545588a45caa3a3087d40412f43d90b8d8181ca70967c590be534a70e/merged armadillo:~# file $m/bin/bash /var/lib/containers/storage/overlay/d4ac21d545588a45caa3a3087d40412f43d90b8d8181ca70967c590be534a70e/merged/bin/bash: ELF 32-bit LSB executable, A RM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=3e5e2847bbc51da2ab313bc53 d4bdcff0faf2462, stripped armadillo:~# $m/lib/ld-linux-aarch64.so.1 --list --library-path $m/lib:$m/lib/aa rch64-linux-gnu $m/bin/bash -ash: /var/lib/containers/storage/overlay/d4ac21d545588a45caa3a3087d40412f43d90b8d8181ca70967c590be534a70e/merged/lib/ld-linux-aarch64.so.1: not f ound armadillo:~# $m/lib/ld-linux-aarch64.so.1 --library-path $m/lib:$m/lib/aarch64-l inux-gnu $m/bin/bash -c 'uname' -ash: /var/lib/containers/storage/overlay/d4ac21d545588a45caa3a3087d40412f43d90b8d8181ca70967c590be534a70e/merged/lib/ld-linux-aarch64.so.1: not f ound
勉強不足ですみません、よろしくお願いします
at_dominique.m…
> すみません、私が初心者でコメントの意味があまり理解できなかったです
いいえいいえ、私の方こそ説明不足ですみません。
これだけでも確認したかったことを確認できました:fileのコマンドで「ELF 32-bit LSB executable, ARM」がでたことで、石垣さんの質問の答えがでました。
Armadillo G4 は aarch64 という 64bit の CPU を搭載していますので、お客さんの raspberry pi との適合性がないだけです。ガイドでは「 本手順を実行するにはRaspberry Piで64bit OSを使用している必要があります。」として注意を書いていますが、明確に確認させた方がいいかもしれませんね。
raspberry pi のモデルによってその両方の 32bit / 64bit をサポートできる基板もありますが、今回は普通の debian コンテナかアットマークが用意している学習機能のあるコンテナを使った方が確実と思います。
開発ガイドの https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev… にコンテナの使用例がありますが、何か分からなかった聞いてください。
よろしくお願いします。
momosuke
at_shiita.ishigaki
momosuke
2022年6月27日 16時41分
製品はG4です