我正在为一个没有实时时钟的目标构建一个基于 Poky 的嵌入式 Linux 发行版。系统时间仅由 ntpd
设置。因此,我真的不需要在启动过程中调用hwclock --hctosys
的 init 脚本,实际上我担心这可能会导致 ntpd
设置的系统时间用不正确的值覆盖。
那么如何摆脱 hwclock 初始化脚本呢?事实证明,它来自忙碌的盒子食谱。Poky 中 busybox 的默认配方包含以下行:
PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog ${PN}-mdev ${PN}-hwclock"
...
FILES_${PN}-hwclock = "${sysconfdir}/init.d/hwclock.sh"
...
INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-mdev ${PN}-hwclock"
...
INITSCRIPT_NAME_${PN}-hwclock = "hwclock.sh"
我不知道如何从*.bbappend
文件中删除对 hwclock 的所有引用。是否有任何直接的解决方案,或者不可能从bbappend中获取,我必须重写整个食谱?
配置位于openembedded-core/meta/recipes-core/busybox/busybox/defconfig的CONFIG_HWCLOCK=n来禁用它。
如果您想从构建中排除包并且不想求助于操作工作配方,那么只需在您的local.conf
中PACKAGE_EXCLUDE = "<package_name>"
这是我的一个例子: PACKAGE_EXCLUDE = "busybox-syslog busybox-hwclock"
但请注意,某些软件包可能依赖于 hwclock。在最坏的情况下,您会收到一个 bitbake 依赖项错误。