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