2013-05-19 3 views
0

작성하려는 ubif 이미지 (예 : rootfs.ubifs)의 크기에 따라 새 볼륨을 만들 필요가 있습니다 (정적 일 수 있음). 그 볼륨에. 목표는 'rootfs.ubifs'를 해당 볼륨에 작성하고 볼륨에서 장치를 부트하는 데 필요한 최소 크기의 볼륨을 작성하는 것입니다.ubifs 이미지 크기의 크기에 따라 동적으로 볼륨 만들기

누군가가 도와 주실 수 있습니까?

답변

0

차이점은 overhead of the UBI layer입니다. 이것은

  • O 웹 페이지 O 또는 문서화 - 바이트 EC 및 VID 헤더 저장과 관련된 오버 헤드, 즉 O = SP - SL.

SP은 물리적 삭제 블록의 크기와 SLUbiFs 얻을 것이다 것입니다. 일반적으로 최소 페이지 크기 시간 2입니다. 하나는 EC이고 다른 하나는 VID입니다. 이들은 UBI이 플래시 관리에 사용하는 두 가지 구조입니다. 둘 다 ubi-media.h에 정의되어 있습니다. ECubi_ec_hdr 구조이며 VIDubi_vid_hdr 구조입니다. EC 또는 지움 횟수은 지우기 블록이 지워질 때마다 기록되며 마모 균등화는입니다. 참고VID 또는 볼륨 ID 헤더는 복수의 볼륨을 지원하고 PEB LEB 에 (물리적 소거 논리 블록에 대한) 관리를 제공 UBI 있습니다.

따라서 2k 페이지의 경우 NAND 서브 페이지가없는 플래시는 4k입니다. 하위 페이지가 지원되는 경우 두 페이지를 동일한 페이지에 넣을 수 있으며 2k 만 필요합니다. 플래시 페이지 크기가 다른 경우 하위 페이지가없는 경우 2를 곱하고 하위 페이지가있는 경우 페이지 오버 헤드 만 추가하면됩니다. 노브 플래시의 오버 헤드는 페이지의 아이디어가 없기 때문에 256 바이트입니다. 당신의 rootfs.ubifs을 생성하기 위해

, 당신은 (mkfs.ubifs로)를 로직 삭제 블록 크기를 지정해야합니다. 논리적 삭제 블록 (LEB)과 물리적 삭제 블록 (PEB)의 차이점은 위의 문서화 된 오버 헤드에 불과합니다. rootfs.ubifsPEB/LEB을 곱하면 UBI 볼륨의 최소 크기를 얻을 수 있습니다.

참고 소거가 중단 경우 실제 소거 및 EC 기록,가 소거 카운트를 설정하는 데 사용되는 다른 모든 소거 블록의 평균 사이 (/ 파워 사이클을 초기화)시 UBIubi 장치을 읽습니다.