Embedded linux Yocto没有';t pack busybox系统日志文件
我正在使用Yocto2.3构建我的设备映像。 我的映像包括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
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
它是正确构建和安装的。
相关的系统日志文件确实出现在busyboximage
目录中:
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
包中找到egsyslog.conf
因此,为了将这些文件放入映像中,您需要向映像中添加busybox syslog
。即IMAGE\u INSTALL+=“busybox syslog”
检查tmp/work/armv5e poky-linux-gnueabi/busybox/1.24.1-r0/packages-split
。这是将所有文件拆分为将生成的包的地方。如果搜索该目录,您将在busybox syslog
包中找到egsyslog.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”中的符号链接)。我欠你一杯啤酒!