1################################################################################ 2# 3# cpio to archive target filesystem 4# 5################################################################################ 6 7ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) 8 9define ROOTFS_CPIO_ADD_INIT 10 if [ ! -e $(TARGET_DIR)/init ]; then \ 11 ln -sf sbin/init $(TARGET_DIR)/init; \ 12 fi 13endef 14 15else 16# devtmpfs does not get automounted when initramfs is used. 17# Add a pre-init script to mount it before running init 18# We must have /dev/console very early, even before /init runs, 19# for stdin/stdout/stderr 20define ROOTFS_CPIO_ADD_INIT 21 if [ ! -e $(TARGET_DIR)/init ]; then \ 22 $(INSTALL) -m 0755 fs/cpio/init $(TARGET_DIR)/init; \ 23 fi 24 mkdir -p $(TARGET_DIR)/dev 25 mknod -m 0622 $(TARGET_DIR)/dev/console c 5 1 26endef 27 28endif # BR2_ROOTFS_DEVICE_CREATION_STATIC 29 30ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT 31 32# --reproducible option was introduced in cpio v2.12, which may not be 33# available in some old distributions, so we build host-cpio 34ifeq ($(BR2_REPRODUCIBLE),y) 35ROOTFS_CPIO_DEPENDENCIES += host-cpio 36ROOTFS_CPIO_OPTS += --reproducible 37endif 38 39define ROOTFS_CPIO_CMD 40 cd $(TARGET_DIR) && \ 41 find . \ 42 | LC_ALL=C sort \ 43 | cpio $(ROOTFS_CPIO_OPTS) --quiet -o -H newc \ 44 > $@ 45endef 46 47ifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y) 48ROOTFS_CPIO_DEPENDENCIES += host-uboot-tools 49define ROOTFS_CPIO_UBOOT_MKIMAGE 50 $(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \ 51 -C none -d $@$(ROOTFS_CPIO_COMPRESS_EXT) $@.uboot 52endef 53ROOTFS_CPIO_POST_GEN_HOOKS += ROOTFS_CPIO_UBOOT_MKIMAGE 54endif 55 56$(eval $(rootfs)) 57