Linux内核移植笔记 | 02 - 移植Linux 3.4.2 内核到JZ2440(修改内核中的mtd分区)

248 阅读1分钟

1. 问题

在上一节Linux系统启动之后,打印出的分区表如图:

和实际对nand flash的分区表不一致,实际上在uboot移植教程(08 - 移植uboot 2012.04到JZ2440(设置mtd分区表))中,对内核的mtd分区情况如下:

0x00000000-0x00040000 : "bootloader"
0x00040000-0x00060000 : "params"
0x00060000-0x00260000 : "kernel"
0x00260000-0x10000000 : "root"

接下来修改内核中的mtd分区表。

2. 修改内核中的mtd分区表

2.1. 定位修改代码位置


判断在arch/arm/mach-s3c24xx/common-smdk.c:113:处,进入该文件,果然分区表在这里:

2.2. 修改内核分区表

修改为如下的分区表,其中三个宏定义的意思如下:

  • MTDPART_OFS_APPEND:追加到上一个分区结束地址;
  • MTDPART_SIZ_FULL:剩下的所有空间;

重新编译,下载到开发板的内存中,然后启动内核,可以看到分区表已经被修改成功:

接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』