主题 : 关于自制根文件的总结 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 6350
精华: 2
发帖: 110
金钱: 895 两
威望: 486 点
贡献值: 2 点
综合积分: 260 分
注册时间: 2009-05-29
最后登录: 2016-10-11
楼主  发表于: 2010-08-03 21:35

 关于自制根文件的总结

前两天想要自制根文件系统,遇到了个很无语的问题,总是ATTEMPTED TO KILL INIT。
busybox静态编译的话是没有问题,但是动态编译就出问题了,我把所需要的库文件都复制到/lib下了,依旧不行,而且无论是编译器的lib还是root_qtopia中的lib都不行,很是恼火。
于是我就改用别人的现成根文件,从code.google.com/p/mini2440 下载了Angstrom的压缩包的,用里面的文件制作文件镜像,还是不行,又是ATTEMPTED TO KILL INIT,我不甘心,又下载了Angstrom的EXT3文件镜像,用DD刷入MMC卡,这下子没有那个错误了,但是又变成另一个错误了,INITTAB出问题了。我仔细分析了一下这个文件,看了下MAN,恍然大悟,原来INIT不应该指定为LINUXRC,BUSYBOX无法正确处理INITTAB,于是去掉启动参数中的init=/linuxrc,再启动,啊哈!成功进入系统。
这是我就奇怪了,按理说压缩包和镜像中的文应该一样啊,难道是制作者失误了?于是花了老长时间来确认哪个文件出了问题。最后终于被我找到,ld-linux.2.8.so和libc-2.8.so的问题,只要拿镜像中正常的文件将其替换了,就可以正常启动了。
但是,我又想,难道真的是压缩包里的文件不对?于是我用tar命令解压它,而不是用gui的解压工具,一试,还真就能用,看来压缩包里面的文件也是没有问题,幕后黑手终于显露出来:ARK,一个GUI的归档管理器,我一直是用它来解压缩,用它解压造成了文件不正常并使得系统无法启动!!!
我突然想到,我所有的压缩包都是用它解压的,上至编译器,下至根文件的压缩包,那么所有的这些lib统统都是不正确的,原因终于搞明白了,我重新解压了编译器,再替换了根文件中的lib,困扰了我好几天的问题终于解决!
ark的问题,貌似最忠诚的朋友居然把我出卖,我还满世界地找原因,哎~~~!无语了。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2010-08-03 22:17
多谢分享,不过大部分情形只有你懂得。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.