特に組み込み関連の環境で、起動時間を短縮する方法を見つけることに興味があります。
カーネルがいくつかのドライバーやモジュールをロードしないようにする方法のどこかを読みましたが、完全に失われ、インターネットで見つけたすべての情報は非常に複雑で密集しています。
誰かがこれを達成するために必要な一般的な手順を提案できますか?多分私は間違っていて、これはカーネルとは何の関係もありません。
Arch Linuxのドキュメント パフォーマンス/ブートプロセスの改善 は、ブートパフォーマンスを改善する方法を学ぶのに役立つかもしれません。
systemd-analyze blame
を使用して有効なサービスのタイミングを確認するか、systemd-analyze critical-chain
を使用して重要なポイントを確認し、systemctl disable service_name.
を介して不要なサービスを無効にするか、apt
を介して不要なプログラムを削除します。
ブート時最適化(組み込みLinuxの場合)について私が知っている最も広範なドキュメントは、ブート時最適化に特化したトレーニングコースのBootlin(以前はFree Electronsと呼ばれていました)のプレゼンテーションスライドです https://bootlin.com/doc/training/boot-time /
関連するトレーニングがなくても、起動時間を測定するためのツールに関する多くの情報を提供します-時間を稼ぐことができる複数のポイント。
ただし、注意すべき点が1つあります。説明されているオプションの中には、カーネル/ルートファイルシステムの低レベルの側面を微調整する必要があるものがあります。
起動時間を本当に短縮するには、カスタムカーネルを構築します。
コンピュータに不要なすべてのデバイスを「ストック」または元のカーネルから削除して、カスタムカーネルを構築できます。
思ったより簡単です。
カーネルファイルを取得し、コンピューターが必要としないものをすべて編集します。たとえば、コンピューターにWi-Fiがない場合は、カーネルからすべてのWi-Fiドライバーを削除します。そして、カーネルを再コンパイルします。
新しいカーネルは古いカーネルよりもはるかにタイトで、起動がはるかに高速です。
FreeBSDハンドブックのカーネルの設定に関するセクションを読むことをお勧めします。
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
繰り返しますが、思ったよりもずっと簡単です。