在移植linux kernel时遇到分区问题。有一点想法,不一定正确,错误请大家指出。
这里基于linux2.6.28.6来说的,其他的位置有可能不同。
linux对flash的分区在结构体struct mtd_partition 中,在里面可以设定分区。增加,删除,修改。
分区的大小可由自己的存放文件(uboot、kernel、文件系统等)设定。
这里的分区对应着块设备/dev/mtdblock0,1,2,3等(与字符设备/dev/mtd0,1,2,3,对应),这里的分区也与uboot引导的位置有一定的对应关系。
当挂载文件系统时,一般情况下就是挂在对应mtdblock里,可以mtdblock挂到一个目录下,如/mnt/fs(没有就要创建),
mount -t yaffs /dev/mtdblock2(或者其他分区,一般不用0,1,因为他们一般对应了uboot和kernel) /mnt/fs
把文件系统的文件放入/mnt/fs里,这个方式有很多,可以使nfs网络文件系统,也可以用其他文件系统,然后把想装的文件系统在解压到这个目录下。(其实还可以在uboot直接下载文件系统到指定地址,就不需要挂载目录什么的,但之前实验,usb下载传输大文件,下到一半就不动了,有待研究)。