文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux的根文件系统的制作下

linux的根文件系统的制作下

时间:2010-09-28  来源:fsfilove

前些时间,我做了yaffs2的移植笔记。但是里面还是有好多的问题,虽然我们就cramfs的文件系统是可以正确使用的。然而我们在yaffs2的时候,我们也可以挂载,但出现下边的问题。

第一类情况:

Freeing init memory: 124K
Warning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.

实验证明,这里的错误主要源于对yaffs2的分区不明白,其用528个字节进行存储,所以只能按照528来。还有就是必须用nand write.yaffs2 来写文件系统才可以。

第二类情况:

VFS: Mounted root (yaffs filesystem) readonly on device 31:3
mtd: partition "root" doesn't end on an erase block -- force read-only

2010年9月我终于解决了yaffs2文件系统的问题,也就是关于文件系统是只读的问题。这个问题源于我对NAND的不了解。我们这里是128M的nand,那么我们按照规定我们就必须使用128k的整数倍分配存储空间才可以。即在内核中需要按照0x20000来分配才行。不然会出错误上边的错误。


第三类情况:

cannot run '-/bin/sh': No such file or director

而且还在超级终端上不停的输出找不到tty2、tty3、tty4.

这种情况则在建立文件系统时,在/dev目录下建立几个节点。

[root@localhost dev]# mknod -m 660 tty2 c 1 3
[root@localhost dev]# mknod -m 660 tty3 c 1 3
[root@localhost dev]# mknod -m 660 tty4 c 1 3

还有就是要正确烧写文件系统,不要弄错位置了


好了,总结一下,很多问题都是我们对nand的原理不了解,才使我们移植文件系统那么难,网络上其实移植的方式到处都是。正因为我们不了解怎么对nand分区,所以我们在内核分区时,都是按照网上的资料来的,但是很多需要验证。在这里我们需要了解nand原理。那样我们才知道怎么去分配空间。


下面我给我的内核分配:

[0] = {
.name = "Boot",
.offset = 0,
.size = 0x00060000,

},
[1] = {
.name = "param",
.offset = 0x00060000,
.size = 0x00020000,
},
[2] = {
.name = "kernel",
.offset = 0x00080000,
.size = 0x00200000,
},
[3] = {
.name = "root",
.offset = 0x00280000,
.size = 0x042c0000,
}

上面的分配都是可以被0x20000整除的。


好了,如果还有上面错误希望大家指正。


对了,还要在这里提醒一下。关于制作文件系统的工具,千万不要弄错了哦。有些虽然是yaffs2的,但是太老了,也许你制作的文件系统,在新内核上没法用。如果真找不到,你支一声,我可以给你发一个。







相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载