在此列出在制作根文件系统时遇到的问题和解决方法,还有一些来自网上的问题和相应的解决方法
1、
Warning: unable to open an initial console. 到这里停止,不能进控制台,修改如下:
[root@qljt1 jffs2]# cd /jffs2/rootfs/dev/
[root@qljt1 dev]# mknod -m 660 console c 5 1
[root@qljt1 dev]# mknod -m 660 null c 3 0
[root@qljt1 dev]# cd /jffs2
重新生成 rootfs.jffs2 下载运行。
2、
启动后,总是出现如下提示
can't open /dev/tty2: No such file or directory
can't open /dev/tty3: No such file or directory
can't open /dev/tty4: No such file or directory
在源码路径下 grep "can't open" * -r
最后发现在init/init.c文件中有问题
经过分析,原因在于如下3句,
694 new_init_action(ASKFIRST,bb_default_login_shell,VC_2);
695 new_init_action(ASKFIRST,bb_default_login_shell,VC_3);
696 new_init_action(ASKFIRST,bb_default_login_shell,VC_4);
这三句会启动三个虚拟终端,可是在我的板上没这个必要,所以注释掉,重新编译,制作文件系统
这样问题就解决了
3、
在编译busybox时报错
修改networking/interface.c 818行改为 .type = -1
这样编译就能通过
4、
mkfs.jffs2 -n -s 2048 -e 128KiB --pad=0x800000 -d root_fs -o kevin.jffs2
参数注释:
-s 页大小,试验可以不特别要求,512亦可
-e 擦除块大小,需和手册相匹配,此处为128(由手册可知),1 Block = (2K + 64)B + 64 Pages
= (128K + 4K)bytes
此处如果设置过大(如 256),将出现jffs2_scan_eraseblock():Magic bitmask......问题
如果设置过小(如 64),将出现Empth flash at .......问题
--pad 设置生成文件大小,其实此处也不算是设置,因为此选项是填充的意思,当生成文件比参数规定大小大时,
此选项不起作用只有当生成文件小于规定大小才会进行填充,如果生成的文件大小不规范,很可能将内存
脏数据填充到文件系统剩余页部分,如果将脏数据写入,将会产生上述标题上两种问题........
5、
运行文件系统后一直出现can't open /dev/tty2: No such file or directory
将etc下的inittab文件中tty2::askfirst:-bin/sh这行删去,因为我的dev目录下没有tty2这个设备文件