yasuda0108
2024年10月16日 15時02分
お世話になっております。
https://armadillo.atmark-techno.com/forum/armadillo/11261
上記リンクを参考に、下記の通り.descを作成しましたが、現在コメントアウトしている箇所を有効にすると更新後の起動時に失敗します。
解決方法をご教示お願い致します。
###.decs swdesc_option component=gkib swdesc_option version=100 #swdesc_option POST_ACTION=wait swdesc_embed_container "GKIB_0100.tar" swdesc_files --extra-os baseOS swdesc_files --extra-os --dest /etc/atmark/containers/ "01_cptrans_network.conf" swdesc_files --extra-os --dest /etc/atmark/containers/ "02_gkib.conf" swdesc_files --extra-os --dest /var/app/volumes/ "swuVersions" #swdesc_files --extra-os --dest /etc/local.d/ "shutdown.start" #swdesc_command --extra-os 'chmod 755 /etc/local.d/shutdown.start' #swdesc_command --extra-os 'rc-update add local default' ↑コメントアウトを外すと再起動の途中でフリーズする ###log Starting kernel ... [ 0.423876] rtc-rv8803 1-0032: hctosys: unable to read the hardware clock [ 0.791499] imx6q-pcie 33800000.pcie: invalid resource [ 0.948270] mdio_bus 30be0000.ethernet-1: MDIO device at address 0 is missing. [ 1.141792] mdio_bus stmmac-1: MDIO device at address 0 is missing. [ 1.801235] imx6q-pcie 33800000.pcie: failed to initialize host [ 1.807240] imx6q-pcie 33800000.pcie: unable to add pcie port. OpenRC 0.48 is starting up Linux 5.10.205-0-at (aarch64) * Mounting /proc ... [ ok ] * Mounting /run ... [ ok ] * /run/openrc: creating directory * /run/lock: creating directory * /run/lock: correcting owner * Caching service dependencies ... [ ok ] * Clock skew detected with `/etc/init.d' * Adjusting mtime of `/run/openrc/deptree' to Thu Dec 28 14:10:35 2023 * WARNING: clock skew detected! * Mounting /sys ... * Remounting devtmpfs on /dev ... [ ok ] [ ok ] * Mounting security filesystem ... [ ok ] * Mounting config filesystem ... [ ok ] * Mounting /dev/mqueue ... [ ok ] * Mounting /dev/pts ... [ ok ] * Mounting /dev/shm ... [ ok ] udev | * Starting udev ... [ ok ] fsck | * Checking local filesystems ... [ ok ] fsck_atlog | * Checking log filesystems ...root | * Remounting filesyst ems ... [ ok ] [ ok ] localmount | * Mounting local filesystems ... [ ok ] overlayfs | * Preparing overlayfs over / ... [ ok ] * WARNING: clock skew detected! udev-trigger | * Generating a rule to create a /dev/root symlink ...sysctl | * Configuring kernel parameters ... [ ok ] udev-trigger | * Populating /dev with existing devices through uevents ...hostname | * Setting hostname ... [ ok ] [ ok ] [ ok ] bootmisc | * Migrating /var/lock to /run/lock ... [ ok ] bootmisc | * Creating user login records ... [ ok ] bootmisc | * Wiping /var/tmp directory ... [ ok ] syslog | * Starting busybox syslog ...dbus | * /run/dbus: creating directory dbus | * /run/dbus: correcting owner micron-emmc-reten | * Starting micron-emmc-reten [ ok ] dbus | * Starting System Message Bus ... [ ok ] klogd | * Starting busybox klogd ... [ ok ] networkmanager | * Starting networkmanager ... [ ok ] dnsmasq | * /var/lib/misc/dnsmasq.leases: creating file dnsmasq | * /var/lib/misc/dnsmasq.leases: correcting owner dnsmasq | * Starting dnsmasq ... [ ok ] * WARNING: clock skew detected! buttond | * Starting button watching daemon ...reset_bootcount | * Resetting bo otcount in bootloader env ...Environment OK, copy 0 [ ok ] reset_bootcount | [ ok ] chronyd | * Starting chronyd ...avahi-daemon | * Starting avahi-daemon ...zr amswap | * Creating zram swap device ...podman-atmark | * Starting configured podman containers ... [ ok ] /usr/bin/podman_start: /etc/atmark/containers/01_cptrans_network.conf: line 3: set_gateway: not found podman-atmark |/usr/bin/podman_start: /etc/atmark/containers/01_cptrans_network.conf: line 4: set_dns: not found [ ok ] abos-web | * Starting abos-web ... [ ok ] podman-atmark |Creating network '01_cptrans_network' podman-atmark |01_cptrans_network podman-atmark |Starting '02_gkib' podman-atmark |dcde8407a2a19ddedf16bade3f27cb6c1f1b40d54b00779ef076be1fd4464ee1 podman-atmark | [ ok ] [ ok ] local | * Starting local ... ↑ここでフリーズ
尚、shutdown.shの動作は確認済みです。
以上よろしくお願いします。
コメント
yasuda0108
at_dominique.m…
yasuda0108さん
> スクリプト自体がwhile doで実行する内容になっていますので、そこで停止しているように見えたということになりそうです。
> ホストOS上で上記スクリプトはバックグラウンド実行させておきたいのですが、可能でしょうか?
質問をそのまま繰り替えしているだけですが、処理をバックグラウンドで実行すれば可能です。
複雑な処理になってきた場合は個別にサービスを建てることもいいかもしれませんが、シンプルなシェルループの場合は例えば関数か別のスクリプトに入れて「 &
」文字でバックグラウンドで関数を実行することです。
(関数なくても while ... done &
でも実行できますがちょっと分かりにくい気がします)
handle_shutdown() { while true; do ... done handle_shutdown } # run in background handle_shutdown &
バックグラウンドで実行しておけばサービスが完了してログインまで表示されるようになります。
また、深読みかもしれませんが、shutdown.start と while ループで以前コンテナから停止するスクリプト ( https://armadillo.atmark-techno.com/forum/armadillo/17613 ) と関係しているかと思いましたが、それでしたら今の Armadillo Base OS であればコンテナから abos-web の REST API で制御することを推奨しています: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
まだ確定されてなければご顧慮ください。
よろしくお願いします。
yasuda0108
at_dominique.m…
2024年10月16日 15時49分
yasuda0108さん
お世話になっています、
マルティネです。
> 上記リンクを参考に、下記の通り.descを作成しましたが、現在コメントアウトしている箇所を有効にすると更新後の起動時に失敗します。
確認させてください。
「失敗します」というのは、インストールが失敗するということではなく、インストールして再起動すると最後のログの様のフリーズするということであってますね?
(swupdate と関係なく、手動にそのファイルを設置すれば再現する問題という認識です)
> 尚、shutdown.shの動作は確認済みです。
shutdown.sh の動作を確認したということは、shutdown.start を実行するとスクリプトがすぐに終了することであってますか?
local のサービスはディレクトリ内のスクリプトを順番に実行して、終わるまで待っていますので、shutdown.start が終了しないといただいたログの様にサービスが起動しないように見えてしまいます。
何か長い処理があれば、関数に入れてバックグラウンドで実行すれば起動が完了するはずです。
スクリプトがちゃんと停止するのであれば、申し訳ないですがスクリプトの内容を見せていただかなければ何ともいえません。スクリプト内に何かのログを /dev/tty に出力すれば何かわかるかもしれません。
また、今回の問題と関係ないですが、いくつかコメントをさせていただきます。
以下は無視していただいて構いません。
> swdesc_files --extra-os --dest /etc/atmark/containers/ "01_cptrans_network.conf"
> swdesc_files --extra-os --dest /etc/atmark/containers/ "02_gkib.conf"
swdesc_files にいくつかのファイルを引数で指定できますので、一つの 「swdesc_files --extra-os --dest ... 01...conf 02..conf」でもいいです。
> #swdesc_command --extra-os 'chmod 755 /etc/local.d/shutdown.start'
swdesc_files で書き込みされる実行制限は手元のファイルの実行制限をコピーしていますので、atde側で chmod していただければ同じ結果になります(desc ファイル内に「chmod 655 shutdown.start」でもいいです)
> #swdesc_command --extra-os 'rc-update add local default'
local サービスはデフォルトで有効になっているはずですのでこの行は不要です。
よろしくお願いします。