blob: 70e2e9ad133aa0c85d6143b2b6b4a3f6fa658ec1 (
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
#!/bin/bash
gen_minkernpackage()
{
print_info 1 'Creating minimal kernel package'
rm -rf "${TEMP}/minkernpackage" > /dev/null 2>&1
mkdir "${TEMP}/minkernpackage" || gen_die 'Could not make a directory for the kernel package!'
if [ "${CMD_KERNCACHE}" != "" ]
then
/bin/tar -xj -C ${TEMP}/minkernpackage -f ${CMD_KERNCACHE} kernel-${ARCH}-${KV}
/bin/tar -xj -C ${TEMP}/minkernpackage -f ${CMD_KERNCACHE} config-${ARCH}-${KV}
else
cd "${KERNEL_DIR}"
cp "${KERNEL_BINARY}" "${TEMP}/minkernpackage/kernel-${KV}" || gen_die 'Could not the copy kernel for the min kernel package!'
cp ".config" "${TEMP}/minkernpackage/config-${ARCH}-${KV}" || gen_die 'Could not the copy kernel config for the min kernel package!'
fi
if [ "${KERN_24}" != '1' -a "${CMD_BOOTSPLASH}" != '1' ]
then
[ "${BUILD_INITRD}" -ne 0 ] && { cp "${TEMP}/initramfs-${KV}" "${TEMP}/minkernpackage/initramfs-${ARCH}-${KV}" || gen_die 'Could not copy the initramfs for the kernel package!'; }
else
[ "${BUILD_INITRD}" -ne 0 ] && { cp "${TEMP}/initrd-${KV}" "${TEMP}/minkernpackage/initrd-${ARCH}-${KV}" || gen_die 'Could not copy the initrd for the kernel package!'; }
fi
cd "${TEMP}/minkernpackage"
/bin/tar -jcpf ${MINKERNPACKAGE} * || gen_die 'Could not compress the kernel package!'
cd "${TEMP}" && rm -rf "${TEMP}/minkernpackage" > /dev/null 2>&1
}
gen_modulespackage()
{
print_info 1 'Creating modules package'
rm -rf "${TEMP}/modulespackage" > /dev/null 2>&1
mkdir "${TEMP}/modulespackage" || gen_die 'Could not make a directory for the kernel package!'
if [ -d ${INSTALL_MOD_PATH}/lib/modules/${KV} ]
then
mkdir -p ${TEMP}/modulespackage/lib/modules
cp -r "${INSTALL_MOD_PATH}/lib/modules/${KV}" "${TEMP}/modulespackage/lib/modules"
cd "${TEMP}/modulespackage"
/bin/tar -jcpf ${MODULESPACKAGE} * || gen_die 'Could not compress the modules package!'
else
print_info 1 "Could not create a modules package ${INSTALL_MOD_PATH}/lib/modules/${KV} was not found"
fi
cd "${TEMP}" && rm -rf "${TEMP}/modulespackage" > /dev/null 2>&1
}
gen_kerncache()
{
print_info 1 'Creating kernel cache'
rm -rf "${TEMP}/kerncache" > /dev/null 2>&1
mkdir "${TEMP}/kerncache" || gen_die 'Could not make a directory for the kernel cache!'
cd "${KERNEL_DIR}"
cp "${KERNEL_BINARY}" "${TEMP}/kerncache/kernel-${ARCH}-${KV}" || gen_die 'Could not the copy kernel for the kernel package!'
cp "${KERNEL_DIR}/.config" "${TEMP}/kerncache/config-${ARCH}-${KV}"
cp "${KERNEL_DIR}/System.map" "${TEMP}/kerncache/System.map-${ARCH}-${KV}"
echo "VERSION = ${VER}" > "${TEMP}/kerncache/kerncache.config"
echo "PATCHLEVEL = ${PAT}" >> "${TEMP}/kerncache/kerncache.config"
echo "SUBLEVEL = ${SUB}" >> "${TEMP}/kerncache/kerncache.config"
echo "EXTRAVERSION = ${EXV}" >> "${TEMP}/kerncache/kerncache.config"
mkdir -p "${TEMP}/kerncache/lib/modules/"
if [ -d ${INSTALL_MOD_PATH}/lib/modules/${KV} ]
then
cp -r "${INSTALL_MOD_PATH}/lib/modules/${KV}" "${TEMP}/kerncache/lib/modules"
fi
cd "${TEMP}/kerncache"
/bin/tar -jcpf ${KERNCACHE} * || gen_die 'Could not compress the kernel package!'
cd "${TEMP}" && rm -rf "${TEMP}/kerncache" > /dev/null 2>&1
}
gen_kerncache_extract_kernel()
{
[ -d ${tmp} ] && gen_die "temporary directory already exists! Exiting."
(umask 077 && mkdir ${tmp}) || {
gen_die "Could not create temporary directory! Exiting."
}
/bin/tar -f ${KERNCACHE} -C ${tmp} -xj
cp "${tmp}/kernel-${ARCH}-${KV}" "/boot/kernel-${KNAME}-${ARCH}-${KV}" || {
rm -r ${tmp}
gen_die 'Could not copy the kernel binary to /boot!'
}
cp "${tmp}/System.map-${ARCH}-${KV}" "/boot/System.map-${KNAME}-${ARCH}-${KV}" || {
rm -r ${tmp}
gen_die 'Could not copy System.map to /boot!'
}
rm -r ${tmp}
}
gen_kerncache_extract_modules()
{
if [ -e "${KERNCACHE}" ]
then
print_info 1 'Extracting kerncache kernel modules'
if [ "${INSTALL_MOD_PATH}" != '' ]
then
/bin/tar -xjf ${KERNCACHE} -C ${INSTALL_MOD_PATH} lib
else
/bin/tar -xjf ${KERNCACHE} -C / lib
fi
fi
}
gen_kerncache_is_valid()
{
KERNCACHE_IS_VALID=0
if [ "${CMD_NO_KERNEL_SOURCES}" = '1' ]
then
BUILD_KERNEL=0
# Can make this more secure ....
[ -d ${tmp} ] && gen_die "temporary directory already exists! Exiting."
(umask 077 && mkdir ${tmp}) || {
gen_die "Could not create temporary directory! Exiting."
}
/bin/tar -xj -f ${KERNCACHE} -C ${tmp}
if [ -e ${tmp}/config-${ARCH}-${KV} -a -e ${tmp}/kernel-${ARCH}-${KV} ]
then
print_info 1 'Valid kernel cache found; no sources will be used'
KERNCACHE_IS_VALID=1
fi
/bin/rm -r ${tmp}
else
if [ -e "${KERNCACHE}" ]
then
[ -d ${tmp} ] && gen_die "temporary directory already exists! Exiting."
(umask 077 && mkdir ${tmp}) || {
gen_die "Could not create temporary directory! Exiting."
}
/bin/tar -xj -f ${KERNCACHE} -C ${tmp}
if [ -e ${tmp}/config-${ARCH}-${KV} -a -e /${KERNEL_DIR}/.config ]
then
test1=$(md5sum ${tmp}/config-${ARCH}-${KV} | cut -d " " -f 1)
test2=$(md5sum /${KERNEL_DIR}/.config | cut -d " " -f 1)
if [ "${test1}" == "${test2}" ]
then
echo
print_info 1 "No kernel configuration change, skipping kernel build..."
echo
KERNCACHE_IS_VALID=1
fi
fi
/bin/rm -r ${tmp}
fi
fi
export KERNCACHE_IS_VALID
return 1
}
|