您的位置:首页 > 其它

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

2016-05-26 10:10 483 查看
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与内核的分区保持一致)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: