Skip to content

Instantly share code, notes, and snippets.

@mickey-happygolucky
Created January 10, 2017 14:18
Show Gist options
  • Save mickey-happygolucky/40385889e3d013f00e1f97eb5ae04f95 to your computer and use it in GitHub Desktop.
Save mickey-happygolucky/40385889e3d013f00e1f97eb5ae04f95 to your computer and use it in GitHub Desktop.
Make SD card script for meta-panda-es-rev-b3
#!/bin/bash
##
# make sdcard for meta-panda-es-rev-b3
# This script create partition for PandaBoard SD Card.
# SD Card device detect automatically.
#
MOUNT_POINT=/media/${USER}/*
DISK=/dev/`cd /sys/block && grep ^ */removable | grep :1 | cut -d'/' -f1 | grep sd`
IMAGEPATH=$1
SRCDIR=""
DSTDIR=/media/${USER}/rootfs
IMAGEEXT=""
usage() {
echo "mksd_panda.sh /path/to/input_tar_image"
exit
}
check_args()
{
if [ $# -lt 1 ] ; then
usage 1
fi
if [ ! -e $1 ] ; then
echo "$1 could not found."
exit
fi
filename=$(basename ${IMAGEPATH})
echo ${filename}
if [ ${filename#*.} != "tar.gz" ] ; then
echo "${filename#*.} is not tar.gz"
exit
fi
SRCDIR=$(dirname ${IMAGEPATH})
}
check_dev()
{
if [ ${DISK} = "/dev/" ] ; then
echo "removable device is not found."
exit
fi
if [ ! -e ${DISK}1 ] ; then
echo "removable device is not found."
exit
fi
echo "ok ${DISK} is available."
}
create_dir()
{
if [ ! -e $1 ] ; then
sudo mkdir $1
fi
}
check_args $@
check_dev
sudo umount ${MOUNT_POINT}
echo "ok ${MOUNT_POINT} is unmanted."
sudo dd if=/dev/zero of=${DISK} bs=1M count=10
echo "ok ${DISK} is cleared."
sudo dd if=${SRCDIR}/MLO of=${DISK} count=1 seek=1 bs=128k
sudo dd if=${SRCDIR}/u-boot.img of=${DISK} count=2 seek=1 bs=384k
#sudo dd if=${SRCDIR}/u-boot.img of=${DISK} count=3 seek=1 bs=256k
sudo sfdisk ${DISK} <<-__EOF__
1M,,L,*
__EOF__
sudo mkfs.ext4 -L rootfs ${DISK}1
create_dir ${DSTDIR}
sudo mount ${DISK}1 ${DSTDIR}
sudo tar xf ${IMAGEPATH} -C ${DSTDIR}
sudo cp ${SRCDIR}/zImage ${DSTDIR}/boot
sudo cp ${SRCDIR}/zImage-omap4-panda-es-b3.dtb ${DSTDIR}/boot/omap4-panda-es-b3.dtb
sudo tee ${DSTDIR}/uEnv.txt <<__EOF__
uenvcmd=run mmcboot
fdtfile=omap4-panda-es-b3.dtb
fdtdir=/boot
bootdir=/boot
bootpart=0:1
interface=mmc
__EOF__
sudo umount ${DSTDIR}
sudo rmdir ${DSTDIR}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment