scripts/targets/Linux-i386

80 lines
1.9 KiB
Plaintext

#$Id$
#variables
[ -z "$MKFS" ] && MKFS="mke2fs -F"
[ -z "$TUNE2FS" ] && TUNE2FS="tune2fs"
#includes
source "`dirname $0`/Apps/Devel/src/scripts/targets/Linux"
#functions
target_image()
{
$UMOUNT "$DESTDIR"
$MKDIR "$DESTDIR" || exit 2
$DD if="$DEVZERO" of="$DISK_IMAGE" count="$DISK_SIZE" &&
$MKFS "$DISK_IMAGE" || exit 2
$MOUNT "$DISK_IMAGE" "$DESTDIR" || exit 2
target "install"
RET=$?
$UMOUNT "$DESTDIR"
exit $RET
}
target_iso()
{
$MKDIR "$DESTDIR/boot/grub" || exit 2
$CP "/usr/lib/grub/i386-pc/stage2_eltorito" \
"$DESTDIR/boot/grub" || exit 2
$CP "$KERNEL" "$DESTDIR/boot/uKernel" || exit 2
if [ ! -z "$RAMDISK_IMAGE" ]; then
$CP "$RAMDISK_IMAGE" "$DESTDIR/boot/initrd.img"
GRUB_INITRD="initrd /boot/initrd.img"
fi
$CAT > "$DESTDIR/boot/grub/menu.lst" << EOF
default 0
timeout 10
title $VENDOR
kernel /boot/uKernel $KERNEL_ARGS
$GRUB_INITRD
EOF
[ ! -z "$KERNEL_MODULES" ] && cat "$KERNEL_MODULES" | \
(cd "$DESTDIR" && tar xzf -)
$MKISOFS -b "boot/grub/stage2_eltorito" -no-emul-boot \
-boot-load-size 4 -boot-info-table \
-o "$CDROM_IMAGE" "$DESTDIR"
}
target_ramdisk()
{
[ -z "$MOUNTPOINT" ] && error "MOUNTPOINT needs to be set"
$UMOUNT "$MOUNTPOINT"
$MKDIR "$MOUNTPOINT"
$DD if="$DEVZERO" of="$RAMDISK_IMAGE" count="$RAMDISK_SIZE"|| exit 2
$MKFS "$RAMDISK_IMAGE" || exit 2
[ ! -z "$TUNE2FS" ] && $TUNE2FS -i 0 "$RAMDISK_IMAGE"
$MOUNT "$RAMDISK_IMAGE" "$MOUNTPOINT" || exit 2
SUBDIRS="Apps/Unix/src/others/tools" target linuxrc || exit 2
DESTDIR="$MOUNTPOINT" _create_directories 'dev' 'proc' 'mnt/cdrom' \
'sbin'
$LN "../mnt/cdrom/usr/bin/sh" "$MOUNTPOINT/sbin/init"
$CP "Apps/Unix/src/others/tools/linuxrc" "$MOUNTPOINT" || exit 2
$UMOUNT "$MOUNTPOINT"
echo
echo -n "Compressing ramdisk:"
$GZIP "$RAMDISK_IMAGE" || exit 2
$MV "$RAMDISK_IMAGE.gz" "$RAMDISK_IMAGE" || exit 2
echo
$DU "$RAMDISK_IMAGE"
}