@@ -4,6 +4,7 @@ menu "Target packages"
source "package/skeleton/Config.in"
source "package/skeleton-common/Config.in"
source "package/skeleton-custom/Config.in"
+ source "package/skeleton-systemd/Config.in"
source "package/skeleton-sysv/Config.in"
menu "Audio and video applications"
new file mode 100644
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_SKELETON_SYSTEMD
+ bool
+ select BR2_PACKAGE_HAS_SKELETON
+ select BR2_PACKAGE_SKELETON_COMMON
+
+config BR2_PACKAGE_PROVIDES_SKELETON
+ default "skeleton-systemd" if BR2_PACKAGE_SKELETON_SYSTEMD
new file mode 100644
@@ -0,0 +1,43 @@
+################################################################################
+#
+# skeleton-systemd
+#
+################################################################################
+
+SKELETON_SYSTEMD_SOURCE =
+
+SKELETON_SYSTEMD_PROVIDES = skeleton
+
+SKELETON_SYSTEMD_DEPENDENCIES = skeleton-common
+
+SKELETON_SYSTEMD_ADD_TOOLCHAIN_DEPENDENCY = NO
+SKELETON_SYSTEMD_ADD_SKELETON_DEPENDENCY = NO
+
+# In case we're not using systemd-networkd, use the sysv-like network infra;
+# otherwise, the necessary bits are installed by the systemd package.
+ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),)
+
+define SKELETON_SYSTEMD_RSYNC_NETWORK
+ $(call SKELETON_RSYNC,system/skeleton-net,$(TARGET_DIR))
+endef
+
+define SKELETON_SYSTEMD_SET_NETWORK
+ ln -fs ../tmp/resolv.conf $(TARGET_DIR)/etc/resolv.conf
+ mkdir -p $(TARGET_DIR)/etc/network/
+ $(SKELETON_SET_NETWORK_IFUPDOWN_LOOPBACK)
+ $(SKELETON_SET_NETWORK_IFUPDOWN_DHCP)
+endef
+SKELETON_SYSTEMD_TARGET_FINALIZE_HOOKS += SKELETON_SYSTEMD_SET_NETWORK
+
+endif # BR2_PACKAGE_SYSTEMD_NETWORKD not set
+
+define SKELETON_SYSTEMD_INSTALL_TARGET_CMDS
+ mkdir -p $(TARGET_DIR)/etc
+ mkdir -p $(TARGET_DIR)/home
+ mkdir -p $(TARGET_DIR)/srv
+ mkdir -p $(TARGET_DIR)/var
+ echo "/dev/root / auto rw 0 1" >$(TARGET_DIR)/etc/fstab
+ $(SKELETON_SYSTEMD_RSYNC_NETWORK)
+endef
+
+$(eval $(generic-package))
@@ -5,7 +5,8 @@ choice
config BR2_ROOTFS_SKELETON_DEFAULT
bool "default target skeleton"
- select BR2_PACKAGE_SKELETON_SYSV
+ select BR2_PACKAGE_SKELETON_SYSV if !BR2_INIT_SYSTEMD
+ select BR2_PACKAGE_SKELETON_SYSTEMD if BR2_INIT_SYSTEMD
help
Use default target skeleton
Given the very few things to create in the skeleton, there is no real need in having a pre-populated skeleton that we rsync. We can very well just create the directory structure with simple mkdir commands. systemd does not like being booted without any timezone info, so we forcibly enable that. If there is no default timezone set, we fallback to UTC (which is basically what no TZ means anyway). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> --- package/Config.in | 1 + package/skeleton-systemd/Config.in | 7 +++++ package/skeleton-systemd/skeleton-systemd.mk | 43 ++++++++++++++++++++++++++++ system/Config.in | 3 +- 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 package/skeleton-systemd/Config.in create mode 100644 package/skeleton-systemd/skeleton-systemd.mk