FATAL: kernel too old

来源:互联网 发布:网络借钱最快的有哪些 编辑:程序博客网 时间:2024/05/17 02:51

 

 小弟最近在弄文件系统,动态编译BusyBox后,按照网友说的方法在_install目录下建立了必须的文件夹,etc目录下建立了必须的文件后,内核通过NFS挂载新做的文件系统,提示

 

VFS: Mounted root (xxxx filesystem).
Freeing init memory: 104K
FATAL: kernel too old
Kernel panic – not syncing: Attempted to kill init!

 

 

如图:  

   可以看出根文件系统已经挂载成功,但是报错说内核版本太老。

这个错误是根文件系统的程序报的错,不是内核报的错。
我猜他想说FUCK: kernel too old !

   这是因为有些交叉编译器在制作时限制了使用的最低内核版本,不要比这个版本低就可以了。
比如配置glibc时使用–enable-kernel参数指定版本2.6.28,那么做出的文件系统一定不适合2.6.27或更低版本的。
如果想确认文件系统要求的最低内核,可以使用file命令查看libc-*.so文件,例如:
$ 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

 

 

上面的提示意味着使用这个库的文件系统只能供2.6.28和以上版本的内核使用

 

 非常感谢网友的这篇文章,http://www.powerpcdev.net/blog/index.php/archives/39.html,有了他的帮助,我才弄明白我遇到的问题,解决方法就是降低交叉编译版本,或者提高内核版本。