在基于 Busybox 的嵌入式 Linux 发行版中没有 /proc

Sha*_*jee 4 linux startup busybox proc

我正在制作一个嵌入式 Linux 发行版,我的开发板是 Raspberry Pi。我的内核版本是 3.2.27,没有 initramfs 和我的根文件系统如下:

/lib                          /* contains kernel modules */
/bin /sbin /usr/bin /usr/sbin /* contains busybox utils binaries */
/usr/lib                      /* contains cross-compiler tool chain libs */
linuxrc                       /* generated by busybox, kept in / */
/dev                          /* I have created console and ttyAM0 manually but added mode devices by udev */
/etc/init.d/rcS               /* required by busybox init */
Run Code Online (Sandbox Code Playgroud)

内核启动后,我得到了一个控制台(我不知道它是否是 busybox 控制台)。我在下面有几个问题

  • 没有可用的进程信息(没有在 下创建文件/文件夹/proc)。
  • 当我使用ps -e它时,它什么也没显示。

为什么会发生这种意外行为?

Sté*_*las 7

在初始化和挂载根文件系统后,Linux 开始/sbin/init进行用户空间初始化,包括挂载/proc

很可能您rcS或任何配置init读取的内容都没有这样做,您需要告诉它。

如果您有 shell 提示,您可以/proc使用以下命令手动挂载:

mount -t proc p /proc
Run Code Online (Sandbox Code Playgroud)

请注意,该/proc目录必须存在,然后才能在那里安装某些东西。您应该将它包含在您的根映像中。