Embedded linux Yocto没有';t pack busybox系统日志文件

Embedded linux Yocto没有';t pack busybox系统日志文件,embedded-linux,yocto,bitbake,Embedded Linux,Yocto,Bitbake,我正在使用Yocto2.3构建我的设备映像。 我的映像包括packagegroup核心引导,它依次包括busybox IMAGE_INSTALL = "\ .... packagegroup-core-boot \ Busybox配置为包括syslogd: CONFIG_SYSLOGD=y CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_DUP=y CONFIG

我正在使用Yocto2.3构建我的设备映像。 我的映像包括
packagegroup核心引导
,它依次包括
busybox

IMAGE_INSTALL = "\
    ....
    packagegroup-core-boot \
Busybox配置为包括syslogd:

CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
CONFIG_FEATURE_REMOTE_LOG=y
CONFIG_FEATURE_SYSLOGD_DUP=y
CONFIG_FEATURE_SYSLOGD_CFG=y
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=64
CONFIG_LOGREAD=y
CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
CONFIG_FEATURE_KMSG_SYSLOG=y
CONFIG_KLOGD=y
它是正确构建和安装的。 相关的系统日志文件确实出现在busybox
image
目录中:

tmp/work/armv5e-poky-linux-gnueabi/busybox/1.24.1-r0/image$ tree etc/
etc/
├── default
├── init.d
│   └── syslog.busybox
├── syslog.conf.busybox
├── syslog-startup.conf.busybox
但是,这些文件不会出现在我的主映像rootfs中。只包括
syslogd
命令。请参阅目标设备上的输出:

# ls -l $( which syslogd )
lrwxrwxrwx    1 root     root            19 Jan 10 12:31 /sbin/syslogd -> /bin/busybox.nosuid
会发生什么情况使此文件不包括在最终图像中


补充问题:

输出所示,系统日志的初始化脚本包含在busybox中,但没有创建指向
/etc/rc?.d/
的链接。 我知道is应该由
do\u install()
hook创建,不是吗

提前谢谢


编辑

正如@Anders所说,拆分的
包的内容似乎没有问题:

poky/build-idprint/tmp/work/armv5e-poky-linux-gnueabi/busybox/1.24.1-r0$ tree packages-split/busybox-syslog/
packages-split/busybox-syslog/
└── etc
    ├── init.d
    │   ├── syslog
    │   └── syslog.busybox
    ├── syslog.conf
    ├── syslog.conf.busybox
    ├── syslog-startup.conf
    └── syslog-startup.conf.busybox

我就是搞不清楚是什么把这些文件从最终图像中剥离出来。

检查
tmp/work/armv5e poky-linux-gnueabi/busybox/1.24.1-r0/packages-split
。这是将所有文件拆分为将生成的包的地方。如果搜索该目录,您将在
busybox syslog
包中找到eg
syslog.conf


因此,为了将这些文件放入映像中,您需要向映像中添加
busybox syslog
。即
IMAGE\u INSTALL+=“busybox syslog”
检查
tmp/work/armv5e poky-linux-gnueabi/busybox/1.24.1-r0/packages-split
。这是将所有文件拆分为将生成的包的地方。如果搜索该目录,您将在
busybox syslog
包中找到eg
syslog.conf


因此,为了将这些文件放入映像中,您需要向映像中添加
busybox syslog
。例如,
IMAGE\u INSTALL+=“busybox syslog”

非常感谢您@Anders的回答。实际上,我有一个
包split/busybox syslog/
目录,其中包含所需的文件,但为什么这些文件没有进入我的最终映像?如何解决这个问题?什么可能会剥离这些文件?再次感谢。添加了将生成的包添加到图像的说明。好奇。。。因此,安装busybox时暗示的
packagegroup core boot
并不意味着安装
busybox syslog
或任何其他启用的功能?不,不一定。您可能有两个不同的映像,尽管您只想在其中一个映像中使用busybox syslog。(例如,您可能在大图像中使用systemd journald,在小图像中使用busybox syslog)。太棒了!这正是我最喜欢的解决方案。一行文本解决了所有问题(包括“/etc/rc?.d”中的符号链接)。我欠你一杯啤酒!非常感谢您的回答@Anders。实际上,我有一个
包split/busybox syslog/
目录,其中包含所需的文件,但为什么这些文件没有进入我的最终映像?如何解决这个问题?什么可能会剥离这些文件?再次感谢。添加了将生成的包添加到图像的说明。好奇。。。因此,安装busybox时暗示的
packagegroup core boot
并不意味着安装
busybox syslog
或任何其他启用的功能?不,不一定。您可能有两个不同的映像,尽管您只想在其中一个映像中使用busybox syslog。(例如,您可能在大图像中使用systemd journald,在小图像中使用busybox syslog)。太棒了!这正是我最喜欢的解决方案。一行文本解决了所有问题(包括“/etc/rc?.d”中的符号链接)。我欠你一杯啤酒!