Armadilloフォーラム

ArmadilloX1起動高速化の件

momura

2018年6月19日 14時22分

お世話になります。 大村と申します。
AlmadilloX1の起動高速化についてご教示ください。
使っていない機能が多いので、それらを削って
起動を高速化したいと考えております。
menuconfigを使い行おうとしました。
例えばオーディオ機能などは使わないので、
チェックをはずしてビルドするとエラーが出てしまいました。
使っている機能はSPI、DMA、拡張USBホスト+ファイルシステム、
GPIOくらいです。
開発時はethernetも使います。
そんなところです。
機能を削るときどのようにして行うのでしょうか?
定番の方法でもあればお教えください。
よろしくお願いいたします。

コメント

at_mizo

2018年6月19日 15時18分

溝渕です。

> 使っていない機能が多いので、それらを削って
> 起動を高速化したいと考えております。

カーネルから機能を削除しても(数秒オーダーで)大きく高速化はできないと思
います。
# 機能を削除するとカーネルサイズが減るので、RAMへの展開時間は削減でき
# ますが微々たるものと思います。

時間がかかるのは各デバイスの初期化が主だと思うので、使わないデバイスを
DTSから削除してみてください。

例えば、PCIeを利用しないのであれば、以下2つのノードを削除してください。

arch/arm/boot/dts/armadillo_x1.dts:
&pcie_phy{
:(省略)
};

&pcie {
:(省略)
};

> 機能を削るときどのようにして行うのでしょうか?
> 定番の方法でもあればお教えください。

Linuxカーネルの機能を削るわけではありませんが、起動高速化するのであれ
ば不要なサービスの停止が考えられます。

以下のコマンドを実行し、"STATE"が"enabled"になっているサービスを停止す
ることで起動が高速化される場合があります。

root@armadillo:~# systemctl list-unit-files -t service

サービスを停止するには次のようにコマンドを実行します。

root@armadillo:~# systemctl disable [UNIT FILE]

at_mizo

2018年6月19日 15時27分

溝渕です。

> 以下のコマンドを実行し、"STATE"が"enabled"になっているサービスを停止す
> ることで起動が高速化される場合があります。

各サービスの初期化時間は、次のように確認できます。

root@armadillo:~# systemd-analyze blame

初期化時間が長く、かつ利用しないサービスを止めていくと効果が大きくなり
ます。

momura

2018年6月20日 13時21分

溝渕様

ご教示ありがとうございます。
大変助かります。

機能を削るなどという俗な表現ですみません。
言いたいことはおっしゃるとおり電源投入時の初期化時間を短くするため
サービスを停止するにはどうするかということです。今後、表現には気をつけます。

いただいた助言を参考にして、いろいろ試してみます。
取り急ぎ、御礼申し上げます。

> 溝渕です。
>
> > 以下のコマンドを実行し、"STATE"が"enabled"になっているサービスを停止す
> > ることで起動が高速化される場合があります。
>
> 各サービスの初期化時間は、次のように確認できます。
>
>
> root@armadillo:~# systemd-analyze blame
>
>
> 初期化時間が長く、かつ利用しないサービスを止めていくと効果が大きくなり
> ます。
>