118 lines
4.0 KiB
Plaintext
118 lines
4.0 KiB
Plaintext
#$Id$
|
|
#Copyright (c) 2010 Pierre Pronchery <khorben@defora.org>
|
|
|
|
|
|
|
|
#variables
|
|
[ -z "$FDISK" ] && FDISK="fdisk"
|
|
[ -z "$IMAGE_BOOT" ] && IMAGE_BOOT="/usr/mdec/boot"
|
|
[ -z "$INSTALLBOOT" ] && INSTALLBOOT="installboot"
|
|
[ -z "$LDSO" ] && LDSO="/libexec/ld.elf_so"
|
|
[ -z "$MBRLABEL" ] && MBRLABEL="mbrlabel"
|
|
[ -z "$MKFS" ] && MKFS="newfs"
|
|
[ -z "$MKISOFS" ] && MKISOFS="makefs -t cd9660"
|
|
[ -z "$MOUNT" ] && MOUNT="mount"
|
|
[ -z "$UMOUNT" ] && UMOUNT="umount"
|
|
[ -z "$VNCONFIG" ] && VNCONFIG="vnconfig"
|
|
[ -z "$VND" ] && VND="vnd0"
|
|
|
|
|
|
#functions
|
|
#private
|
|
#image_image
|
|
_image_image()
|
|
{
|
|
USAGE="Options for $IMAGE_TYPE on $TARGET:
|
|
IMAGE_BOOT Path to the bootloader
|
|
IMAGE_FILE Where to write the filesystem image
|
|
IMAGE_KERNEL Path to the kernel
|
|
IMAGE_SIZE Size of the filesystem image in kilobytes
|
|
IMAGE_TYPE The type of image to generate
|
|
LDSO Path to the dynamic loader
|
|
MKFS Command used to format the filesystem"
|
|
|
|
#sanity check
|
|
check "$USAGE" CHOWN DD DESTDIR DEVZERO FDISK IMAGE_BOOT IMAGE_FILE \
|
|
IMAGE_KERNEL IMAGE_SIZE INSTALL INSTALLBOOT LDSO LN MBRLABEL \
|
|
MKDIR MKFS MKNOD MOUNT MV UMOUNT VNCONFIG VND
|
|
|
|
$MKDIR "$DESTDIR" || exit 2
|
|
$SUDO $UMOUNT "$DESTDIR"
|
|
$SUDO $VNCONFIG -u "$VND"
|
|
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" &&
|
|
$FDISK -Ffi "$IMAGE_FILE" || exit 2
|
|
SIZE=$((IMAGE_SIZE * 2 - 63))
|
|
$FDISK -Ffu0s "169/63/$SIZE" "$IMAGE_FILE" || exit 2
|
|
$FDISK -Ffa0 "$IMAGE_FILE" || exit 2
|
|
$SUDO $VNCONFIG -c "$VND" "$IMAGE_FILE" || exit 2
|
|
$SUDO $MBRLABEL -frw "$VND" &&
|
|
$SUDO $MKFS "${VND}e" &&
|
|
$SUDO $MOUNT "/dev/${VND}e" "$DESTDIR" &&
|
|
$SUDO $MKDIR "$DESTDIR$PREFIX" &&
|
|
$SUDO $CHOWN "$UID:$GID" "$DESTDIR$PREFIX" &&
|
|
target "install" &&
|
|
$SUDO $CHOWN -R "0:0" "$DESTDIR$PREFIX" &&
|
|
$SUDO $MKDIR "$DESTDIR/bin" &&
|
|
$SUDO $MV "$DESTDIR$PREFIX/bin/sh" "$DESTDIR/bin/sh" &&
|
|
$SUDO $MKDIR "$DESTDIR/dev" &&
|
|
$SUDO $MKNOD -m 600 "$DESTDIR/dev/console" c 0 0 &&
|
|
$SUDO $MKDIR "$DESTDIR/libexec" "$DESTDIR/usr/libexec" &&
|
|
$SUDO $INSTALL -m 555 "$LDSO" \
|
|
"$DESTDIR/libexec/ld.elf_so" &&
|
|
$SUDO $LN -s "/libexec/ld.elf_so" "$DESTDIR/usr/libexec"&&
|
|
$SUDO $MKDIR "$DESTDIR/sbin" &&
|
|
SUBDIRS="Apps/Unix/src/others/tools" target oinit &&
|
|
$SUDO $INSTALL -m 755 "Apps/Unix/src/others/tools/oinit" \
|
|
"$DESTDIR/sbin/init" &&
|
|
$SUDO $INSTALL -m 644 "$IMAGE_BOOT" "$DESTDIR/boot" &&
|
|
$SUDO sh -c "cat > $DESTDIR/boot.cfg" << EOF
|
|
banner=Welcome to DeforaOS
|
|
banner====================
|
|
banner=
|
|
banner=Please choose an option from the following menu:
|
|
menu=Boot DeforaOS:vesa 640x480x8;boot netbsd
|
|
menu=Drop to boot prompt:prompt
|
|
default=1
|
|
timeout=10
|
|
EOF
|
|
$SUDO $INSTALL -m 755 "$IMAGE_KERNEL" "$DESTDIR/netbsd" &&
|
|
$SUDO $INSTALLBOOT -m "$MACHINE" -o "timeout=10" "/dev/r${VND}e" \
|
|
"/usr/mdec/bootxx_ffsv1"
|
|
RET=$?
|
|
$SUDO $UMOUNT "$DESTDIR"
|
|
$SUDO $VNCONFIG -u "$VND"
|
|
return $RET
|
|
}
|
|
|
|
|
|
#image_iso
|
|
_image_iso()
|
|
{
|
|
USAGE="Options for $IMAGE_TYPE on $TARGET:
|
|
IMAGE_BOOT Path to the bootloader
|
|
IMAGE_FILE Where to write the filesystem image
|
|
IMAGE_KERNEL Path to the kernel
|
|
IMAGE_TYPE The type of image to generate
|
|
LDSO Path to the dynamic loader
|
|
MKISOFS Command used to format the filesystem"
|
|
MKISOFS_ARGS="-o bootimage=i386;bootxx,no-emul-boot,rockridge"
|
|
|
|
#sanity check
|
|
check "$USAGE" IMAGE_BOOT IMAGE_FILE IMAGE_KERNEL LDSO MKISOFS
|
|
target "install" || exit 2
|
|
$MKDIR "$DESTDIR/dev" || exit 2
|
|
$SUDO $MKNOD -m 600 "$DESTDIR/dev/console" c 0 0 || exit 2
|
|
$MKDIR "$DESTDIR/libexec" "$DESTDIR/usr/libexec" || exit 2
|
|
$INSTALL -m 555 "$LDSO" "$DESTDIR/libexec/ld.elf_so" || exit 2
|
|
$LN -s "/libexec/ld.elf_so" "$DESTDIR/usr/libexec" || exit 2
|
|
$MKDIR "$DESTDIR/sbin" || exit 2
|
|
SUBDIRS="Apps/Unix/src/others/tools" target oinit || exit 2
|
|
$INSTALL -m 755 "Apps/Unix/src/others/tools/oinit" \
|
|
"$DESTDIR/sbin/init" || exit 2
|
|
$INSTALL -m 755 "$IMAGE_KERNEL" "$DESTDIR/netbsd" || exit 2
|
|
$INSTALL -m 644 "$IMAGE_BOOT" "$DESTDIR/boot" || exit 2
|
|
$INSTALL -m 644 "/usr/mdec/bootxx_cd9660" "bootxx" || exit 2
|
|
$INSTALLBOOT -m "$MACHINE" -o "console=pc" -e bootxx || exit 2
|
|
$MKISOFS $MKISOFS_ARGS "$IMAGE_FILE" "$DESTDIR" || exit 2
|
|
}
|