j4x
j4x

Reputation: 3716

Yocto doesn't pack busybox syslog files

I am using Yocto 2.3 to build my device image. My image includes packagegroup-core-boot that, in turn, includes busybox.

IMAGE_INSTALL = "\
    ....
    packagegroup-core-boot \

Busybox is configured to include 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

It is built and installed correctly. Relevant syslog files do appear in busybox image directory:

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

These files don't appear in my main image rootfs, though. Only the syslogd command is included. See output on target device:

# ls -l $( which syslogd )
lrwxrwxrwx    1 root     root            19 Jan 10 12:31 /sbin/syslogd -> /bin/busybox.nosuid

What can be happening to make this files not to be included in the final image?


Additional question:

As shown in the tree output, the init script for syslog is included in busybox but no link to /etc/rc?.d/ is created. I understand that is should be created by a do_install() hook, shouldn't?

Thanks in advance.


EDIT

Contents of packages-split, as @Anders says, seems ok:

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

I just can't figure out what is stripping this files out of the final image.

Upvotes: 0

Views: 1394

Answers (1)

Anders
Anders

Reputation: 8981

Check tmp/work/armv5e-poky-linux-gnueabi/busybox/1.24.1-r0/packages-split. This is where all files are split into the packages that will be generated. If you search that directory, you'll find eg syslog.conf in the busybox-syslog package.

Thus, in order to get those files into your image, you'll need to add busybox-syslog to your image. I.e. IMAGE_INSTALL += "busybox-syslog".

Upvotes: 2

Related Questions