飞凌ok6410开发板烧写yaffs2以后无法修改rcS的解决办法

在飞凌论坛看到有人提问恰巧自己刚好解决掉。就贴这里备忘一下。

Q:
我现在用的文件系统是yaffs2,是按照2.6.36说明书更改的,
1,直接修该/etc/init.d/rcS文件,重启后修改不成功,和以前一样,文件没有发生变化。
2,修改/mnt/etc/init.d/rcS文件,重启后,两个目录下的rcS文件都修改成功,像是把这个文件复制到/etc/init.d/rcS一样,但是并没有按照修改的执行,启动结果和以前一样,不知道为什么?

A:
我的分析是 YAFFS2文件系统里面的 /etc/init.d/rcS 里面有如下命令:
/bin/mount -n -t ramfs ramfs /etc
/bin/cp -a /mnt/etc/* /etc
第一句是将ramfs文件系统挂载到/etc上,这个是内存文件系统重启就没了。所以在启动以后你在/etc/看到的内容其实是第二句从/mnt/etc复制过来的。
因此就有了楼主的现象,修改/etc/init.d/rcS的文件以后重启却仍然启动qtopia,而修改了/mnt/etc/init.d/rcS的文件以后,发现/etc中的一样修改了,但是qtopia还是执行。其实yaffs2文件系统中的那个/etc 是被其/etc/init.d/rcS 替换成ramfs了。

解决办法:
在linux启动完成以后,在shell下面先umount /etc 然后你就会发现此时的/etc/init.d/rcS才是真正起作用的rcS。修改这个rcS不让它挂载ramfs到/etc,然后注释最后的qtopia启动命令。这样重启以后就完全生效了。

你可能感兴趣的:(修改,rcS,OK6410,yaffs2)