5 print_info 1 'Creating minimal kernel package'
6 rm -rf "${TEMP}/minkernpackage" > /dev/null 2>&1
7 mkdir "${TEMP}/minkernpackage" || gen_die 'Could not make a directory for the kernel package!'
8 if [ "${CMD_KERNCACHE}" != "" ]
10 /bin/tar -xj -C ${TEMP}/minkernpackage -f ${CMD_KERNCACHE} kernel-${ARCH}-${KV}
11 /bin/tar -xj -C ${TEMP}/minkernpackage -f ${CMD_KERNCACHE} config-${ARCH}-${KV}
12 if [ "${KERNEL_BINARY_2}" != '' -a "${GENERATE_Z_IMAGE}" = '1' ]
14 /bin/tar -xj -C ${TEMP}/minkernpackage -f ${CMD_KERNCACHE} kernelz-${ARCH}-${KV}
18 cp "${KERNEL_BINARY}" "${TEMP}/minkernpackage/kernel-${KV}" || gen_die 'Could not the copy kernel for the min kernel package!'
19 cp ".config" "${TEMP}/minkernpackage/config-${ARCH}-${KV}" || gen_die 'Could not the copy kernel config for the min kernel package!'
20 if [ "${KERNEL_BINARY_2}" != '' -a "${GENERATE_Z_IMAGE}" = '1' ]
22 cp "${KERNEL_BINARY_2}" "${TEMP}/minkernpackage/kernelz-${KV}" || gen_die "Could not copy the kernelz for the min kernel package"
27 if [ "${GENERATE_Z_IMAGE}" != '1' ]
29 if [ "${KERN_24}" != '1' -a "${CMD_BOOTSPLASH}" != '1' ]
31 [ "${BUILD_INITRD}" -ne 0 ] && { cp "${TMPDIR}/initramfs-${KV}" "${TEMP}/minkernpackage/initramfs-${ARCH}-${KV}" || gen_die 'Could not copy the initramfs for the kernel package!'; }
33 [ "${BUILD_INITRD}" -ne 0 ] && { cp "${TMPDIR}/initrd-${KV}" "${TEMP}/minkernpackage/initrd-${ARCH}-${KV}" || gen_die 'Could not copy the initrd for the kernel package!'; }
37 cp "${TMPDIR}/System.map-${KV}" "${TEMP}/minkernpackage/System.map-${ARCH}-${KV}" || gen_die 'Could not copy System.map for the kernel package!';
39 cd "${TEMP}/minkernpackage"
40 /bin/tar -jcpf ${MINKERNPACKAGE} * || gen_die 'Could not compress the kernel package!'
41 cd "${TEMP}" && rm -rf "${TEMP}/minkernpackage" > /dev/null 2>&1
45 print_info 1 'Creating modules package'
46 rm -rf "${TEMP}/modulespackage" > /dev/null 2>&1
47 mkdir "${TEMP}/modulespackage" || gen_die 'Could not make a directory for the kernel package!'
49 if [ -d ${INSTALL_MOD_PATH}/lib/modules/${KV} ]
51 mkdir -p ${TEMP}/modulespackage/lib/modules
52 cp -r "${INSTALL_MOD_PATH}/lib/modules/${KV}" "${TEMP}/modulespackage/lib/modules"
53 cd "${TEMP}/modulespackage"
54 /bin/tar -jcpf ${MODULESPACKAGE} * || gen_die 'Could not compress the modules package!'
56 print_info 1 "Could not create a modules package ${INSTALL_MOD_PATH}/lib/modules/${KV} was not found"
58 cd "${TEMP}" && rm -rf "${TEMP}/modulespackage" > /dev/null 2>&1
62 print_info 1 'Creating kernel cache'
63 rm -rf "${TEMP}/kerncache" > /dev/null 2>&1
64 mkdir "${TEMP}/kerncache" || gen_die 'Could not make a directory for the kernel cache!'
66 cp "${KERNEL_BINARY}" "${TEMP}/kerncache/kernel-${ARCH}-${KV}" || gen_die 'Could not the copy kernel for the kernel package!'
67 cp "${KERNEL_DIR}/.config" "${TEMP}/kerncache/config-${ARCH}-${KV}"
68 cp "${KERNEL_DIR}/System.map" "${TEMP}/kerncache/System.map-${ARCH}-${KV}"
69 if [ "${KERNEL_BINARY_2}" != '' -a "${GENERATE_Z_IMAGE}" = '1' ]
71 cp "${KERNEL_BINARY_2}" "${TEMP}/kerncache/kernelz-${ARCH}-${KV}" || gen_die "Could not copy the kernelz for the kernel package"
74 echo "VERSION = ${VER}" > "${TEMP}/kerncache/kerncache.config"
75 echo "PATCHLEVEL = ${PAT}" >> "${TEMP}/kerncache/kerncache.config"
76 echo "SUBLEVEL = ${SUB}" >> "${TEMP}/kerncache/kerncache.config"
77 echo "EXTRAVERSION = ${EXV}" >> "${TEMP}/kerncache/kerncache.config"
79 mkdir -p "${TEMP}/kerncache/lib/modules/"
81 if [ -d ${INSTALL_MOD_PATH}/lib/modules/${KV} ]
83 cp -r "${INSTALL_MOD_PATH}/lib/modules/${KV}" "${TEMP}/kerncache/lib/modules"
86 cd "${TEMP}/kerncache"
87 /bin/tar -jcpf ${KERNCACHE} * || gen_die 'Could not compress the kernel package!'
88 cd "${TEMP}" && rm -rf "${TEMP}/kerncache" > /dev/null 2>&1
91 gen_kerncache_extract_kernel()
93 /bin/tar -f ${KERNCACHE} -C ${TEMP} -xj
94 copy_image_with_preserve "kernel" \
95 "${TEMP}/kernel-${ARCH}-${KV}" \
96 "kernel-${KNAME}-${ARCH}-${KV}"
98 if [ "${KERNEL_BINARY_2}" != '' -a "${GENERATE_Z_IMAGE}" = '1' ]
100 copy_image_with_preserve "kernelz" \
101 "${TEMP}/kernelz-${ARCH}-${KV}" \
102 "kernelz-${KNAME}-${ARCH}-${KV}"
105 copy_image_with_preserve "System.map" \
106 "${TEMP}/System.map-${ARCH}-${KV}" \
107 "System.map-${KNAME}-${ARCH}-${KV}"
110 gen_kerncache_extract_modules()
112 if [ -e "${KERNCACHE}" ]
114 print_info 1 'Extracting kerncache kernel modules'
115 if [ "${INSTALL_MOD_PATH}" != '' ]
117 /bin/tar -xjf ${KERNCACHE} -C ${INSTALL_MOD_PATH} lib
119 /bin/tar -xjf ${KERNCACHE} -C / lib
124 gen_kerncache_extract_config()
126 if [ -e "${KERNCACHE}" ]
128 print_info 1 'Extracting kerncache config to /etc/kernels'
129 mkdir -p /etc/kernels
130 /bin/tar -xjf ${KERNCACHE} -C /etc/kernels config-${ARCH}-${KV}
131 mv /etc/kernels/config-${ARCH}-${KV} /etc/kernels/kernel-config-${ARCH}-${KV}
135 gen_kerncache_is_valid()
138 if [ "${CMD_NO_KERNEL_SOURCES}" = '1' ]
142 # Can make this more secure ....
144 /bin/tar -xj -f ${KERNCACHE} -C ${TEMP}
145 if [ -e ${TEMP}/config-${ARCH}-${KV} -a -e ${TEMP}/kernel-${ARCH}-${KV} ]
147 print_info 1 'Valid kernel cache found; no sources will be used'
151 if [ -e "${KERNCACHE}" ]
153 /bin/tar -xj -f ${KERNCACHE} -C ${TEMP}
154 if [ -e ${TEMP}/config-${ARCH}-${KV} -a -e /${KERNEL_DIR}/.config ]
157 test1=$(md5sum ${TEMP}/config-${ARCH}-${KV} | cut -d " " -f 1)
158 test2=$(md5sum /${KERNEL_DIR}/.config | cut -d " " -f 1)
159 if [ "${test1}" == "${test2}" ]
163 print_info 1 "No kernel configuration change, skipping kernel build..."
170 export KERNCACHE_IS_VALID