diff options
Diffstat (limited to 'mk/image.mk')
-rw-r--r-- | mk/image.mk | 141 |
1 files changed, 77 insertions, 64 deletions
diff --git a/mk/image.mk b/mk/image.mk index 1cd343701..364b80db3 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -78,12 +78,6 @@ image-prepare-post: -rm -f ${TARGET_DIR}/bin/sh ln -sf ${BINSH} ${TARGET_DIR}/bin/sh -ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),y) - ln -fs ../usr/${ADK_TARGET_LIBC_PATH}/systemd/systemd $(TARGET_DIR)/sbin/init - ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/halt - ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/poweroff - ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/reboot -endif test -z $(GIT) || \ $(GIT) log -1|head -1|sed -e 's#commit ##' \ > $(TARGET_DIR)/etc/.adkgithash @@ -104,7 +98,7 @@ ifneq ($(ADK_TARGET_ARCH_AARCH64)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_PPC6 test ! -d ${TARGET_DIR}/usr/lib || rm -rf ${TARGET_DIR}/usr/lib/ (cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib) endif -ifeq ($(ADK_TARGET_ARCH_S390),y) +ifeq ($(ADK_TARGET_ARCH_LOONGARCH)$(ADK_TARGET_ARCH_S390),y) (cd ${TARGET_DIR}/; ln -sf lib lib64) endif @@ -128,8 +122,8 @@ INITRAMFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img ROOTFSJFFS2= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img ROOTFSUBIFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-ubifs.img -ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.xz -ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.xz +ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz +ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz ROOTFSISO= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso kernel-package: kernel-strip @@ -151,18 +145,17 @@ endif ${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}/.adk kernel-package cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ - $(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@ + $(CPIO) --quiet -o -Hustar --owner=0:0 | gzip -c >$@ ifeq ($(ADK_TARGET_QEMU),y) @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) endif ${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}/.adk cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | sort | \ - $(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@ + $(CPIO) --quiet -o -Hustar --owner=0:0 | gzip -c >$@ ${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk -ifeq ($(ADK_TARGET_LINUX_KERNEL_NEW),y) - PATH='${HOST_PATH}' $(BASH) ${LINUX_DIR}/usr/gen_initramfs_list.sh -u squash -g squash \ + PATH='${HOST_PATH}' $(BASH) ${SCRIPT_DIR}/gen_initramfs_list.sh -u squash -g squash \ ${TARGET_DIR}/ >$@ ( \ echo "nod /dev/console 0644 0 0 c 5 1"; \ @@ -170,10 +163,15 @@ ifeq ($(ADK_TARGET_LINUX_KERNEL_NEW),y) for i in 0 1 2 3 4; do \ echo "nod /dev/tty$$i 0644 0 0 c 4 $$$$i"; \ done; \ - echo "nod /dev/null 0644 0 0 c 1 3"; \ + echo "nod /dev/null 0666 0 0 c 1 3"; \ + echo "nod /dev/zero 0666 0 0 c 1 5"; \ + echo "nod /dev/kmsg 0644 0 0 c 1 11"; \ echo "nod /dev/ram 0655 0 0 b 1 1"; \ + echo "nod /dev/mem 0665 0 0 c 1 1"; \ + echo "nod /dev/random 0666 0 0 c 1 8"; \ + echo "nod /dev/urandom 0666 0 0 c 1 9"; \ echo "nod /dev/ttyS0 0660 0 0 c 4 64"; \ - echo "nod /dev/ttyS1 0660 0 0 c 4 65"; \ + echo "nod /dev/ttysclp0 0660 0 0 c 4 65"; \ echo "nod /dev/ttyB0 0660 0 0 c 11 0"; \ echo "nod /dev/ttyB1 0660 0 0 c 11 1"; \ echo "nod /dev/ttyAMA0 0660 0 0 c 204 64"; \ @@ -185,33 +183,9 @@ ifeq ($(ADK_TARGET_LINUX_KERNEL_NEW),y) echo "nod /dev/ttyBF1 0660 0 0 c 204 65"; \ echo "nod /dev/ttyUL0 0660 0 0 c 204 187"; \ echo "nod /dev/ttyUL1 0660 0 0 c 204 188"; \ + echo "nod /dev/ttyGF0 0660 0 0 c 254 0"; \ + echo "slink /init /sbin/init 755 0 0"; \ ) >>$@ -else - PATH='${HOST_PATH}' $(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \ - ${TARGET_DIR}/ >$@ - ( \ - echo "nod /dev/console 0644 0 0 c 5 1"; \ - echo "nod /dev/tty 0644 0 0 c 5 0"; \ - for i in 0 1 2 3 4; do \ - echo "nod /dev/tty$$i 0644 0 0 c 4 $$$$i"; \ - done; \ - echo "nod /dev/null 0644 0 0 c 1 3"; \ - echo "nod /dev/ram 0655 0 0 b 1 1"; \ - echo "nod /dev/ttyS0 0660 0 0 c 4 64"; \ - echo "nod /dev/ttyS1 0660 0 0 c 4 65"; \ - echo "nod /dev/ttyB0 0660 0 0 c 11 0"; \ - echo "nod /dev/ttyB1 0660 0 0 c 11 1"; \ - echo "nod /dev/ttyAMA0 0660 0 0 c 204 64"; \ - echo "nod /dev/ttyAMA1 0660 0 0 c 204 65"; \ - echo "nod /dev/ttySC0 0660 0 0 c 204 8"; \ - echo "nod /dev/ttySC1 0660 0 0 c 204 9"; \ - echo "nod /dev/ttySC2 0660 0 0 c 204 10"; \ - echo "nod /dev/ttyBF0 0660 0 0 c 204 64"; \ - echo "nod /dev/ttyBF1 0660 0 0 c 204 65"; \ - echo "nod /dev/ttyUL0 0660 0 0 c 204 187"; \ - echo "nod /dev/ttyUL1 0660 0 0 c 204 188"; \ - ) >>$@ -endif ${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list ${LINUX_DIR}/usr/gen_init_cpio ${STAGING_TARGET_DIR}/${INITRAMFS}_list | \ @@ -219,7 +193,7 @@ ${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list ${BUILD_DIR}/root.squashfs: ${TARGET_DIR}/.adk ${STAGING_HOST_DIR}/usr/bin/mksquashfs ${TARGET_DIR} \ - ${BUILD_DIR}/root.squashfs -comp xz \ + ${BUILD_DIR}/root.squashfs -comp gzip \ -nopad -noappend -root-owned $(MAKE_TRACE) ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR} @@ -261,22 +235,17 @@ createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list echo 'CONFIG_INITRAMFS_ROOT_UID=0'; \ echo 'CONFIG_INITRAMFS_ROOT_GID=0'; \ echo 'CONFIG_INITRAMFS_IS_LARGE=n'; \ + echo 'CONFIG_INITRAMFS_PRESERVE_MTIME=n'; \ ) >> ${LINUX_DIR}/.config -ifeq ($(ADK_LINUX_KERNEL_COMP_XZ),y) +ifeq ($(ADK_LINUX_KERNEL_COMP_ZSTD),y) + echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config - echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config - echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config - echo "CONFIG_RD_XZ=y" >> ${LINUX_DIR}/.config - echo "CONFIG_INITRAMFS_COMPRESSION_XZ=y" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_X86=n" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_POWERPC=n" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_IA64=n" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_ARM=n" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_ARMTHUMB=n" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_SPARC=n" >> ${LINUX_DIR}/.config - echo "CONFIG_XZ_DEC_TEST=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=y" >> ${LINUX_DIR}/.config + echo "CONFIG_INITRAMFS_COMPRESSION_ZSTD=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_LINUX_KERNEL_COMP_LZ4),y) echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config @@ -285,6 +254,7 @@ ifeq ($(ADK_LINUX_KERNEL_COMP_LZ4),y) echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZ4=y" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_LZ4=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_LINUX_KERNEL_COMP_LZMA),y) @@ -294,6 +264,7 @@ ifeq ($(ADK_LINUX_KERNEL_COMP_LZMA),y) echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZMA=y" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_LZMA=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_LINUX_KERNEL_COMP_LZO),y) @@ -303,6 +274,7 @@ ifeq ($(ADK_LINUX_KERNEL_COMP_LZO),y) echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZO=y" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_LZO=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_LINUX_KERNEL_COMP_GZIP),y) @@ -312,6 +284,7 @@ ifeq ($(ADK_LINUX_KERNEL_COMP_GZIP),y) echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_GZIP=y" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_GZIP=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_LINUX_KERNEL_COMP_BZIP2),y) @@ -321,6 +294,7 @@ ifeq ($(ADK_LINUX_KERNEL_COMP_BZIP2),y) echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_BZIP2=y" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config echo "CONFIG_INITRAMFS_COMPRESSION_BZIP2=y" >> ${LINUX_DIR}/.config endif ifeq ($(ADK_LINUX_KERNEL_COMPRESS_NONE),y) @@ -330,10 +304,15 @@ ifeq ($(ADK_LINUX_KERNEL_COMPRESS_NONE),y) echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config + echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config endif @-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null - env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \ - -j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE) +ifneq ($(ADK_TARGET_KERNEL_APPEND_DTB),) + ${KERNEL_MAKE} zImage dtbs $(MAKE_TRACE) + (cd $(LINUX_DIR)/arch/$(ADK_TARGET_ARCH)/boot && \ + cat dts/${ADK_TARGET_KERNEL_APPEND_DTB}.dtb >> zImage) +endif + ${KERNEL_MAKE} $(ADK_TARGET_KERNEL) $(MAKE_TRACE) @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) ${FW_DIR}/${ROOTFSISO}: ${TARGET_DIR} kernel-package @@ -352,12 +331,23 @@ GENCFG:=$(ADK_TOPDIR)/adk/genimage/$(ADK_TARGET_GENIMAGE_FILENAME) else GENCFG:=$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/$(ADK_TARGET_GENIMAGE_FILENAME) endif +ifeq (,$(wildcard $(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/$(ADK_TARGET_EXTLINUX_FILENAME))) +EXTLINUX:=$(ADK_TOPDIR)/adk/extlinux/$(ADK_TARGET_EXTLINUX_FILENAME) +else +EXTLINUX:=$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/$(ADK_TARGET_EXTLINUX_FILENAME) +endif ${FW_DIR}/${GENIMAGE}: ${TARGET_DIR} kernel-package @rm -rf ${FW_DIR}/temp @mkdir -p ${FW_DIR}/temp @$(CP) $(KERNEL) $(FW_DIR)/kernel - @dd if=/dev/zero of=${FW_DIR}/cfgfs.img bs=16384 count=1 $(MAKE_TRACE) + @dd if=/dev/zero of=${FW_DIR}/cfgfs.img bs=16384 count=1024 $(MAKE_TRACE) + mkdir -p ${FW_DIR}/extlinux + $(CP) $(EXTLINUX) $(FW_DIR)/extlinux + mkdir -p $(TARGET_DIR)/boot/extlinux + $(CP) $(EXTLINUX) $(TARGET_DIR)/boot/extlinux + $(CP) $(FW_DIR)/kernel $(TARGET_DIR)/boot + -$(CP) $(FW_DIR)/*.dtb $(TARGET_DIR)/boot ifeq ($(ADK_RUNTIME_FIX_PERMISSION),y) echo '#!/bin/sh' > $(ADK_TOPDIR)/scripts/fakeroot.sh echo "chown -R 0:0 $(TARGET_DIR)" >> $(ADK_TOPDIR)/scripts/fakeroot.sh @@ -367,23 +357,46 @@ ifeq ($(ADK_RUNTIME_FIX_PERMISSION),y) PATH='$(HOST_PATH)' $(FAKEROOT) $(ADK_TOPDIR)/scripts/fakeroot.sh rm $(ADK_TOPDIR)/scripts/fakeroot.sh $(STAGING_TARGET_DIR)/scripts/permissions.sh endif - PATH='${HOST_PATH}' $(FAKEROOT) mke2img \ - -G 4 \ +ifeq ($(ADK_TARGET_DUAL_BOOT),y) + $(CP) $(FW_DIR)/kernel $(TARGET_DIR) + -$(CP) $(FW_DIR)/*.dtb $(TARGET_DIR) + mkdir $(TARGET_DIR)/extlinux + $(CP) $(EXTLINUX) $(TARGET_DIR)/extlinux + $(SED) "s#root=.*#root=/dev/$(ADK_TARGET_ROOTDEV)p1#" $(TARGET_DIR)/extlinux/extlinux.conf + PATH='${HOST_PATH}' $(FAKEROOT) mkfs.ext2 \ -d "$(TARGET_DIR)" \ - -o $(FW_DIR)/rootfs.ext $(MAKE_TRACE) + -r 1 -N 0 -m 5 -L "rootfs1" \ + $(FW_DIR)/rootfs1.ext "64M" $(MAKE_TRACE) + $(SED) "s#root=.*#root=/dev/$(ADK_TARGET_ROOTDEV)p2#" $(TARGET_DIR)/extlinux/extlinux.conf + PATH='${HOST_PATH}' $(FAKEROOT) mkfs.ext2 \ + -d "$(TARGET_DIR)" \ + -r 1 -N 0 -m 5 -L "rootfs2" \ + $(FW_DIR)/rootfs2.ext "64M" $(MAKE_TRACE) + PATH='${HOST_PATH}' genimage \ + --config "$(GENCFG)" \ + --tmppath "${FW_DIR}/temp" \ + --rootpath "$(TARGET_DIR)" \ + --inputpath "$(FW_DIR)" \ + --outputpath "$(FW_DIR)" $(MAKE_TRACE) +else + PATH='${HOST_PATH}' $(FAKEROOT) mkfs.ext2 \ + -d "$(TARGET_DIR)" \ + -r 1 -N 0 -m 5 -L "rootfs" \ + $(FW_DIR)/rootfs.ext "64M" $(MAKE_TRACE) PATH='${HOST_PATH}' genimage \ --config "$(GENCFG)" \ --tmppath "${FW_DIR}/temp" \ --rootpath "$(TARGET_DIR)" \ --inputpath "$(FW_DIR)" \ --outputpath "$(FW_DIR)" $(MAKE_TRACE) +endif ifeq ($(ADK_TARGET_DUAL_BOOT),y) - (cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | sort | \ + (cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ PATH='${HOST_PATH}' $(CPIO) -o --quiet -Hustar --owner=0:0 | \ - ${XZ} -c > ${FW_DIR}/openadk.tar.xz) - (cd ${FW_DIR}; PATH='${HOST_PATH}' sha256sum openadk.tar.xz \ + ${GZIP} -c > ${FW_DIR}/openadk.tar.gz) + (cd ${FW_DIR}; PATH='${HOST_PATH}' sha256sum openadk.tar.gz \ | cut -d\ -f1 > sha256.txt) - (cd ${FW_DIR}; PATH='${HOST_PATH}' tar -cf ${ADK_TARGET_SYSTEM}-update.tar openadk.tar.xz sha256.txt) + (cd ${FW_DIR}; PATH='${HOST_PATH}' tar -cf ${ADK_TARGET_SYSTEM}-update.tar openadk.tar.gzip sha256.txt) @rm -rf ${FW_DIR}/temp endif ifeq ($(ADK_PACKAGE_GRUB_EFI_X86)$(ADK_PACKAGE_GRUB_EFI_X86_64),y) |