xref: /minix/releasetools/x86_cdimage.sh (revision d2532d3d)
1#!/usr/bin/env bash
2set -e
3
4#
5# This script creates a bootable image and should at some point in the future
6# be replaced by the proper NetBSD infrastructure.
7#
8
9: ${ARCH=i386}
10: ${OBJ=../obj.${ARCH}}
11: ${TOOLCHAIN_TRIPLET=i586-elf32-minix-}
12: ${BUILDSH=build.sh}
13
14: ${SETS="minix-base"}
15: ${IMG=minix_x86.iso}
16
17if [ ! -f ${BUILDSH} ]
18then
19	echo "Please invoke me from the root source dir, where ${BUILDSH} is."
20	exit 1
21fi
22
23# set up disk creation environment
24. releasetools/image.defaults
25. releasetools/image.functions
26
27# where the kernel & boot modules will be
28MODDIR=${DESTDIR}/boot/minix/.temp
29
30echo "Building work directory..."
31build_workdir "$SETS"
32
33echo "Adding extra files..."
34workdir_add_sets
35workdir_add_cdfiles
36
37# create a fstab entry in /etc
38cat >${ROOT_DIR}/etc/fstab <<END_FSTAB
39none		/sys		devman	rw,rslabel=devman	0	0
40none		/dev/pts	ptyfs	rw,rslabel=ptyfs	0	0
41END_FSTAB
42add_file_spec "etc/fstab" extra.fstab
43
44workdir_add_kernel minix_default
45
46# add boot.cfg
47cat >${ROOT_DIR}/boot.cfg <<END_BOOT_CFG
48banner=Welcome to the MINIX 3 installation CD
49banner================================================================================
50banner=
51menu=Regular MINIX 3:multiboot /boot/minix_default/kernel bootcd=1 cdproberoot=1 disable=inet
52menu=Regular MINIX 3 (with AHCI):multiboot /boot/minix_default/kernel bootcd=1 cdproberoot=1 disable=inet ahci=yes
53menu=Edit menu option:edit
54menu=Drop to boot prompt:prompt
55clear=1
56timeout=10
57default=1
58load=/boot/minix_default/mod01_ds
59load=/boot/minix_default/mod02_rs
60load=/boot/minix_default/mod03_pm
61load=/boot/minix_default/mod04_sched
62load=/boot/minix_default/mod05_vfs
63load=/boot/minix_default/mod06_memory
64load=/boot/minix_default/mod07_tty
65load=/boot/minix_default/mod08_mib
66load=/boot/minix_default/mod09_vm
67load=/boot/minix_default/mod10_pfs
68load=/boot/minix_default/mod11_mfs
69load=/boot/minix_default/mod12_init
70END_BOOT_CFG
71add_file_spec "boot.cfg" extra.cdfiles
72
73# add README.TXT
74cp releasetools/release/cd/README.TXT ${ROOT_DIR}/README.TXT
75add_file_spec "README.TXT" extra.cdfiles
76
77# set correct message of the day (log in and install tip)
78cp releasetools/release/cd/etc/issue ${ROOT_DIR}/etc/issue
79add_file_spec "etc/issue" extra.cdfiles
80
81echo "Bundling packages..."
82bundle_packages "$BUNDLE_PACKAGES"
83
84echo "Creating specification files..."
85create_input_spec
86create_protos
87
88# Clean image
89if [ -f ${IMG} ]	# IMG might be a block device
90then
91	rm -f ${IMG}
92fi
93
94echo "Writing ISO..."
95${CROSS_TOOLS}/nbmakefs -t cd9660 -F ${WORK_DIR}/input -o "rockridge,bootimage=i386;${DESTDIR}/usr/mdec/bootxx_cd9660,label=MINIX" ${IMG} ${ROOT_DIR}
96
97#mods=$(cd ${MODDIR}; echo mod* | tr ' ' ',')
98
99echo "ISO image at `pwd`/${IMG}"
100echo "To boot this image on kvm:"
101#echo "cd ${MODDIR} && qemu-system-i386 --enable-kvm -kernel kernel -append \"bootcd=1 cdproberoot=1 disable=inet\" -initrd \"${mods}\" -cdrom `pwd`/${IMG}"
102echo "qemu-system-i386 --enable-kvm -cdrom `pwd`/${IMG}"
103