jffs2文件系统在nand flash上的移植(实验平台为MPC8315ERDB开发
刚解决这个问题,很激动 Nor Flash和32M的Nand Flash,其他配置也很丰富,2块千兆网卡,一块160G三星硬盘,还有很多接口什 么的,不过跟本文无关,还是废话少说。 文章《freescale LTIB使用总结》,出处http://blog.chinaunix.net/u2/80953/showart.php,首先需要说明的是前面那个User_Manual_...中的Flash代表的是Nor flash,这点尤为重要?id=1275002,后面讲原因。 image builder,个人理解),手册里说挂载一个ltib.iso镜像,不过在我这里直接是从dvd盘拷过来的, 也就没有这个挂载操作了,拷过来之后需要安装,很奇怪的是安装必须在非root用户下,不过还得修改 这个非root用户的权限,想不通为什么,直接看操作吧,在root用户下执行#/usr/sbin/visudo这样就打 开一个权限设置文件,然后按i进去插入模式,在最后面输入 tanlingyun ALL =?NOPASSWD:/bin/rpm,/opt/freescale/ltib/usr/bin/rpm。用你自己的用户名替代tanlingyun,然后按 ESC,按:wq保存退出,然后创建一个安装ltib的根目录,mkdir -m 777 /usr/local/mpc8315,777代表 所以组和用户都具有完全的权限,如果你是直接用root登陆的那么此时注销用你刚才那个用户名登陆, 如果你是通过su得到root权限的,那么此时在终端下执行exit退回到普通权限,然后cd /usr/local/mpc8315,然后<ltib_path>/install,出来一个Do you want to continue?Y|n,这里选Y, 等下出来I have read and accept the EULA(yes|no),这里输入yes,可不是y了,这样就会将ltib安装 在/usr/local/mpc8315下,我这里安装后的文件名是ltib-mpc8315erdb-20080630,然后cd进去这个目录 ,可以用./ltib --help,看一下帮助,如果直接./ltib的话就是用的默认的配置文件,这里因为要编译 出jffs2文件系统,所以必须./ltib -c或者./ltib --configure,出来一个让你选platform的界面,这 里默认就是对的,直接exit,选yes保存,然后出来的是LTIB:Freescale MPC8315E RDB PowerPC board ,首先找到Target Image Generation,点击options进入,将target image改成jffs2,默认是ext2.gz ramdisk,然后本文最最重要的一点,将jffs2 erase block size in KB(NEW)的默认64改成16,不改的 话无论你后面怎么做,最后启动的时候,总是说jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at ******,一大堆的错误,这就是我前面为什么说要注意用户手册里说的flash是nor flash的原 因,因为nor flash用的是64,我看手册里说JFFS2 filesystem support both NOR and NAND flash memory,还真的以为什么都不用改了,试验了很多次总是失败,后来觉悟到了,本来准备自己先试试32 然后再16再不行就128的,结果在NAND-MPC8315ERDB.html最下面看到 己配置内核的话,可以选中Configure the kernel,这样待会过后就会有配置界面出来,其实是还需要 为支持nand配置内核的,结果我打开一看,默认就全配好了,也懒得管其他了,因为我就是做这个实验 ,之前文件系统一直是在ramdisk中跑的,一开机啥都没了,很不爽才做这个的,继续,然后exit,选择 yes保存,就开始编译了,这个需要十几分钟的时间,视你机器配置而定,编译完了之后rootfs.jffs2就在当前目录下,将他拷到tftpboot,这里得配tftp,看文章最后,对了我是用的red hat 9.0,忘了说了,不过应该在linux下都差不多的。 key to stop autoboot的提示后,随便按个键就进到uboot的命令行下了,然后开始Configure Uboot For flash deployment,你可以printenv看看你当前的配置,不清楚命令的话可以直接键入?看说明 文件系统在nand中的分区位置)? 给nand分区,我不知道默认分了没,我反正安装手册上说的分了一遍 (Reserved-NAND),2M(Kernel-NAND),-(DTB-NAND) =>saveenv(也保存一下) 地址,也可以写其他的,只要不越界就行) 的,再也不用担心重启板子后又没了,之前是因为nor flash实在是太小,才8M,而nand flash又没放成 功,不得已才把文件系统做成ramdisk的,每次改点配置什么的都不会保存,痛苦的要死,现在终于解决 了,其实问题也很简单,就是一定要细心。我这里面都没讲内核和dtb怎么移植,这个都是放在nor flash中,手册上讲的很详细,也不会出什么问题,不啰嗦了。 插上网线 然后/etc/init.d/xinetd restart 重启tftp服务。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |