2017-02-11 87 views
0

运行我有2个问题:Buildroot里面没有root身份运行,不希望以root

  • 我不知道(从Buildroot里面手册目录说明)undrestand:

    目标/含有几乎为目标完整的根文件系统:所需要的一切是除了设备文件存在于的/ dev /(Buildroot里面不运行作为根,不希望作为root运行)

为什么buildroot的需要root权限才能创建/ dev

  • 我知道那是什么buildroot的使用target产生images/rootfs.tar;是否使用tar或...进行简单压缩?你能帮我找到产生images/rootfs.tar的目标吗? 在使用NFS的情况下,为什么我们不能直接使用的target文件夹根文件系统是什么让“untaring” images/rootfs.tar不同于target

编号:http://free-electrons.com/~thomas/buildroot/manual/html/ch03.html

+1

(1)Buildroot是一个用于生成内核和根文件系统的工具,可以在普通用户的主机系统上执行,而不需要超级用户权限。 (2).tar是一个没有压缩的普通档案。您可以使用'make menuconfig'过程来配置/指定压缩(和/或文件系统映像)。您不要在'make' shell命令中指定它。 – sawdust

+0

@sawdust,感谢您的反馈,也许我的问题不是直截了当的。我需要知道的是为什么我们不能在buildroot手册中使用'target'作为rootfs,据说这是因为它不包含'dev',因为Buildroot没有以root身份运行,所以为什么它需要root特权来创建它 – Mouin

回答

0

我不知道该undrestand(从Buildroot里面手册中的目录说明):

Buildroot里面,用于生成内核和根文件系统的工具,是在主机系统上作为普通用户,而不需要执行的超级用户权限。


为什么buildroot的需要root权限才能创建/ dev

Buildroot里面不使用超级用户权限。


我知道那是什么buildroot的使用目标生成图像/ rootfs.tar;这是一个简单的taror压缩...?

.tar是一个没有压缩的普通压缩文件。
您可以使用make menuconfig过程来配置/指定压缩(和/或选择文件系统映像)。


请你帮我看看,生成图像/ rootfs.tar厂名目标是什么?

您不要在使 shell命令指定。
您可以使用make menuconfig程序,通过可选压缩(和/或选择文件系统映像)来配置/指定tar和/或cpio存档。


在使用NFS的情况下,为什么我们不能直接使用的目标文件夹为根文件系统

因为它是不适合作为屋顶。
文件所有者&组不正确(这可能与NFS使用无关)。
文件权限可能不正确(例如,busybox二进制文件的setuid)。
/dev目录没有目标内核需要的最小设备节点。

代替所需的最小设备节点(例如console)时,目标目录具有普通文件dev的

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图像)中。
仅在解压缩文件系统映像(或装入文件系统映像文件)时才会将“数据”正确解释为设备节点。

+0

再次感谢,我只想详细介绍一下:“Buildroot可以巧妙地为设备节点创建条目”:在我看来,它是创建设备节点的内核[link](http://unix.stackexchange.com/问题/ 241173 /如何-是-DEV-Linux的文件创建)。 “将正确的所有者和组分配给每个文件名”:能否请你解释一下脚本/ Makefile是由Buildroot完成的。 – Mouin

+0

如果你想详细说明,那就花更多的精力去阅读整个写的句子。你和那个链接指的是实际的设备节点。 Buildroot仅为设备节点构造** cpio **或** tar **归档项。您不能存档实际的设备节点;您只能存档有关节点的信息。更改所有者和组是归档程序的标准选项。 – sawdust

+0

顺便说一句,聪明的人不会写“*我想...”*的婴儿短语。 – sawdust