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