制作根文件系统时的几个小问题

Freeing init memory: 140K

    1、内核 与 文件系统 编译器版本不一致
    2、在用4.4.3的编译器编译2.6.22内核时,内核配置没选EABI
    3、在用3.4版本编译器编译2.6.22内核时,内核选EABI会报错。
    4、浮点计算问题,暂时没遇到。(文件系统lib 对浮点有要求)

        检查一下内核有没有开启浮点模拟,估计你的文件系统是需要浮点的,摘出其中的一个动态库,比如/lib/libc-2.8.so,然后在PC机上这样检查:

        arm-linux-readelf -h libc-2.8.so

        在输出的Flags中如果有Software FP或者其它浮点相关的FLAG
        内核提供了两种浮点模拟,一种是FPE,一种是VFP,和你的根文件系统不匹配也是不行的。

 


Failed to execute /linuxrc.  Attempting defaults...

    错误的原因,应该是 文件系统 没烧成功、或者没烧对地方

    1、修改内核的分区与Uboot的分区一致
    2、擦除整个root分区


FATAL_ kernel too old
    1、文件系统里的lib库文件版本对内核有要求
    $ file libc-2.11.2.so
    libc-2.11.2.so: ELF 32-bit LSB shared object, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.6.28, stripped


综上:
    1、编译内核与文件系统 使用同一个编译器,文件系统的Lib库使用 该编译器的。
    2、内核版本要高于Lib库文件对于内核版本的最低限制
    3、Lib库的浮点要求要和内核保持一致。(暂时没遇到)
    4、/dev/console 与 /dev/null 这两个节点必须有
    5、mkyaffs2image 注意工具是 大页 还是小页Flash的,最好sudo mkyaffs2image ... ...
    6、烧写到nand flash使用nand write.yaffs.事先擦除整个root分区。(最好Uboot与内核的分区保持一致)

    

你可能感兴趣的:(TO,kernel,memory,failed,文件系统,init,ol,li,execute,too,freeing,FATAL_)