system: don't attempt swapon/swapoff in inittab if not available
The default inittab files added by busybox and sysvinit run 'swapon -a' during init and 'swapoff -a' during shutdown. But, the swapon/swapoff programs are not guaranteed to be available. For the busybox versions, it is steered by CONFIG_SWAPON/CONFIG_SWAPOFF. For the util-linux versions, it is steered by BR2_PACKAGE_UTIL_LINUX_BINARIES. In a case where swapon/swapoff is not available but the inittab tries to execute them, the boot log would be polluted by error messages like: swapon: not found Avoid this by commenting out the swapon/swapoff lines if the swapon/swapoff binaries are not available. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> [Peter: test with -x] Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
ca328f80da
commit
c4dce0ae0f
@ -226,6 +226,7 @@ endif # BR2_TARGET_GENERIC_GETTY
|
||||
BUSYBOX_TARGET_FINALIZE_HOOKS += BUSYBOX_SET_GETTY
|
||||
|
||||
BUSYBOX_TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_ROOT_INITTAB
|
||||
BUSYBOX_TARGET_FINALIZE_HOOKS += SYSTEM_UPDATE_SWAPON_SWAPOFF_INITTAB
|
||||
|
||||
endif # BR2_INIT_BUSYBOX
|
||||
|
||||
|
@ -45,5 +45,6 @@ endif # BR2_TARGET_GENERIC_GETTY
|
||||
SYSVINIT_TARGET_FINALIZE_HOOKS += SYSVINIT_SET_GETTY
|
||||
|
||||
SYSVINIT_TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_ROOT_INITTAB
|
||||
SYSVINIT_TARGET_FINALIZE_HOOKS += SYSTEM_UPDATE_SWAPON_SWAPOFF_INITTAB
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
@ -96,6 +96,19 @@ define SYSTEM_REMOUNT_ROOT_INITTAB
|
||||
endef
|
||||
endif
|
||||
|
||||
define SYSTEM_UPDATE_SWAPON_SWAPOFF_INITTAB
|
||||
if [ -x $(TARGET_DIR)/sbin/swapon ]; then \
|
||||
$(SED) '\%:/sbin/swapon%s/^#*//' $(TARGET_DIR)/etc/inittab ; \
|
||||
else \
|
||||
$(SED) '\%:/sbin/swapon%s/^#*/#/' $(TARGET_DIR)/etc/inittab ; \
|
||||
fi
|
||||
if [ -x $(TARGET_DIR)/sbin/swapoff ]; then \
|
||||
$(SED) '\%:/sbin/swapoff%s/^#*//' $(TARGET_DIR)/etc/inittab ; \
|
||||
else \
|
||||
$(SED) '\%:/sbin/swapoff%s/^#*/#/' $(TARGET_DIR)/etc/inittab ; \
|
||||
fi
|
||||
endef
|
||||
|
||||
ifeq ($(BR_BUILDING)$(BR2_SYSTEM_DEFAULT_PATH),y"")
|
||||
$(error BR2_SYSTEM_DEFAULT_PATH can't be empty)
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user