jffs2根文件系统制作(三)

    技术2022-05-19  29

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

    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 directorycan't open /dev/tty3: No such file or directorycan'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这个设备文件


    最新回复(0)