#!/bin/sh # installs a rootfs tar archive from OpenADK onto a micro SD card # special script for foxboard netus aka foxg20 if [ -z $1 ];then printf "Please give your root tar archive as parameter\n" exit 1 fi if [ ! -f $1 ];then printf "given root tar archive does not exist\n" exit 1 fi printf "Creating partition scheme\n" parted -s /dev/mmcblk0 mklabel msdos sleep 2 maxsize=$(env LC_ALL=C parted /dev/mmcblk0 -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//') rootsize=$(($maxsize-2)) parted -s /dev/mmcblk0 unit cyl mkpart primary fat32 0 5 parted -s /dev/mmcblk0 unit cyl mkpart primary ext2 5 $rootsize parted -s /dev/mmcblk0 unit cyl mkpart primary fat32 $rootsize $maxsize parted -s /dev/mmcblk0 set 1 boot on sfdisk --change-id /dev/mmcblk0 3 88 >/dev/null 2>&1 sleep 2 sync printf "Creating ext2 filesystem\n" mkfs.vfat /dev/mmcblk0p1 >/dev/null 2>&1 mke2fs /dev/mmcblk0p2 >/dev/null 2>&1 tune2fs -c0 -i0 /dev/mmcblk0p2 >/dev/null 2>&1 mount -t ext2 /dev/mmcblk0p2 /mnt mkdir /mnt/boot mount -t vfat /dev/mmcblk0p1 /mnt/boot printf "Extracting install archive\n" tar -C /mnt -xzpf $1 if [ $? -ne 0 ];then printf "Extracting of install archive failed" exit 1 fi chmod 1777 /mnt/tmp chmod 4755 /mnt/bin/busybox sync umount /mnt/boot umount /mnt if [ $? -ne 0 ];then printf "Unmounting filesystem failed" exit 1 else printf "Successfully installed.\n" exit 0 fi