Add beaglebone sd card prep tool
This commit is contained in:
parent
fd4ff0c223
commit
3cc05c50c3
1 changed files with 87 additions and 0 deletions
87
tools/bb_sd_prep.sh
Executable file
87
tools/bb_sd_prep.sh
Executable file
|
@ -0,0 +1,87 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
# trap ctrl-c and call ctrl_c()
|
||||||
|
trap cleanup INT
|
||||||
|
|
||||||
|
function cleanup() {
|
||||||
|
umount -f /tmp/sdcard.boot.$$ >/dev/null 2>&1
|
||||||
|
umount -f /tmp/sdcard.root.$$ >/dev/null 2>&1
|
||||||
|
echo "Aborted."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "ERROR: this script must be run as root (i.e. using \`sudo'.)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PATH=${PATH}:/sbin:/usr/sbin
|
||||||
|
DEV="$1"
|
||||||
|
IMGDIR="$2"
|
||||||
|
if [ -z "$IMGDIR" ]; then
|
||||||
|
IMGDIR=/home/dburr/devel/poky/build/tmp/deploy/images/beaglebone
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DEV" -o -z "$IMGDIR" ]; then
|
||||||
|
echo "USAGE: bb_sd_prep.sh device build-dir"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -b "$DEV" ]; then
|
||||||
|
echo "ERROR: no such device: $DEV"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$IMGDIR" -o ! -f "$IMGDIR/MLO-beaglebone" ]; then
|
||||||
|
echo "ERROR: $IMGDIR does not appear to be a build directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "$IMGDIR" >/dev/null 2>&1
|
||||||
|
|
||||||
|
echo "Unmoounting all partitions on $DEV:"
|
||||||
|
PARTS="`df | grep ^$DEV | awk '{ print $1 }'`"
|
||||||
|
if [ ! -z "$PARTS" ]; then
|
||||||
|
for PART in $PARTS; do
|
||||||
|
echo "...$PART"
|
||||||
|
umount "$PART"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
echo "Preparing partition table on $DEV:"
|
||||||
|
dd if=/dev/zero of=$DEV bs=512 count=10 >/dev/null 2>&1
|
||||||
|
echo -e "n\np\n1\n\n4095\nn\np\n2\n\n\nt\n1\ne\na\n1\nw\n" | fdisk $DEV >/dev/null 2>&1
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
echo "Formatting partition on $DEV:"
|
||||||
|
mkfs.vfat -F 16 -n "boot" ${DEV}1
|
||||||
|
mkfs.ext2 -j -L "root" ${DEV}2
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
echo "Mounting partition on $DEV:"
|
||||||
|
mkdir -p /tmp/sdcard.boot.$$
|
||||||
|
mkdir -p /tmp/sdcard.root.$$
|
||||||
|
mount -t vfat "${DEV}1" /tmp/sdcard.boot.$$
|
||||||
|
mount -t ext4 "${DEV}2" /tmp/sdcard.root.$$
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
echo "Copying bootloader..."
|
||||||
|
cp MLO-beaglebone /mnt/sdcard.boot.$$/MLO
|
||||||
|
cp u-boot-beaglebone.img /mnt/sdcard.boot.$$/u-boot.img
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
echo "Creating root filesystem..."
|
||||||
|
tar x -C /tmp/sdcard.root.$$ -f core-image-*-beaglebone.tar.bz2
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
echo "unmounting SD card..."
|
||||||
|
sync;sync;sync
|
||||||
|
umount /tmp/sdcard.boot.$$
|
||||||
|
umount /tmp/sdcard.root.$$
|
||||||
|
echo "...done"
|
||||||
|
|
||||||
|
rmdir /tmp/sdcard.boot.$$
|
||||||
|
rmdir /tmp/sdcard.root.$$
|
||||||
|
echo "Yocto has been installed and is ready to be booted."
|
Loading…
Add table
Add a link
Reference in a new issue