在内核中修改MTD分区

    xiaoxiao2025-01-08  13

    1、先解释一下什么是MTD

    Memory Technology Device,内存技术设备,如nand flash

    2、为什么要修改MTD分区

    用于存放不同大小的文件(如u-boot,params,uImage,root filesystem)

    3、怎么知道在哪里修改分区

     (1)看u-boot启动后出现的分区信息

    (2)在内核中查找分区名字,如“Boot Agent”,查看代码所在的地方,其中反斜杠\是转移的意思,只用双引号的本来含义,用空格的本来含义,按利用应该是mach-smdkxx.c,和下面的是并列的关系,而conmon-smdk.c是通用的意思。

    4、如何修改MTD分区

    在linux内核中的arch/arm/mach-s3c24xx/common-smdk.c中修改

    static struct mtd_partition smdk_default_nand_part[] = {}结构体数组里的内容替换成

    static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = "bootloader", .size = SZ_256K, .offset = 0, },

    // MTDPART_OFS_APPEND表示分区开始的偏移地址紧接着上一个分区 [1] = { .name = "params", .offset = MTDPART_OFS_APPEND, .size = SZ_128K, }, [2] = { .name = "kernel", .offset = MTDPART_OFS_APPEND, .size = SZ_4M, },

    //MTDPART_SIZ_FULL表示取剩余下的容量 [3] = { .name = "rootfs", .offset = MTDPART_OFS_APPEND, .size = MTDPART_SIZ_FULL, } };

    转载请注明原文地址: https://ju.6miu.com/read-1295256.html
    最新回复(0)