我不确定是否理解(来自 Buildroot 手册中的目录描述):
Buildroot 是一个用于生成内核和根文件系统的工具,它在您的主机系统上以普通用户身份执行,无需超级用户权限。
为什么 buildroot 需要 root 才能创建 /dev
Buildroot 不使用超级用户权限。
我所知道的是 buildroot 使用 target 来生成图像/rootfs.tar;是用 taror 进行简单的压缩吗...?
.tar 是没有压缩的普通存档。
您可以使用该过程配置/指定压缩(和/或选择文件系统映像)make menuconfig
。
你能帮我找到生成图像/rootfs.tar的make目标吗?
您没有在make shell 命令中指定它。
您可以使用该过程配置/指定带有可选压缩(和/或选择文件系统映像)的 tar 和/或 cpio 存档make menuconfig
。
如果使用 NFS 为什么我们不能直接使用目标文件夹作为 rootfs
因为它不适合作为屋顶。
文件所有者和组不正确(这可能与 NFS 使用无关)。
文件权限可能不正确(例如,busybox二进制文件的 setuid)。
/dev 目录没有目标内核所需的最小设备节点。
目标目录不是所需的最小设备节点(例如),而是在devconsole
中包含普通文件:
buildroot-2015.05/output/target$ ls -l dev
total 4
-rw--w--w- 1 me swdev 0 Sep 15 16:34 console
lrwxrwxrwx 1 me swdev 10 Aug 14 2015 log -> ../tmp/log
drwxrwxr-x 2 me swdev 4096 May 31 2015 pts
$
目标内核在需要设备节点时无法使用这些文件。将尝试使用这些文件进行普通文件传输,而不是通过设备节点执行 I/O。
实际的开发目录应该是:
crw--w--w- 1 root root 5, 1 Sep 15 16:34 console
lrwxrwxrwx 1 root root 10 Aug 14 2015 log -> ../tmp/log
drwxr-xr-x 2 root root 4096 May 31 2015 pts
是什么让“untaring”图像/rootfs.tar 与目标不同
Buildroot 可以巧妙地为设备节点创建条目,并在创建存档(或文件系统映像)时为每个文件名分配适当的所有者和组。
这只是以适当的格式生成二进制数据,并插入写入文件的实际存档条目(或 fs 映像)。
仅当未归档(或安装文件系统映像)时,“数据”才被正确解释为设备节点。