移值linux3.4.2内核之修改分区
Posted 勇士后卫头盔哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移值linux3.4.2内核之修改分区相关的知识,希望对你有一定的参考价值。
前言
内核启动后的打印信息如下所示
看到内核中有8个分区,但是我们的uboot只有4个分区
修改内核分区
我们搜索"Boot Agent"字段,可以发现在以上文件出现过,我们可以断定应该是要修改common-smdk.c文件,因为它是一个比较通用的文件,我们进去查看该文件,可以看到里面有个数组smdk_default_nand_part[],内容如下所示:
所以我们必须修改该数组,修改为和我们uboot对应分区一致的分区布局
上面部分宏的定义,如下所示:
MTDPART_OFS_RETAIN: 填在offset里,表示先后保留多少size空间大小
MTDPART_OFS_NXTBLK: 填在offset里,表示从下一个块开始
MTDPART_OFS_APPEND: 填在offset里,表示该分区位置附加在上个分区结束的地址上
MTDPART_SIZ_FULL: 填在size里,表示剩下的内存size都归于该分区
编译完成后,开发板重新启动,发现下新的分区信息已经出现
烧写yaffs2文件系统
下载yaffs2文件系统到内存地址上,然后擦除nand的rootfs分区,将文件系统first_fs.yaffs写入该分区
OpenJTAG> nfs 30000000 172.16.245.101:/work/nfs_root/first_fs.yaffs2
OpenJTAG> nand erase.part rootfs
OpenJTAG> nand write.yaffs 30000000 260000 889bc0
设置启动参数,从nand的rootfs分区挂载根文件系统,然后启动内核
OpenJTAG> set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=yaffs2
OpenJTAG> nfs 32000000 192.168.1.30:/work/nfs_root/uImage_new
OpenJTAG> bootm 32000000
启动后发现现在的内核并不支持yaffs格式的文件系统
烧写jaffs2文件系统
在我们生成的.config文件中可以找到该内核是支持jaffs2文件系统的
下载文件系统
OpenJTAG> nfs 30000000 172.16.245.101:/work/nfs_root/first_fs.jffs2
OpenJTAG> nand erase.part rootfs
OpenJTAG> nand write.jffs2 30000000 260000 $filesize
OpenJTAG> set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2
启动成功
修改内核支持yaffs2文件系统
以上是关于移值linux3.4.2内核之修改分区的主要内容,如果未能解决你的问题,请参考以下文章