Armadilloフォーラム

OS起動時間について

yasuda0108

2022年4月19日 15時47分

Armadillo-G4のOS起動時間ですが、現状電源起動~コンテナ起動までに約15s程度要しております。
以下リンク先でも記載いただいている通り、主にBaseOSの起動時間かと思いますが、こちらの時間を短縮する方法はございますでしょうか。
https://armadillo.atmark-techno.com/forum/armadillo/11408#comment-10987
目標は起動時間10s以内程度です。

以下想定するボードの用途とデバイス情報です。
【使用用途】
eMMCに保存した画像を、LVDSを介してLCDへ表示する
【使用IF】
PWR, UART, CAN, LVDS, USB, LAN(開発時のみ)
【使用コンテナ】

//LCD表示用
armadillo:~# cat /etc/atmark/containers/qt-auto.conf
image="localhost/gk_moni:v0.02"
volumes="/sys:/sys /dev:/dev /run/udev:/run/udev /opt/firmware:/opt/firmware"
devices="/dev/dri /dev/fb0"
readonly=false
autostart=yes
append_args --env=LD_LIBRARY_PATH=/opt/firmware/usr/lib/aarch64-linux-gnu
append_args --env=QT_QPA_PLATFORM=linuxfb
append_args -w /home/MONI
set_command ./MONI
 
//GPIO設定用
armadillo:~# cat /etc/atmark/containers/io-auto.conf
image="localhost/gk-ioctrl:v0.00"
volumes="/sys:/sys /dev:/dev /run/udev:/run/udev"
devices="/dev/dri"
readonly=false
autostart=yes
append_args -w /home
set_command ./initIO.sh
コメント

at_dominique.m…

2022年4月19日 18時03分

yasuda0108さん、

お世話になっています。

そうですね、私も、起動時間が長いと思っていました。

今推測したら、以下の時間隊になっています(大幅):
on: 0
uboot prompt ("Hit any key to stop autoboot"): 2s
linux ("Starting kernel..."): 5s
baseos start ("OpenRC ... is starting up Linux"): 10s
container start ("podman-atmark | [ok]"): 15s

uboot の promptまでにあまり設定の余地がないので、このままにします。
Starting kernelまでのほぼの時間はpromptの待ってる2秒がほとんどで、imx-boot/uboot-imx/configs/x2_defconfigに「CONFIG_BOOTDELAY=0」を設定すればスキップされます。
公式バージョンでdelayがないと使いにくいとおもいますので、恐らくそのままになってしまいますがチームで話します。対応が決まったらまた連絡します。

次に、baseos startまでの5秒の半分ぐらいはシリアルのメッセージの量の影響で遅くなりますので、ubootでsetenv optargs quiet; saveenv(更新したらコードで更新の必要があります)で2.5秒ぐらい早くなります。
こちらはデフォルトにしようと思いますが、同じく後ほど連絡します。

このステップでこれ以上の早くするには機能を無効にするしかないと思うので、すぐにできません。
(いずれやりたいと思います)

最後にinitが起動してから、コンテナの立ち上がる時間までですが、すでにrc_parallelを有効にしたので簡単な設定はないですね…
少しみたらudevとpodman自体も遅いように見えますが、そちらはもうちょっと時間かけて改善したいと思います。

よろしくお願いします。

yasuda0108

2022年4月20日 10時49分

> 今推測したら、以下の時間隊になっています(大幅):
> on: 0
> uboot prompt ("Hit any key to stop autoboot"): 2s
> linux ("Starting kernel..."): 5s
> baseos start ("OpenRC ... is starting up Linux"): 10s
> container start ("podman-atmark | [ok]"): 15s

起動ログの構成と秒数の調査ありがとうございます。

> uboot の promptまでにあまり設定の余地がないので、このままにします。
> Starting kernelまでのほぼの時間はpromptの待ってる2秒がほとんどで、imx-boot/uboot-imx/configs/x2_defconfigに「CONFIG_BOOTDELAY=0」を設定すればスキップされます。
> 公式バージョンでdelayがないと使いにくいとおもいますので、恐らくそのままになってしまいますがチームで話します。対応が決まったらまた連絡します。

確かにprompt待機時間がありますね。
こちらの設定を変更したいのですが、ディレクトリ「imx-boot」はどこに存在しておりますでしょうか。

> 次に、baseos startまでの5秒の半分ぐらいはシリアルのメッセージの量の影響で遅くなりますので、ubootでsetenv optargs quiet; saveenv(更新したらコードで更新の必要があります)で2.5秒ぐらい早くなります。
> こちらはデフォルトにしようと思いますが、同じく後ほど連絡します。

ubootの設定変更が必要という事ですね。
Armadillo-G4でのU-Boot設定変更の方法について、ご教示いただけますと幸いです。

> このステップでこれ以上の早くするには機能を無効にするしかないと思うので、すぐにできません。
> (いずれやりたいと思います)

承知いたしました。

>
> 最後にinitが起動してから、コンテナの立ち上がる時間までですが、すでにrc_parallelを有効にしたので簡単な設定はないですね…
> 少しみたらudevとpodman自体も遅いように見えますが、そちらはもうちょっと時間かけて改善したいと思います。

rc_parallelとはどのようなものになりますでしょうか?
改善の程お待ちしております。

at_dominique.m…

2022年4月20日 16時09分

> 確かにprompt待機時間がありますね。
> こちらの設定を変更したいのですが、ディレクトリ「imx-boot」はどこに存在しておりますでしょうか。

すみません、imx-bootはブートローダのソースツリーのことです。
こちらにあります:
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…

ビルド手順はマニュアルにありますが、今言ったdefconfigの変更は説明されてないので相談の結果によって足します。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

試しにu-bootのプロンプトに「setenv bootdelay 0; saveenv」を打てば同じ結果になりますが、更新の時に設定なくなりますのでいずれ何かの対応が必要です。

> > 次に、baseos startまでの5秒の半分ぐらいはシリアルのメッセージの量の影響で遅くなりますので、ubootでsetenv optargs quiet; saveenv(更新したらコードで更新の必要があります)で2.5秒ぐらい早くなります。
> > こちらはデフォルトにしようと思いますが、同じく後ほど連絡します。
>
> ubootの設定変更が必要という事ですね。
> Armadillo-G4でのU-Boot設定変更の方法について、ご教示いただけますと幸いです。

書いた「setenv optargs quiet; saveenv」はu-bootのプロンプトのコマンドで、これもビルドしなくても試すことができます。

永続化にビルドの時にimx-boot/uboot-imx/include/configs/armadillo_x2.h に設定できますが、それも対応を決めてからマニュアルに載せたいので少しお待ちください。

> > 最後にinitが起動してから、コンテナの立ち上がる時間までですが、すでにrc_parallelを有効にしたので簡単な設定はないですね…
> > 少しみたらudevとpodman自体も遅いように見えますが、そちらはもうちょっと時間かけて改善したいと思います。
>
> rc_parallelとはどのようなものになりますでしょうか?

すみません、わざわざ話すことでもなかったと思いますが、alpineのinit(openrc)の平行実行設定です。以前もっと遅くて、平行に実行させることで数秒をすでにこちらで稼ぎました。
他の便利な設定がないかなと考えて指からすべりました、失礼しました。

> 改善の程お待ちしております。

承知しました。来月にそれに時間をとります。

よろしくお願いします。

yasuda0108

2022年4月26日 13時11分

> すみません、imx-bootはブートローダのソースツリーのことです。
> こちらにあります:
> https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…
>
> ビルド手順はマニュアルにありますが、今言ったdefconfigの変更は説明されてないので相談の結果によって足します。
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
>
> 試しにu-bootのプロンプトに「setenv bootdelay 0; saveenv」を打てば同じ結果になりますが、更新の時に設定なくなりますのでいずれ何かの対応が必要です。
>
> > > 次に、baseos startまでの5秒の半分ぐらいはシリアルのメッセージの量の影響で遅くなりますので、ubootでsetenv optargs quiet; saveenv(更新したらコードで更新の必要があります)で2.5秒ぐらい早くなります。
> > > こちらはデフォルトにしようと思いますが、同じく後ほど連絡します。
> >
> > ubootの設定変更が必要という事ですね。
> > Armadillo-G4でのU-Boot設定変更の方法について、ご教示いただけますと幸いです。
>
> 書いた「setenv optargs quiet; saveenv」はu-bootのプロンプトのコマンドで、これもビルドしなくても試すことができます。
>
> 永続化にビルドの時にimx-boot/uboot-imx/include/configs/armadillo_x2.h に設定できますが、それも対応を決めてからマニュアルに載せたいので少しお待ちください。
>
ご回答ありがとうございます。
①u-bootのプロンプトを、試しで実行する方法についてお教え頂けますでしょうか。
②2種類の起動時間短縮方法(bootdelay=0, コンソールログ非表示)について、設定および永続化のやり方について、ご連絡お待ちしております。

> > > 最後にinitが起動してから、コンテナの立ち上がる時間までですが、すでにrc_parallelを有効にしたので簡単な設定はないですね…
> > > 少しみたらudevとpodman自体も遅いように見えますが、そちらはもうちょっと時間かけて改善したいと思います。
> >
> > rc_parallelとはどのようなものになりますでしょうか?
>
> すみません、わざわざ話すことでもなかったと思いますが、alpineのinit(openrc)の平行実行設定です。以前もっと遅くて、平行に実行させることで数秒をすでにこちらで稼ぎました。
> 他の便利な設定がないかなと考えて指からすべりました、失礼しました。
>
> > 改善の程お待ちしております。
>
> 承知しました。来月にそれに時間をとります。

なるほど、内容承知いたしました。
詳細迄お教えいただきありがとうございます。

引き続きよろしくお願いいたします。