blob: c1076ce19995d620b886f139e5d3348ed574a73e (
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#!/bin/bash -e
# debirf module: install-kernel
# install a kernel package, indicated by the expected environment
# variables:
# DEBIRF_PATH
# DEBIRF_ROOT
# DEBIRF_KERNEL_PACKAGE
#
# *** REQUIRED MODULE ***
# WARNING: this module is necessary for proper functioning of debirf.
#
# The debirf scripts were written by
# Jameson Rollins <jrollins@fifthhorseman.net>
# and
# Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
#
# They are Copyright 2007, and are all released under the GPL,
# version 3 or later.
# clear out old modules if they exist, to avoid confusion
rm -rf "$DEBIRF_ROOT/lib/modules"
# download/copy in kernel package
if [ -z "$DEBIRF_KERNEL_PACKAGE" ] ; then
# determine kernel to install. assume arch of build host.
# determine kernel arch. need everything after the kernel version
# and debian version
if [ -z "$DEBIRF_KERNEL_ARCH" ]; then
KARCH=$(uname -r | cut -d- -f3-)
else
KARCH="$DEBIRF_KERNEL_ARCH"
fi
# determine the full kernel version from the dependency of the
# generic 2.6-ARCH package in the debirf root (since it may be
# different than what is installed on the build host)
KNAME=$(debirf_exec apt-cache show linux-image-2.6-"$KARCH" | grep '^Depends: ' | sed 's/^Depends: //')
# download only the desired kernel package directly into the apt
# cache for dpkg extraction
debirf_exec sh -c "cd /var/cache/apt/archives/ && aptitude download \"$KNAME\""
else
# install kernel deb if given at command line
debirf_exec sh -c "cd /var/cache/apt/archives/ && aptitude download \"$DEBIRF_KERNEL_PACKAGE\""
fi
KPKG=$(basename "$DEBIRF_ROOT"/var/cache/apt/archives/linux-image-2.6.*)
echo "extracting kernel package $KPKG..."
debirf_exec dpkg --extract /var/cache/apt/archives/"$KPKG" /
# install the module init tools, since they are needed for depmod
debirf_exec apt-get --assume-yes install module-init-tools
# depmod to create module list
KVERS=$(ls -1 -t "$DEBIRF_ROOT/lib/modules" | head -n1)
echo "generating modules.dep..."
debirf_exec depmod -a "$KVERS"
# extract kernel and debian stock initrd from the build root:
mv "$DEBIRF_ROOT"/boot/vmlinu* "$DEBIRF_BUILDD"
# remove kernel symlinks
if [ -L "$DEBIRF_ROOT"/vmlinuz ] ; then
rm "$DEBIRF_BUILDD"/vmlinuz
fi
|