livecd-iso-to-xo for XO-1.5
Daniel Drake
dsd at laptop.org
Thu Jun 4 12:27:20 UTC 2009
Hi,
Here's my initial attempt at an equivalent livecd-iso-to-xo.sh for the
XO-1.5. This involves a filesystem change to ext2 as we no longer have
raw flash access (right?).
Completely untested.
Open questions:
1. What should the root= kernel parameter be?
2. How would we distribute this to testers and developers?
The resultant file is 4gb, albeit sparse. Maybe rsync can handle
sparse files efficiently.
3. How do we use OFW to flash this, including a partition table etc?
Daniel
-------------- next part --------------
#!/bin/bash
cleanup() {
[ -d "$DISKMOUNT" ] && { umount $DISKMOUNT; rmdir $DISKMOUNT; }
[ -d "$SQUASHMNT" ] && { umount $SQUASHMNT; rmdir $SQUASHMNT; }
[ -d "$ISOMNT" ] && { umount $ISOMNT; rmdir $ISOMNT; }
[ -d "$ROOT" ] && { umount $ROOT; rmdir $ROOT; }
}
exitclean() {
echo "Cleaning up to exit..."
cleanup
exit 1
}
trap exitclean SIGINT SIGTERM
ISO=$(readlink -f "$1")
IMG=$(readlink -f "$2")
ISOMNT=$(mktemp -d /media/isotmp.XXXXXX)
mount -o loop,ro "$ISO" $ISOMNT || exitclean
SQUASHMNT=$(mktemp -d /media/squashtmp.XXXXXX)
mount -o loop,ro $ISOMNT/LiveOS/squashfs.img $SQUASHMNT || exitclean
DISKMOUNT=$(mktemp -d /media/disktmp.XXXXXX)
mount -o loop,ro $SQUASHMNT/LiveOS/ext3fs.img $DISKMOUNT || exitclean
echo "Create root filesystem..."
ROOT=$(mktemp -d /tmp/root.XXXXXX)
dd if=/dev/zero of=$IMG bs=1 count=1 seek=4G || exitclean
mke2fs -O dir_index -F $IMG || exitclean
mount -o loop $IMG $ROOT || exitclean
cp -a $DISKMOUNT/* $ROOT
cp $ISOMNT/isolinux/initrd0.img $ROOT/boot
cp $ISOMNT/isolinux/vmlinuz0 $ROOT/boot
if [ ! -e $ROOT/boot/olpc.fth ] ; then
echo "no $ROOT/boot/olpc.fth - should have been added by whatever installed $ROOT/boot/vmlinuz*"
exit 1;
fi
sed -i -e 's/rootfstype=jffs2/rootfstype=ext4/' $ROOT/boot/olpc.fth
echo "Done."
cleanup
More information about the Fedora-olpc-list
mailing list