diff options
-rw-r--r-- | mk/image.mk | 13 | ||||
-rw-r--r-- | mk/rootfs.mk | 1 | ||||
-rw-r--r-- | target/config/Config.in | 10 | ||||
-rw-r--r-- | target/linux/config/Config.in.block | 4 | ||||
-rw-r--r-- | target/linux/config/Config.in.fs | 6 | ||||
-rw-r--r-- | target/x86/Makefile | 4 | ||||
-rw-r--r-- | tools/Makefile | 2 | ||||
-rw-r--r-- | tools/cdrtools/Makefile | 25 | ||||
-rw-r--r-- | tools/syslinux/Makefile | 37 |
9 files changed, 100 insertions, 2 deletions
diff --git a/mk/image.mk b/mk/image.mk index 2273b4af7..7c519d7f5 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -121,12 +121,14 @@ INITRAMFS= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz +ROOTFSISO= ${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.iso else TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel INITRAMFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS} ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img 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}-${ADK_TARGET_FS}.iso endif ${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package @@ -197,5 +199,16 @@ endif $(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \ ARCH=$(ARCH) CC="$(TARGET_CC)" -j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE) +${BIN_DIR}/${ROOTFSISO}: ${TARGET_DIR} kernel-package + mkdir -p ${TARGET_DIR}/boot/syslinux + cp ${STAGING_HOST_DIR}/usr/share/syslinux/{isolinux.bin,ldlinux.c32} \ + ${TARGET_DIR}/boot/syslinux + echo 'DEFAULT /boot/kernel root=/dev/sr0 init=/init' > \ + ${TARGET_DIR}/boot/syslinux/isolinux.cfg + ${TOOLS_DIR}/mkisofs -R -uid 0 -gid 0 -o $@ \ + -b boot/syslinux/isolinux.bin \ + -c boot/syslinux/boot.cat -no-emul-boot \ + -boot-load-size 4 -boot-info-table ${TARGET_DIR} + imageclean: rm -f $(BIN_DIR)/$(ADK_TARGET_SYSTEM)-* ${BUILD_DIR}/$(ADK_TARGET_SYSTEM)-* diff --git a/mk/rootfs.mk b/mk/rootfs.mk index 283c87aa7..18d4f83dc 100644 --- a/mk/rootfs.mk +++ b/mk/rootfs.mk @@ -52,5 +52,6 @@ $(eval $(call rootfs_template,squashfs,SQUASHFS,$(ROOTFS))) $(eval $(call rootfs_template,yaffs,YAFFS,$(MTDDEV) panic=3)) $(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp init=/init)) $(eval $(call rootfs_template,encrypted,ENCRYPTED)) +$(eval $(call rootfs_template,iso,ISO)) export ADK_TARGET_FS diff --git a/target/config/Config.in b/target/config/Config.in index f551e21a0..7ddc7b83c 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -748,6 +748,16 @@ config ADK_TARGET_ROOTFS_MMC Use this option if you have a MMC/SDCARD based system. (ext2 filesystem is used.) +config ADK_TARGET_ROOTFS_ISO + bool "ISO image" + select ADK_KERNEL_ISO9660_FS + select ADK_KERNEL_JOLIET + select ADK_KERNEL_SCSI + select ADK_KERNEL_BLK_DEV_SR + depends on ADK_HOST_LINUX + help + Use this option to create a bootable ISO image. + config ADK_TARGET_ROOTFS_ARCHIVE bool "Archive usable for different filesystems" select ADK_KERNEL_EXT2_FS if ADK_HARDWARE_QEMU diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block index bbd9ce745..fb5bf080f 100644 --- a/target/linux/config/Config.in.block +++ b/target/linux/config/Config.in.block @@ -28,6 +28,9 @@ config ADK_KERNEL_SCSI config ADK_KERNEL_BLK_DEV_SD boolean +config ADK_KERNEL_BLK_DEV_SR + boolean + config ADK_KERNEL_ISCSI_TCP boolean @@ -324,6 +327,7 @@ config ADK_KPACKAGE_KMOD_BLK_DEV_SD config ADK_KPACKAGE_KMOD_BLK_DEV_SR prompt "kmod-scsi-cdrom................... SCSI CDROM support" depends on !ADK_KERNEL_SCSI + depends on !ADK_KERNEL_BLK_DEV_SR depends on ADK_KPACKAGE_KMOD_SCSI tristate help diff --git a/target/linux/config/Config.in.fs b/target/linux/config/Config.in.fs index ab048805e..9bdc6b9e5 100644 --- a/target/linux/config/Config.in.fs +++ b/target/linux/config/Config.in.fs @@ -227,7 +227,11 @@ config ADK_KPACKAGE_KMOD_FUSE_FS fuse-utils. config ADK_KERNEL_JOLIET - bool + boolean + default n + +config ADK_KERNEL_ISO9660_FS + boolean default n config ADK_KPACKAGE_KMOD_ISO9660_FS diff --git a/target/x86/Makefile b/target/x86/Makefile index a3dc8ae70..87d3b5806 100644 --- a/target/x86/Makefile +++ b/target/x86/Makefile @@ -65,4 +65,8 @@ ifeq ($(ADK_HARDWARE_QEMU),y) @echo "Start qemu with following command line:" @echo 'qemu-system-i386 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(BIN_DIR)/$(TARGET_KERNEL)' endif +ifeq (${ADK_TARGET_FS},iso) +imageinstall: ${BIN_DIR}/${ROOTFSISO} + @echo 'ISO image is at $<' +endif endif diff --git a/tools/Makefile b/tools/Makefile index ee096db61..86eb09e22 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk -TARGETS:=adk mkcrypt cpio mkimage genext2fs +TARGETS:=adk mkcrypt cpio mkimage genext2fs cdrtools syslinux TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS)) TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS)) diff --git a/tools/cdrtools/Makefile b/tools/cdrtools/Makefile new file mode 100644 index 000000000..965e3553d --- /dev/null +++ b/tools/cdrtools/Makefile @@ -0,0 +1,25 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= cdrtools +PKG_VERSION:= 3.00 +PKG_RELEASE:= 1 +PKG_MD5SUM:= bb21cefefcfbb76cf249120e8978ffdd +PKG_SITES:= ftp://ftp.berlios.de/pub/cdrecord/ + +include ../rules.mk + +install: ${TOOLS_DIR}/mkisofs + +$(WRKBUILD)/.compiled: ${WRKDIST}/.prepared + #(cd ${WRKBUILD}; ./configure) + ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' + touch $@ + +${TOOLS_DIR}/mkisofs: $(WRKBUILD)/.compiled + $(INSTALL_BIN) $(WRKBUILD)/mkisofs/OBJ/*/mkisofs \ + ${TOOLS_DIR} + +include $(TOPDIR)/mk/tools.mk diff --git a/tools/syslinux/Makefile b/tools/syslinux/Makefile new file mode 100644 index 000000000..2f44c301b --- /dev/null +++ b/tools/syslinux/Makefile @@ -0,0 +1,37 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= syslinux +PKG_VERSION:= 6.02 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 086ac1c569d226a5e2ae3d605de09a1d +PKG_SITES:= http://www.kernel.org/pub/linux/utils/boot/syslinux/ + +include ../rules.mk +WRKINST:= ${WRKBUILD}/openadk_installroot + +install: ${TOOLS_DIR}/extlinux ${STAGING_HOST_DIR}/usr/share/syslinux/.installed + +$(WRKBUILD)/.compiled: ${WRKDIST}/.prepared + #(cd ${WRKBUILD}; ./configure) + ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' bios installer + touch $@ + +$(WRKBUILD)/.installed: ${WRKBUILD}/.compiled + mkdir -p ${WRKINST} + ${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' \ + INSTALLROOT='${WRKINST}' \ + bios install + +${TOOLS_DIR}/extlinux: $(WRKBUILD)/.installed + $(INSTALL_BIN) ${WRKINST}/sbin/extlinux \ + ${TOOLS_DIR} + +${STAGING_HOST_DIR}/usr/share/syslinux/.installed: ${WRKBUILD}/.installed + mkdir -p ${STAGING_HOST_DIR}/usr/share + ${CP} ${WRKINST}/usr/share/syslinux ${STAGING_HOST_DIR}/usr/share + touch ${STAGING_HOST_DIR}/usr/share/syslinux/.installed + +include $(TOPDIR)/mk/tools.mk |