0

当社の製品には、iMx6 プロセッサ、2GB eMMC、512 MB RAM、2 つのイーサネット ポート、および USART ポートの構成があります。これは、24 時間 365 日稼働するデバイスになります

最小限の Linux イメージ (カーネル + RFS) を約 7 ~ 10 MB で構築し、メイン アプリケーションとカスタム カーネル ドライバーをサイズ 2 MB の個別の squashfs パーティションに保持することを計画しています (これは、このパーティションを別々に小さく保ちたいフィールド)。

永続データを格納するための別の ext4 読み取り/書き込みデータ パーティション。データ パーティションを除いて、他のすべてを読み取り専用パーティションにする必要があります。

私のクエリは

Linux OS イメージ (カーネル + RFS) が小さいため、RFS 全体を initramfs として使用できますか?

initramfs として RFS を使用することには何らかの意味がありますか? (RAM はもっと消費されます。私たちが持っている RAM の量を考えると、最大で約 20 から 30 MB だと思いますが、これは問題ではないと思います)

別の解決策は、RFS を squashfs として使用することです。これにより、スペースが節約されます。上記にはinitramfsよりも他の利点がありますか?

squashfs がある場合は、読み取り専用アプリケーション パーティションと読み取り/書き込みデータ パーティションの両方を一緒にマウントするために、ユニオン マウントも必要です。

initramfs を使用する場合、ユニオン マウントを実装する必要はないと思います。この理解は正しいでしょうか?

これは Linux での最初のプロジェクトなので、そのような RFS を使用した経験のある人からフィードバックを得たいと思います。

4

2 に答える 2

0

@unionfsまたはunionmountを使用せずに解決策を達成できました。/run の下に ext4 パーティションをマウントするときに squashfs ファイル システム (読み取り専用 RFS) を使用しましたが、読み取りと書き込みが可能です。Linux は、マウントされたパーティションが R/W パーティションであることを検出し、RFS が読み取り専用ファイル システムであっても、適切な操作を実行できるようにします。読み取り専用の RFS コンテンツ自体の一部を更新する場合にのみ、unionFS またはユニオン マウントを使用する必要があると思います。

于 2015-02-18T11:55:43.010 に答える
0

RFS の一部を RAM に配置したい場合は、そこに正確に何を配置するかを非常によく考える必要があると思います (たとえば、/var/log/ ディレクトリはログ記録に使用されます。これにより、ログ ファイルが記録されるたびに RAM が削減されます)。書かれます)。

また、私が覚えている限り、あなたのようなアーキテクチャを持つ組み込みシステム用のソリューションはたくさんあります。たとえば、ステートレスシステムを調べたり、UnionFS を目的に使用したい場合などです。

于 2014-11-22T06:50:53.427 に答える