如何在linux中增加/ dev / mtd *的数量

时间:2015-02-20 23:06:32

标签: linux linux-kernel kernel

在我的linux / dev /文件夹中,我有mtd0 - mtd7和mtdblock0 - mtdblock7。我想在这里有更多的mtd设备。构建内核时应该更改什么?

由于

1 个答案:

答案 0 :(得分:3)

您需要更多mtd分区。在启动时,内核为每个创建一个mtd和一个/ dev下的mtdblock。 MTD分区通常写在电路板的BSP文件中。您可以通过传递内核mtdparts选项来覆盖它。

更多信息here。 mtdinfo和/proc/mtd也描述了每个分区的起始端及其名称。

修改: 对于beagleboard here,mtd分区表的示例位于arch/arm/mach-omap2/board-omap3beagle.c

static struct mtd_partition omap3beagle_nand_partitions[] = {
/* All the partition sizes are listed in terms of NAND block size */
{
    .name       = "X-Loader",
    .offset     = 0,
    .size       = 4 * NAND_BLOCK_SIZE,
    .mask_flags = MTD_WRITEABLE,    /* force read-only */
},
{
    .name       = "U-Boot",
    .offset     = MTDPART_OFS_APPEND,   /* Offset = 0x80000 */
    .size       = 15 * NAND_BLOCK_SIZE,
    .mask_flags = MTD_WRITEABLE,    /* force read-only */
},
{
    .name       = "U-Boot Env",
    .offset     = MTDPART_OFS_APPEND,   /* Offset = 0x260000 */
    .size       = 1 * NAND_BLOCK_SIZE,
},
{
    .name       = "Kernel",
    .offset     = MTDPART_OFS_APPEND,   /* Offset = 0x280000 */
    .size       = 32 * NAND_BLOCK_SIZE,
},
{
    .name       = "File System",
    .offset     = MTDPART_OFS_APPEND,   /* Offset = 0x680000 */
    .size       = MTDPART_SIZ_FULL,
},

};

在mernel映像中有5个分区mtd0到mtd4,其大小是硬编码的。