summaryrefslogtreecommitdiff
path: root/mk/image.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/image.mk')
-rw-r--r--mk/image.mk81
1 files changed, 64 insertions, 17 deletions
diff --git a/mk/image.mk b/mk/image.mk
index 72c7cdaa7..601b0352b 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
@@ -161,7 +155,7 @@ ${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}/.adk
$(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@
${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk
- PATH='${HOST_PATH}' $(BASH) ${ADK_TOPDIR}/scripts/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"; \
@@ -169,10 +163,15 @@ ${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk
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"; \
@@ -184,6 +183,8 @@ ${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk
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"; \
) >>$@
${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
@@ -234,6 +235,7 @@ 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)
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
@@ -251,6 +253,17 @@ ifeq ($(ADK_LINUX_KERNEL_COMP_XZ),y)
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_XZ_DEC_MICROLZMA=n" >> ${LINUX_DIR}/.config
+endif
+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_LZO=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
@@ -312,8 +325,12 @@ ifeq ($(ADK_LINUX_KERNEL_COMPRESS_NONE),y)
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
@@ -332,12 +349,19 @@ 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
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
@@ -347,18 +371,41 @@ 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)" \
+ -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)" \
- -o $(FW_DIR)/rootfs.ext $(MAKE_TRACE)
+ -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 \