実行時にMTDパーティションのサイズを変更できますか?

実行時にMTDパーティションのサイズを変更できますか?

非常に具体的な要件があります。 Flashのコンテンツを部分的に置き換えることです。そしてMTDパーティション境界を移動します。

現在の地図は次のとおりです。

  • u-boot 0x000000 0x040000
  • u-boot-env 0x040000 0x010000
  • kernel 0x050000 0x230000
  • initrd 0x280000 0x170000
  • scripts 0x3f0000 0x010000
  • filesystem 0x400000 0xbf0000
  • firmware 0xff0000 0x010000

希望の出力は次のとおりです。

  • u-boot 0x000000 0x040000
  • u-boot-env 0x040000 0x010000
  • kernel 0x050000 0x230000
  • filesystem 0x280000 0xd70000
  • firmware 0xff0000 0x010000

これはinitrd、ある領域に縮小され、scriptsfilesystemの領域が残ることを意味します。

問題は、これが実行中のシステム(「以前の」構成で始まる)で達成される必要があることです。そして再起動する前に、カーネルと「新しい」ファイルシステムを再構築する必要があります。

システムが組み込まれていて、動作するスペースがほとんどありません(しかしSDカードはあります)。

もちろん、書き換えられたカーネルはDTBに「新しい」設定を記録します。

問題は転換である。

注:私は見たことがありますこの問題しかし、非常に古く、カーネルパッチが必要であるという欠点があります。私はこれを避けたいです。

ベストアンサー1

おすすめ記事