Yocto 不打包 busybox 系统日志文件

Yocto doesn't pack busybox syslog files

我正在使用 Yocto 2.3 构建我的设备映像。 我的图片包含 packagegroup-core-boot,而 packagegroup-core-boot 又包含 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

会发生什么情况导致此文件不包含在最终图像中?


附加问题:

tree 输出所示,syslog 的初始化脚本包含在 busybox 中,但没有创建 link 到 /etc/rc?.d/。 我知道应该由 do_install() 钩子创建,不应该吗?

提前致谢。


编辑

packages-split 的内容,正如@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 包中找到例如 syslog.conf

因此,为了将这些文件添加到您的映像中,您需要将 busybox-syslog 添加到您的映像中。 IE。 IMAGE_INSTALL += "busybox-syslog".