diff options
Diffstat (limited to 'package/adkinstall/src/adkinstall.yeelong')
-rw-r--r-- | package/adkinstall/src/adkinstall.yeelong | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/package/adkinstall/src/adkinstall.yeelong b/package/adkinstall/src/adkinstall.yeelong new file mode 100644 index 000000000..b6735ec54 --- /dev/null +++ b/package/adkinstall/src/adkinstall.yeelong @@ -0,0 +1,59 @@ +#!/bin/sh +# installs a rootfs tar archive from OpenADK onto a disk +# lemote yeelong specific installer + +check_exit() { + if [ $? -ne 0 ];then + echo "Installation failed." + exit 1 + fi +} + +if [ -z $1 ];then + printf "Please give your root tar archive as parameter\n" + exit 1 +fi + +printf "Creating partitions ...\n" +parted -s /dev/sda mklabel msdos +check_exit +sleep 2 +maxsize=$(env LC_ALL=C parted /dev/sda -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//') +rootsize=$(($maxsize-2)) +start=0 +rootp=1 +cfgfsp=2 + +parted -s /dev/sda unit cyl mkpart primary ext2 $start $rootsize +check_exit +mke2fs -q /dev/sda1 +check_exit +parted -s /dev/sda unit cyl mkpart primary fat32 $rootsize $maxsize +check_exit +parted -s /dev/sda set $rootp boot on +check_exit +sfdisk --change-id /dev/sda $cfgfsp 88 >/dev/null 2>&1 +check_exit +# settle down +sleep 2 +mount -t ext2 /dev/sda$rootp /mnt +check_exit +printf "Extracting install archive ...\n" +tar -C /mnt -xzpf $1 +check_exit +chmod 1777 /mnt/tmp +chmod 4755 /mnt/bin/busybox + +cat << EOF > /mnt/boot/boot.cfg +default 0 +timeout 3 +showmenu 1 +title OpenADK + kernel (wd0,0)/boot/kernel + args root=/dev/sda1 ro panic=10 +} +EOF + +umount /mnt +printf "Successfully installed. You can reboot now.\n" +exit 0 |