diff options
Diffstat (limited to 'package/adkinstall/src/adkinstall.rb532')
-rw-r--r-- | package/adkinstall/src/adkinstall.rb532 | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/package/adkinstall/src/adkinstall.rb532 b/package/adkinstall/src/adkinstall.rb532 new file mode 100644 index 000000000..ca2ffde0d --- /dev/null +++ b/package/adkinstall/src/adkinstall.rb532 @@ -0,0 +1,78 @@ +#!/bin/sh +# installs a rootfs tar archive from OpenADK onto +# a Compact Flash disk or NAND device +# special script for routerboard rb532 + +nandinstall=0 +cfinstall=0 + +if [ -z $1 ];then + printf "Please give your target device as first parameter [cf|nand]\n" + exit 1 +fi +if [ -z $2 ];then + printf "Please give your root tar archive as second parameter\n" + exit 1 +fi +if [ -z $3 ];then + printf "Please give your kernel as third parameter\n" + exit 1 +fi +case $1 in + nand) + nandinstall=1 + ;; + cf) + cfinstall=1 + ;; + *) + printf "Target not recognized\n" + exit 1 + ;; +esac + +if [ $cfinstall -eq 1 ];then + # create empty partition table + printf "Creating partition scheme\n" + parted -s /dev/sda mklabel msdos + 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)) + parted -s /dev/sda unit cyl mkpart primary ext2 0 1 + parted -s /dev/sda unit cyl mkpartfs primary ext2 1 $rootsize + parted -s /dev/sda unit cyl mkpart primary fat32 $rootsize $maxsize + parted -s /dev/sda set 1 boot on + sfdisk --change-id /dev/sda 1 27 >/dev/null 2>&1 + sfdisk --change-id /dev/sda 3 88 >/dev/null 2>&1 + sleep 2 + sync + printf "Installing kernel\n" + dd if=$3 of=/dev/sda1 bs=2048 >/dev/null 2>&1 + sync + mount -t ext2 /dev/sda2 /mnt +fi + +if [ $nandinstall -eq 1 ];then + printf "Installing kernel\n" + mount -t yaffs2 /dev/mtdblock0 /mnt + cp $3 /mnt/kernel + sync + umount /mnt + mount -t yaffs2 /dev/mtdblock1 /mnt + rm -rf /mnt/* >/dev/null 2>&1 +fi + +printf "Extracting install archive\n" +tar -C /mnt -xzpf $2 + +chmod 1777 /mnt/tmp +chmod 4755 /mnt/bin/busybox + +printf "Creating device nodes\n" +mknod -m 666 /mnt/dev/null c 1 3 +mknod -m 622 /mnt/dev/console c 5 1 +mknod -m 666 /mnt/dev/tty c 5 0 + +umount /mnt +printf "Successfully installed.\n" +exit 0 |