パーティションを4つに分け、boot用領域、Hermit用領域、Kernel+Userland領域の他に、192kBのデータ保存領域を作成する例を基に、パーティションの割当変更方保を説明します。
1. uClinux-distディレクトリに移動
2. linux-2.4.x/drivers/mtd/maps/armadilloj.c を編集してパーティションの数を決める
記述例
struct mtd_partition armadilloj_partitions[] = { { .name = "Flash/Reserved", .size = RESERVED_SIZE, .offset = 0, .mask_flags = MTD_WRITEABLE, /<em> force read-only </em>/ }, { .name = "Flash/Hermit", .size = HERMIT_SIZE, .offset = MTDPART_OFS_APPEND, .mask_flags = MTD_WRITEABLE, /<em> force read-only </em>/ }, { .name = "Flash/KernelUser", .size = SYSTEM_SIZE, .offset = MTDPART_OFS_APPEND, }, { .name = "Flash/DataArea", .size = DATAAREA_SIZE, .offset = MTDPART_OFS_APPEND, }, }
※ "Flash/Reserved"と"Flash/Hermit"はブートのために必ず必要です
3. kernel-2.4.x/include/asm-armnommu/arch-netarm/hardware.h を編集して各パーティションのサイズを決める
記述例
#define RESERVED_START (FLASH_START) #define RESERVED_SIZE (0x00020000)<br> #define HERMIT_START (RESERVED_START + RESERVED_SIZE) #define HERMIT_SIZE (0x00020000)<br> #define SYSTEM_START (HERMIT_START + HERMIT_SIZE) #define SYSTEM_SIZE (0x00190000)<br> #define CONFIG_START (SYSTEM_START + SYSTEM_SIZE) #define CONFIG_SIZE (0x00030000)
※ RESERVED_SIZE と HERMIT_SIZE は変更できません。また、各サイズの合計が2MBになるように計算して割り当てを行って下さい。
4. makeコマンドを入力してイメージの作成を行う
以上で、Flashのパーティション割り当てを変更したイメージが作成できます。 各パーティションは上から順に、
/dev/mtdblock0
/dev/mtdblock1
/dev/mtdblock2
/dev/mtdblock3
のデバイスノードに相当します。
(char型デバイスとしてアクセスする場合は /dev/mtd0, /dev/mtd1, /dev/mtd2, /dev/mtd3)
デバイスノードの作成方法はデバイスノードの作成方法を参照して下さい