summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Kenna <cjk@cs.unc.edu>2012-09-26 20:38:05 -0400
committerChristopher Kenna <cjk@cs.unc.edu>2012-09-26 20:38:05 -0400
commit99c79f36791042a9bb6f63d7ae6a3964f3ba167b (patch)
tree2055d8660c453f972b011199a2adccc13075c15e
parent343380d84cc2f30c9e2b3f51965fad06c3b139c7 (diff)
Add ODROID-X kernel install script.
-rwxr-xr-xodroid-install-kernel.sh93
1 files changed, 93 insertions, 0 deletions
diff --git a/odroid-install-kernel.sh b/odroid-install-kernel.sh
new file mode 100755
index 0000000..8748e60
--- /dev/null
+++ b/odroid-install-kernel.sh
@@ -0,0 +1,93 @@
1#!/bin/sh
2
3set -e
4
5error() {
6 echo "$@" >&2
7 exit 1
8}
9
10# The FAT u-boot bootloader partition.
11UBOOT_PART=/dev/mmcblk0p2
12
13# Build host for ARM.
14HOST="pound.cs.unc.edu"
15
16if [ $# -ne 2 ] ; then
17 error "Usage: `basename $0` <REMOTE KDIR> <BOOT-SCRIPT>"
18fi
19
20SRC_ROOT=$1
21SCRIPT_NAME=$2
22
23set +e
24VERSION=$(ssh cjk@$HOST cat $SRC_ROOT/include/config/kernel.release)
25set -e
26if [ "x" = "x$VERSION" ] ; then
27 error "Could not determine version"
28fi
29
30if [ ! -f "$SCRIPT_NAME" ] ; then
31 error "Boot script not a file: $SCRIPT_NAME"
32fi
33
34TMP_DIR=$(mktemp -d)
35TMP_MOUNT=$(mktemp -d)
36
37ZIMAGE_NAME="zImage-litmus"
38UIMAGE_NAME="uImage-litmus"
39CONFIG_NAME="config-$VERSION"
40INITRD_NAME="uInitrd-litmus"
41SCR_NAME="boot-litmus.scr"
42
43echo "Fetching files from $HOST ..." >&2
44rsync -P cjk@$HOST:$SRC_ROOT/arch/arm/boot/zImage $TMP_DIR/$ZIMAGE_NAME
45rsync -P cjk@$HOST:$SRC_ROOT/.config $TMP_DIR/$CONFIG_NAME
46echo "done." >&2
47
48echo "Generating kernel u-boot image..." >&2
49mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
50 -e 0x80008000 -d $TMP_DIR/$ZIMAGE_NAME $TMP_DIR/$UIMAGE_NAME >&2
51echo "done." >&2
52
53echo "Generating u-boot configuration ... " >&2
54mkimage -A arm -T script -C none -d "$SCRIPT_NAME" $TMP_DIR/$SCR_NAME >&2
55echo "done." >&2
56
57echo "Moving vmlinuz and config fils to /boot ..." >&2
58sudo cp $TMP_DIR/$ZIMAGE_NAME /boot/vmlinuz-$VERSION
59sudo cp $TMP_DIR/$CONFIG_NAME /boot/
60echo "done." >&2
61
62echo "Creating initramfs (ignore module errors) ... " >&2
63sudo update-initramfs -k $VERSION -c
64echo "done." >&2
65
66echo "Making u-boot initrd image ... " >&2
67mkimage -A arm -T ramdisk -C none \
68 -d /boot/initrd.img-$VERSION $TMP_DIR/$INITRD_NAME >&2
69echo "done." >&2
70
71echo "Mounting u-boot partition ..." >&2
72sudo mount $UBOOT_PART $TMP_MOUNT
73echo "done." >&2
74
75echo "Copying files to u-boot partition ..." >&2
76sudo cp $TMP_DIR/$UIMAGE_NAME $TMP_MOUNT/
77sudo cp $TMP_DIR/$SCR_NAME $TMP_MOUNT/
78sudo cp $TMP_DIR/$INITRD_NAME $TMP_MOUNT/
79echo "done." >&2
80
81echo "Making LITMUS the default ..." >&2
82mv $TMP_MOUNT/$SCR_NAME $TMP_MOUNT/boot.scr
83echo "done." >&2
84
85echo "Unmounting u-boot partition ..." >&2
86sudo umount $TMP_MOUNT
87echo "done." >&2
88
89echo "Removing temporary files ..." >&2
90rm -rf $TMP_DIR $TMP_MOUNT
91echo "done." >&2
92
93echo "All done!" >&2