パーティションを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)
デバイスノードの作成方法はデバイスノードの作成方法を参照して下さい