1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/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
|