aboutsummaryrefslogtreecommitdiffstats
path: root/main/installkernel/installkernel
blob: 3b33a9b87b99ef2b57bea0ffa4ea5df9345efb90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh

set -e

if [ $# -eq 3 ] || [ $# -eq 4 ]; then
	kernelrelease="$1"
	bootimage="$2"
	mapfile="$3"
	destdir="${4:-/boot}"
else
	echo "Usage: installkernel <version> <image> <System.map> <directory>"
	exit 1
fi


mapdir=$(dirname "$mapfile")
config="$mapdir"/.config


suffix=
flavor=${kernelrelease##*[0-9]-}
if [ "$flavor" != "$kernelrelease" ]; then
	suffix=-$flavor
fi

for i in vmlinuz${suffix} System.map${suffix} config${suffix}; do
	if [ -e "$destdir"/$i ]; then
		cp "$destdir"/$i "$destdir"/$i.old
	fi
done

cp "$bootimage" "$destdir"/vmlinuz${suffix}
cp "$mapfile" "$destdir"/System.map-${kernelrelease}
cp "$config" "$destdir"/config-${kernelrelease}

destdir_root="${destdir%/boot}"
if [ "$destdir_root" != "$destdir" ]; then
	moddir="$destdir_root/lib/modules/$kernelrelease"
	mkdir -p "$moddir"
	if ! [ -e "$moddir"/kernel-suffix ]; then
		echo "$suffix" > "$moddir"/kernel-suffix
	fi
fi

exit 0