.sdcard の理解と使用形式
Yocto Communiy BSPとRelease BSPの両方でデフォルトで有効になっている非常に便利な機能の1つは、ベイクした画像を.sdcardで生成するオプションです形式。
.sdcard の場合デフォルトでは format が選択されていませんが、次のように conf/local.conf ファイルに IMAGE_FSTYPES を追加することで有効にできます。
IMAGE_FSTYPES="sdcard"
この変数を指定すると、定義された入力されたファイルシステムのみが作成されることに注意してください。この変数に最も頻繁に使用されるデフォルト値は次のとおりです。
IMAGE_FSTYPES="tar.bz2 ext3 SDカード"
.sdcard 形式は、必要なすべてのパーティションを含むイメージを作成し、ブートローダー、カーネル、および rootfs をこのイメージにロードします。次のコマンド例のように、dd を使用して、このファイルのデータを SD カード デバイスに低レベルでコピーできます。
$ sudo dd if=.sdcard
.sdcard で使用されるパーティションファイル
.sdcard パーティションは次のようになります。
IMAGE_ROOTFS_ALIGNMENT
ブートローダー用に予約された未分割のスペース
BOOT_SPACE
Kernerl およびその他のデータ
ROOTFS_SIZE
rootfs.
RootFS パーティションにより多くの空き領域を付与する
.sdcard のサイズfile は rootfs のサイズにのみ依存します。これは、rootfsパーティションに追加のスペースを追加しない限り、結果のファイルはすべてのSDカード容量をパーティション分割しないことを意味します。(もちろん、SDカードにロードされたパーティションを編集するオプションは常にあります)
スペースを追加するために、IMAGE_ROOTFS_EXTRA_SPACE変数を使用できます。それを local.conf ファイルに追加して、空きディスク容量 (キロバイト単位) を追加することができます。たとえば、1GBの追加スペースを保証したい場合は、local.confファイルに次の行を追加できます。
IMAGE_ROOTFS_EXTRA_SPACE = "1048576"
これは、初期画像サイズに適用される乗数を定義するIMAGE_OVERHEAD_FACTOR変数に追加されるスペースであることに注意することが重要です。これは、乗数が
デフォルトでは、ビルドプロセスはこの変数に 1.3 の乗数を使用します。このデフォルト値では、この方法を使用して最終的に生成されるイメージ・サイズを決定すると、イメージに 30% の空きディスク・スペースが追加されます。これは、インストール後のスクリプトの前に空きディスク容量の 30% がある必要があることを意味します。より多くのスペースが必要な場合は、この変数を次のように編集できます。
IMAGE_OVERHEAD_FACTOR = "1.5"
これにより、インストール後のスクリプトの前に、パッケージ管理システムから発生する可能性のあるオーバーヘッドを考慮せずに、イメージに 50% の空きディスク領域が追加されます。
IMAGE_ROOTFS_SIZEの計算方法
この変数もキロバイト単位で測定され、生成されたイメージに使用される初期ディスク容量、イメージに要求されたサイズ (オーバーヘッド係数)、およびイメージに追加される追加の空きスペース (追加のスペース変数を含む) を考慮するアルゴリズムを使用して、OpenEmbedded ビルドシステムによって決定されます。
ビルドシステムは、最初に du (ディスク使用量) コマンドを実行して、rootfs ディレクトリツリーのサイズを決定します。IMAGE_ROOTFS_SIZE現行値がディスク使用量にオーバーヘッド係数を掛けた値より大きい場合、余分なスペースのみが追加されます。IMAGE_ROOTFS_SIZEがディスク使用量にオーバーヘッド係数を掛けた値よりも小さい場合、ディスク使用量はオーバーヘッド係数を乗算してから、追加のスペースを追加します。
IMAGE_ROOTFS_SIZEはデフォルト値に設定する必要がありますが、これはイメージがベイクされるたびに初期化され、実際のサイズ要件で更新されるため、通常は非常に低い値です。
また、この変数を直接使用して、RootFS に割り当てるスペースを選択することもできます。たとえば、RootFS を 2GB に設定するには、local.conf ファイルに次の追加が必要です。
IMAGE_ROOTFS_SIZE = "2097152"
IMAGE_OVERHEAD_FACTOR = "1.0"
この例では、オーバーヘッド係数を 1 のままにして、必要な rootfs サイズを指定しているため、余分なスペースが追加されないようにします。
何が起こっているのか理解しましたか?tmp/deploy/images/
また、ブートローダーに不正なCRC環境エラーがあるようです。何らかの理由で、新しくイメージ化されたカードから初めて起動するときは、起動を中断し、"saveenv" (引用符なし) を入力してからリセットする必要があります。それで問題が解決するかもしれません。SDカードに新しい画像を書き込むたびに、それをやらなければなりません。
おそらく、Webページからコマンド「IMAGE_ROOTFS_SIZE = "2097152"」をコピーして貼り付けたところ、ダブルクォータ文字( " )が間違っています。 linux double quota "に置き換えると、Parse Errorが消えます。
最初の段落に基づいて、このドキュメントは、これらの変数のいずれかをconf/local.confに追加する必要があると言っているようです。
しかし、私が追加すると、
IMAGE_ROOTFS_SIZE = "2097152"
IMAGE_OVERHEAD_FACTOR = "1.0"
私のconf / local.confファイルに、bitbakeエラーが発生します。
エラー:/home/user/yocto/build/conf/local.conf:26のParseError:未解析の行:'IMAGE_ROOTFS_SIZE = "2097152"'
これは「WIC」形式を優先して段階的に廃止されますか?rocko リポジトリが .sdcard をビルドしないデフォルトではファイル。
WICファイル形式の同様の説明とその使用方法があるかどうか、どなたかご存知ですか?
あなたの解決策を共有していただけますか?感謝
製造ツールのスクリプトを変更すると、製造ツールでも複数のパーティションを作成できることがわかりました。ドキュメントは、製造ツールのダウンロードに含まれています。私は *.sdcard イメージを使用してデバイス上の eMMC をプログラムする予定でしたが、いずれにせよ、そのために製造ツールを使用する必要がありました。製造ツールのデフォルト設定では* .sdcardイメージさえ使用されていないため、この特定の問題を今は解決する必要はないと思います。
JTIの私も同じ疑問を持っています。私も全く同じことをやろうとしています。
こんにちは gusarambula、これはドキュメントに非常に重要で有用な情報が含まれています、次回はチュートリアルで私たちを説明できることを願っています、コマンド「dd」で i.MX SDに適用できるすべてのオプション。
頑張ってください
貴重なご意見ありがとうございました!
Bio_TICFSL、ようやくお話しすることができました。この文書についてコメントをいただけますか?
非常に優れたドキュメント、特にパーティション容量の拡張に関するトピックはFAQのようです。
とても良いドキュメントです!
素晴らしいドキュメントグスタボ。