summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/sbin/installkernel
diff options
context:
space:
mode:
authorManuel Traut <manut@mecka.net>2011-04-29 09:09:27 +0200
committerManuel Traut <manut@mecka.net>2011-04-29 09:09:27 +0200
commit5238ad5a0c4a9e1c8cd036f5de4055e39bd71297 (patch)
tree4407c087b9fb5432b1dc11e70b52dacfa0b99feb /beagle/debian-rfs/sbin/installkernel
parent60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (diff)
added debootstrap stuff
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'beagle/debian-rfs/sbin/installkernel')
-rwxr-xr-xbeagle/debian-rfs/sbin/installkernel79
1 files changed, 79 insertions, 0 deletions
diff --git a/beagle/debian-rfs/sbin/installkernel b/beagle/debian-rfs/sbin/installkernel
new file mode 100755
index 0000000..cbb4444
--- /dev/null
+++ b/beagle/debian-rfs/sbin/installkernel
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# Copyright (C) 1995 - 1998, Ian A. Murdock <imurdock@debian.org>
+# Copyright (C) 1998, 1999, Guy Maor
+# Copyright (C) 2002, Matthew Wilcox
+# Copyright (C) 2002, 2004, 2005, 2007, 2009 Clint Adams
+# Copyright (C) 2009 Manoj Srivasta
+#
+# Install the kernel on a Debian Linux system.
+#
+# This script is called from /usr/src/linux/arch/i386/boot/install.sh.
+# If you install it as /sbin/installkernel, you can do a "make install"
+# from a generic kernel source tree, and the image will be installed to
+# the proper place for Debian GNU/Linux.
+
+set -e
+
+# Parse the command line options. Of course, powerpc has to be all
+# different, and passes in a fifth argument, just because it is
+# "special". We ignore the fifth argument, and do not flag is as an
+# error, which it would be for any arch apart from powerpc
+if [ $# -eq 3 ] || [ $# -eq 4 ] || [ $# -eq 5 ] ; then
+ img="$2"
+ map="$3"
+ ver="$1"
+ if [ $# -ge 4 ] && [ -n "$4" ] ; then
+ dir="$4"
+ else
+ dir="/boot"
+ fi
+else
+ echo "Usage: installkernel <version> <image> <System.map> <directory>"
+ exit 1
+fi
+
+# Create backups of older versions before installing
+updatever () {
+ if [ -f "$dir/$1-$ver" ] ; then
+ mv "$dir/$1-$ver" "$dir/$1-$ver.old"
+ fi
+
+ cat "$2" > "$dir/$1-$ver"
+
+ # This section is for backwards compatibility only
+ if test -f "$dir/$1" ; then
+ # The presence of "$dir/$1" is unusual in modern intallations, and
+ # the results are mostly unused. So only recreate them if they
+ # already existed.
+ if test -L "$dir/$1" ; then
+ # If we were using links, continue to use links, updating if
+ # we need to.
+ if [ "$(readlink -f ${dir}/${1})" = "${dir}/${1}-${ver}" ]; then
+ # Yup, we need to change
+ ln -sf "$1-$ver.old" "$dir/$1.old"
+ else
+ mv "$dir/$1" "$dir/$1.old"
+ fi
+ ln -sf "$1-$ver" "$dir/$1"
+ else # No links
+ mv "$dir/$1" "$dir/$1.old"
+ cat "$2" > "$dir/$1"
+ fi
+ fi
+}
+
+if [ "$(basename $img)" = "vmlinux" ] ; then
+ updatever vmlinux "$img"
+else
+ updatever vmlinuz "$img"
+fi
+updatever System.map "$map"
+
+config=$(dirname "$map")
+config="${config}/.config"
+if [ -f "$config" ] ; then
+ updatever config "$config"
+fi
+
+exit 0