런타임에 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한 영역으로 축소 scripts되고 filesystem다른 영역은 남겨지는 것을 의미합니다.

문제는 이것이 실행 중인 시스템("이전" 구성으로 시작됨)에서 달성되어야 한다는 것입니다.그리고재부팅하기 전에 커널과 "새" 파일 시스템을 다시 작성해야 합니다.

시스템이 내장되어 있어서 작동할 공간이 거의 없습니다(하지만 SD 카드는 있습니다).

물론 다시 작성된 커널은 DTB에 "새로운" 구성을 기록하게 됩니다.

문제는 전환이다.

참고: 나는 본 적이 있다이 문제, 그러나 매우 오래되었고 커널 패치가 필요하다는 단점이 있습니다. 저는 이를 피하고 싶습니다.

관련 정보