summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/image.mk13
-rw-r--r--mk/rootfs.mk1
-rw-r--r--target/config/Config.in10
-rw-r--r--target/linux/config/Config.in.block4
-rw-r--r--target/linux/config/Config.in.fs6
-rw-r--r--target/x86/Makefile4
-rw-r--r--tools/Makefile2
-rw-r--r--tools/cdrtools/Makefile25
-rw-r--r--tools/syslinux/Makefile37
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