1 概要

   当制作好根文件系统后,Linux启动正常挂在根目录,但是init程序不能运行,uboot中已经指定了init=/linuxrc,并且根文件系统中也存在/linuxrc,但是仍然报错。busybox是动态编译的。

Linux挂在根文件系统后init不能运行

2 问题分析

2.1 依赖库问题

  出现这个问题,最先想到的就是busybox不能执行,肯定是由于某种原因运行不起来。这里首先想到busybox是动态编译的,所以需要看一下依赖的库文件:

进入到busybox可执行文件所在目录,执行如下命令来查bosybox依赖的动态库

readelf -d busybox

Linux挂在根文件系统后init不能运行

然后将依赖的库文件拷贝到根文件系统的lib中。

2.2 添加依赖的库文件后仍然不能执行

包含动态库的应用程序,需要有加载器才能正常执行,而根文件系统中并没有加载器,执行如下命令,查看busybox应用需要的加载器。

 readelf -l  busybox

Linux挂在根文件系统后init不能运行

这样拷贝加载器到lib中,程序就能正常运行了。

3 总结

想要busybox正常运行,至少需要如下库文件:

Linux挂在根文件系统后init不能运行

 

相关文章:

  • 2022-12-23
  • 2021-12-02
  • 2021-06-24
  • 2022-02-01
  • 2021-05-18
猜你喜欢
  • 2021-11-17
  • 2022-01-19
  • 2022-12-23
  • 2021-04-05
  • 2022-12-23
  • 2021-07-09
  • 2022-01-15
相关资源
相似解决方案