busybox build 没有生成完整的 rootfs

busybox build does not generate the complete rootfs

我正在尝试创建一个可用于 Beaglebone Black 的 rootfs。

我一直在按照此处的说明进行操作:https://krinkinmu.github.io/2020/07/05/beaglebone-software-update.html 用于“根文件系统”。

我已尝试按照以下说明进行操作(为简单起见,省略了更改安装目录的步骤):

git clone git://git.busybox.net/busybox.git
cd busybox/
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make defconfig
make -j 8
make install

问题是输出文件夹 ./_install 仅包含:

~/bbb/rfs_busybox$ ls -l _install/
total 12
drwxr-xr-x 2 user user 4096 Apr  1 18:28 bin
lrwxrwxrwx 1 user user   11 Apr  1 18:28 linuxrc -> bin/busybox
drwxr-xr-x 2 user user 4096 Apr  1 18:28 sbin
drwxr-xr-x 4 user user 4096 Apr  1 18:28 usr

没有 /etc/ 文件夹或我通常期望的所有其他文件夹。

我使用的分支是 origin/1_32_stable 但我首先尝试了 master 分支 - 到目前为止运气不好。

所以我不明白我在这里做错了什么...方法很简单,所以我很困惑...

So I don't understand what I am doing wrong here

您认为 Busybox 可以生成完整的 rootfs 的假设是完全错误的。 Busybox 的目的只是 “将许多常见 UNIX 实用程序的微小版本组合成一个小的可执行文件......考虑到 size-optimization 和有限的资源”.
事实上 Busybox 'About' page 明确提到 " 要创建一个工作系统,只需在 /dev 中添加一些设备节点,在 [=24] 中添加一些配置文件=]/etc,和一个 Linux 内核。此评论似乎假设静态构建不需要 /lib 目录中的任何 (dynamic/shared) 库。

您可以使用构建工具,例如 Buildroot(注意此名称的动词+宾语结构)或 Yocto,它可以构建工具链、引导程序、Linux 内核和一个各种用户空间程序和库来填充一个完整的(或最小的)rootfs。

I have been following the instructions here: https://krinkinmu.github.io/2020/07/05/beaglebone-software-update.html for "Root file system".

显然,这些说明对于构建 rootfs 是不完整的,正如您从另一篇指南中了解到的那样。

请注意,这些指令用于“网络引导”,即引导程序(MLO 和 U-Boot)是从本地存储 (eMMC) 中检索的,但是 Linux 内核和根文件系统是 network-based(使用 TFTP 检索内核,rootfs 使用 NFS)。
您忽略了澄清或指定您希望此 rootfs 驻留的位置。请注意,Buildroot 可以轻松配置为专门为预期介质生成 rootfs 映像(或存档)。
如果你的主板有足够的内存并且 rootfs 不是太大,那么 rootfs 的一种方便形式是 memory-resident,即 initramfs(不要与 ramdisk 混淆)。 Buildroot 能够轻松构建 initramfs;看 how to rebuild rootfs in buildroot