jz2440不能成功地启动文件系统, Failed to execute /linuxrc.
文件系统加载失败,错误信息提示:
VFS: Mounted root (nfs filesystem).
Freeing init memory: 140K
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
1. jz2440不能成功地从nfs启动文件系统.
芯片的型号:K9F2G08U0C
芯片大小:256M Byte记忆单元阵列:(256M + 8,192K)bit x 8bit
2048 blocks * 64 pages/block * 2048 bytes/page = [256M Bytes]
这个芯片的写操作是以页为单位的,擦除是以块为单位的.
擦出页面的起始地址以及偏移量应该是2048*64的整数倍.
原因:
不能执行linuxrc,是因为在创建lib下的动态库时,里面只有软连接,没有软连接实体
解决办法:
把软连接的对应的实体拷到lib下
2. jz2440不能成功地从nandflash启动文件系统.
原因:烧写yaffs的时候用错了指令, 烧写yaffs的时候应该用
nand write.yaffs 30000000 260000 474900
ram_addr nand_offset file_size
file_size必须等于刚好传送的文件大小.
附制作和烧写yaffs过程:
mkyaffs2image /home/jz2440/nfs_root/fs_ocean /home/jz2440/nfs_root/fs_ocean.yaffs2
tftp 30000000 fs_ocean.yaffs2;
nand erase root;
nand write.yaffs 30000000 260000 474900; //这里474900一定是tftp传输实际的文件字节大小, 这是烧写yaffs文件必须的格式.