从Yocto生成的图像中完全删除busybox

时间:2018-02-16 15:57:58

标签: yocto syslog busybox

我试图在没有busybox且没有任何busybox的情况下构建一个yocto图像 applet已部署。

我试过用这种方式配置我的distro.conf文件:

DISTRO_FEATURES_remove = " busybox"
VIRTUAL-RUNTIME_base-utils = ""
PREFERRED_PROVIDER_virtual/base-utils = ""

尽管如此,busybox二进制文件和两个相关的applet(syslog和udhcpc)都是 安装在生成的图像中:

$ rpm -qa | grep busybox
busybox-syslog-1.24.1-r0.corei7_64
busybox-1.24.1-r0.corei7_64
busybox-udhcpc-1.24.1-r0.corei7_64

我已经尝试禁用附加到我的distro.conf文件的syslog applet:

VIRTUAL-RUNTIME_syslog ?= ""

但仍安装了syslogd applet:

# ls -l /sbin/syslogd
lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> /bin/busybox.nosuid

有没有办法从生成的图片中完全删除busybox?

2 个答案:

答案 0 :(得分:1)

你需要拆分packagegroup-core-boot:

  1. 复制一份;
  2. 从中删除busybox;
  3. 让您的图片继承而不是原始图片。

答案 1 :(得分:0)

最后,我找到了正确答案。完全禁用busybox的技巧是在distro.conf文件中定义这些变量:

VIRTUAL-RUNTIME_base-utils = ""
VIRTUAL-RUNTIME_login_manager = "shadow"

只有在自定义映像中安装“packagegroup-core-boot”时才需要上一个变量(login_manager),例如在我的情况下。

所以,这个问题已经解决了。非常感谢您的支持! : - )