jffs2根文件系统制作(三)

在此列出在制作根文件系统时遇到的问题和解决方法,还有一些来自网上的问题和相应的解决方法

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这个设备文件

你可能感兴趣的:(shell,File,Flash,action,login,终端)