1 |
commit: 769a07fd3e947ffb216ea94887d752a27ea212d9 |
2 |
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Jul 28 14:33:25 2019 +0000 |
4 |
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jul 29 20:00:24 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=769a07fd |
7 |
|
8 |
Make initramfs and kernel filename customizable |
9 |
|
10 |
New options like --initramfs-filename or --kernel-filename will |
11 |
allow user to customize filenames used when installing initramfs |
12 |
or kernel into $BOOTDIR. Therefore --kernelname (KNAME) option |
13 |
was removed. |
14 |
|
15 |
Filename can contain placeholders like '%%ARCH%%' which will get |
16 |
replaced at runtime. Man page contains more information. |
17 |
|
18 |
Bug: https://bugs.gentoo.org/395095 |
19 |
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> |
20 |
|
21 |
defaults/config.sh | 7 +++ |
22 |
doc/genkernel.8.txt | 90 +++++++++++++++++++++++---- |
23 |
gen_bootloader.sh | 12 ++-- |
24 |
gen_cmdline.sh | 40 ++++++++++-- |
25 |
gen_compile.sh | 26 ++++---- |
26 |
gen_configkernel.sh | 2 +- |
27 |
gen_determineargs.sh | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++- |
28 |
gen_funcs.sh | 7 +++ |
29 |
gen_initramfs.sh | 10 +-- |
30 |
gen_package.sh | 98 +++++++++++++++-------------- |
31 |
genkernel | 33 +++++----- |
32 |
genkernel.conf | 22 +++++-- |
33 |
12 files changed, 407 insertions(+), 109 deletions(-) |
34 |
|
35 |
diff --git a/defaults/config.sh b/defaults/config.sh |
36 |
index 3546299..7232671 100644 |
37 |
--- a/defaults/config.sh |
38 |
+++ b/defaults/config.sh |
39 |
@@ -21,6 +21,13 @@ KERNEL_SUPPORT_MICROCODE=no |
40 |
# Arch-specific defaults that can be overridden in the config file or on the |
41 |
# command line. |
42 |
# |
43 |
+DEFAULT_INITRAMFS_FILENAME="initramfs-genkernel-%%ARCH%%-%%KV%%" |
44 |
+DEFAULT_INITRAMFS_SYMLINK_NAME="initramfs" |
45 |
+DEFAULT_KERNEL_FILENAME="kernel-genkernel-%%ARCH%%-%%KV%%" |
46 |
+DEFAULT_KERNEL_SYMLINK_NAME="kernel" |
47 |
+DEFAULT_SYSTEMMAP_FILENAME="System.map-%%ARCH%%-%%KV%%" |
48 |
+DEFAULT_SYSTEMMAP_SYMLINK_NAME="System.map" |
49 |
+ |
50 |
DEFAULT_COMPRESS_INITRD=yes |
51 |
DEFAULT_COMPRESS_INITRD_TYPE=best |
52 |
|
53 |
|
54 |
diff --git a/doc/genkernel.8.txt b/doc/genkernel.8.txt |
55 |
index f1ccbe6..e94fa12 100644 |
56 |
--- a/doc/genkernel.8.txt |
57 |
+++ b/doc/genkernel.8.txt |
58 |
@@ -150,16 +150,20 @@ KERNEL COMPILATION |
59 |
are copied over. |
60 |
|
61 |
*--*[*no-*]*symlink*:: |
62 |
- Manages, or does not manage, symlinks in '/boot' like the manual |
63 |
- kernel "make install" process does. A kernel (or, depending on |
64 |
- options, kernelz) symlink will link to the most recently built |
65 |
- kernel image and a kernel.old (or kernelz.old) symlink will link |
66 |
- to the second most recently built image, if one exists. Similar |
67 |
- symlinks (both * and *.old) are managed for initramfs and System.map. |
68 |
- The corresponding work products (i.e., the actual kernel |
69 |
- and initramfs images, and System.map) are also managed accordingly. |
70 |
- NOTE: Specifying *--symlink* does nothing unless |
71 |
- *--install* is also specified. |
72 |
+Manages, or does not manage, symlinks in '/boot' like the manual |
73 |
+kernel "make install" process does. A 'kernel' (or, depending on |
74 |
+options, 'kernelz') symlink will link to the most recently built |
75 |
+kernel image and a 'kernel.old' (or 'kernelz.old') symlink will link |
76 |
+to the second most recently built image, if one exists. Similar |
77 |
+symlinks (with and without '.old' suffix) are managed for initramfs and |
78 |
+System.map. The corresponding work products (i.e., the actual kernel |
79 |
+and initramfs images, and System.map) are also managed accordingly. |
80 |
++ |
81 |
+The symlink name can be controlled via *--kernel-symlink-name* and/or |
82 |
+*--initramfs-symlink-name* option. |
83 |
+ |
84 |
+NOTE: Specifying *--symlink* does nothing unless *--install* is also |
85 |
+specified. |
86 |
|
87 |
*--*[*no-*]*oldconfig*:: |
88 |
Runs, or does not run, "make oldconfig" before compilation. Specifying |
89 |
@@ -428,9 +432,22 @@ INTERNALS |
90 |
|
91 |
OUTPUT SETTINGS |
92 |
~~~~~~~~~~~~~~~ |
93 |
-*--kernname*=<...>:: |
94 |
- Tag the kernel and initrd with a name, if not defined this |
95 |
- option defaults to genkernel. |
96 |
+*--initramfs-filename*=<...>:: |
97 |
+Set initramfs filename which will be used when initramfs will be installed |
98 |
+into *BOOTDIR* (implies *--install* option). Please see |
99 |
+*--kernel-filename* option for available placeholders and restrictions. |
100 |
++ |
101 |
+By default, initramfs filename will be set to 'initramfs-genkernel-%%ARCH%%-%%KV%%'. |
102 |
+ |
103 |
+*--initramfs-symlink-name*=<...>:: |
104 |
+Set initramfs symlink name which will be used when initramfs will be |
105 |
+installed into *BOOTDIR* (implies *--install* option) and *--symlink* |
106 |
+option is given. Please see *--kernel-filename* option for available |
107 |
+placeholders and restrictions. |
108 |
++ |
109 |
+By default, initramfs symlink name will be set to 'initramfs'. |
110 |
+ |
111 |
+NOTE: Initramfs filename and initramfs symlink name must be different. |
112 |
|
113 |
*--minkernpackage*=<file>:: |
114 |
Archive file created using tar containing kernel and initramfs. |
115 |
@@ -445,11 +462,58 @@ NOTE: No modules outside of the initramfs will be included! |
116 |
Archive file created using tar containing kernel binary, content of |
117 |
'/lib/modules' and the kernel config after the callbacks have run. |
118 |
|
119 |
+*--kernel-filename*=<...>:: |
120 |
+Set kernel filename which will be used when kernel will be installed |
121 |
+into *BOOTDIR* (implies *--install* option). The following placeholders |
122 |
+are available: |
123 |
++ |
124 |
+[horizontal] |
125 |
+*%%ARCH%%*::: |
126 |
+Will be replaced with genkernel arch value, for example 'x86_64'. |
127 |
+*%%KV%%*::: |
128 |
+Will be replaced with kernel version, for example '5.2.3-gentoo'. |
129 |
+ |
130 |
++ |
131 |
+Kernel filename is only allowed to contain characters like 'a-z' or 'A-Z', |
132 |
+'0-9', '_', '.' and '-'. |
133 |
++ |
134 |
+By default, kernel name will be set to 'kernel-genkernel-%%ARCH%%-%%KV%%'. |
135 |
+ |
136 |
+NOTE: When setting a custom kernel name make sure that your bootloader and |
137 |
+tools like *kexec* when used are recognizing your custom kernel name. |
138 |
+ |
139 |
*--*[*no-*]*kernel-sources*:: |
140 |
This option is only valid if kerncache is defined If there is a |
141 |
valid kerncache no checks will be made against a kernel source |
142 |
tree. |
143 |
|
144 |
+*--kernel-symlink-name*=<...>:: |
145 |
+Set kernel symlink name which will be used when kernel will be installed |
146 |
+into *BOOTDIR* (implies *--install* option) and *--symlink* option is |
147 |
+given. Please see *--kernel-filename* option for available placeholders |
148 |
+and restrictions. |
149 |
++ |
150 |
+By default, kernel symlink name will be set to 'kernel'. |
151 |
+ |
152 |
+NOTE: Kernel filename and kernel symlink name must be different. |
153 |
+ |
154 |
+*--systemmap-filename*=<...>:: |
155 |
+Set System.map filename which will be used when kernel will be installed |
156 |
+into *BOOTDIR* (implies *--install* option). Please see |
157 |
+*--kernel-filename* option for available placeholders and restrictions. |
158 |
++ |
159 |
+By default, System.map filename will be set to 'System.map-genkernel-%%ARCH%%-%%KV%%'. |
160 |
+ |
161 |
+*--systemmap-symlink-name*=<...>:: |
162 |
+Set System.map symlink name which will be used when kernel will be |
163 |
+installed into *BOOTDIR* (implies *--install* option) and *--symlink* |
164 |
+option is given. Please see *--kernel-filename* option for available |
165 |
+placeholders and restrictions. |
166 |
++ |
167 |
+By default, System.map symlink name will be set to 'System.map'. |
168 |
+ |
169 |
+NOTE: System.map filename and System.map symlink name must be different. |
170 |
+ |
171 |
*--initramfs-overlay*=<dir>:: |
172 |
Directory structure to include in the initramfs, only available |
173 |
on >=2.6 kernels. |
174 |
|
175 |
diff --git a/gen_bootloader.sh b/gen_bootloader.sh |
176 |
index b215cd8..5202047 100755 |
177 |
--- a/gen_bootloader.sh |
178 |
+++ b/gen_bootloader.sh |
179 |
@@ -102,12 +102,12 @@ set_bootloader_grub() { |
180 |
# Add grub configuration to grub.conf |
181 |
echo "# Genkernel generated entry, see GRUB documentation for details" >> ${GRUB_CONF} |
182 |
echo "title=Gentoo Linux ($KV)" >> ${GRUB_CONF} |
183 |
- printf "%b\n" "\tkernel /kernel-${KNAME}-${ARCH}-${KV} root=${GRUB_ROOTFS}" >> ${GRUB_CONF} |
184 |
+ printf "%b\n" "\tkernel /${GK_FILENAME_KERNEL} root=${GRUB_ROOTFS}" >> ${GRUB_CONF} |
185 |
if isTrue "${BUILD_RAMDISK}" |
186 |
then |
187 |
if [ "${PAT}" -gt '4' ] |
188 |
then |
189 |
- printf "%b\n" "\tinitrd /initramfs-${KNAME}-${ARCH}-${KV}" >> ${GRUB_CONF} |
190 |
+ printf "%b\n" "\tinitrd /${GK_FILENAME_INITRAMFS}" >> ${GRUB_CONF} |
191 |
fi |
192 |
fi |
193 |
echo >> ${GRUB_CONF} |
194 |
@@ -129,14 +129,14 @@ set_bootloader_grub() { |
195 |
} |
196 |
|
197 |
set_bootloader_grub_duplicate_default_replace_kernel_initrd() { |
198 |
- sed -r -e "/^[[:space:]]*kernel/s/kernel-[[:alnum:][:punct:]]+/kernel-${KNAME}-${ARCH}-${KV}/" - | |
199 |
- sed -r -e "/^[[:space:]]*initrd/s/init(rd|ramfs)-[[:alnum:][:punct:]]+/init\1-${KNAME}-${ARCH}-${KV}/" |
200 |
+ sed -r -e "/^[[:space:]]*kernel/s/kernel-[[:alnum:][:punct:]]+/${GK_FILENAME_KERNEL}/" - | |
201 |
+ sed -r -e "/^[[:space:]]*initrd/s/init(rd|ramfs)-[[:alnum:][:punct:]]+/${GK_FILENAME_INITRAMFS}/" |
202 |
} |
203 |
|
204 |
set_bootloader_grub_check_for_existing_entry() { |
205 |
local GRUB_CONF=$1 |
206 |
- if grep -q "^[[:space:]]*kernel[[:space:]=]*.*/kernel-${KNAME}-${ARCH}-${KV}\([[:space:]]\|$\)" "${GRUB_CONF}" && |
207 |
- grep -q "^[[:space:]]*initrd[[:space:]=]*.*/initramfs-${KNAME}-${ARCH}-${KV}\([[:space:]]\|$\)" "${GRUB_CONF}" |
208 |
+ if grep -q "^[[:space:]]*kernel[[:space:]=]*.*/${GK_FILENAME_KERNEL}\([[:space:]]\|$\)" "${GRUB_CONF}" && |
209 |
+ grep -q "^[[:space:]]*initrd[[:space:]=]*.*/${GK_FILENAME_INITRAMFS}\([[:space:]]\|$\)" "${GRUB_CONF}" |
210 |
then |
211 |
return 0 |
212 |
fi |
213 |
|
214 |
diff --git a/gen_cmdline.sh b/gen_cmdline.sh |
215 |
index 5d62a64..6fbf309 100755 |
216 |
--- a/gen_cmdline.sh |
217 |
+++ b/gen_cmdline.sh |
218 |
@@ -182,8 +182,10 @@ longusage() { |
219 |
echo " --postclear Clear all tmp files and caches after genkernel has run" |
220 |
echo " --no-postclear Do not clean up after genkernel has run" |
221 |
echo " Output Settings" |
222 |
- echo " --kernname=<...> Tag the kernel and initramfs with a name; If not defined" |
223 |
- echo " the option defaults to 'genkernel'" |
224 |
+ echo " --kernel-filename=<...>" |
225 |
+ echo " Set kernel filename" |
226 |
+ echo " --kernel-symlink-name=<...>" |
227 |
+ echo " Set kernel symlink name" |
228 |
echo " --minkernpackage=<archive>" |
229 |
echo " Archive file created using tar containing kernel and" |
230 |
echo " initramfs" |
231 |
@@ -196,9 +198,13 @@ longusage() { |
232 |
echo " --no-kernel-sources This option is only valid if kerncache is" |
233 |
echo " defined. If there is a valid kerncache no checks" |
234 |
echo " will be made against a kernel source tree" |
235 |
+ echo " --initramfs-filename=<...>" |
236 |
+ echo " Set initramfs filename" |
237 |
echo " --initramfs-overlay=<dir>" |
238 |
echo " Directory structure to include in the initramfs," |
239 |
echo " only available on 2.6 kernels" |
240 |
+ echo " --initramfs-symlink-name=<...>" |
241 |
+ echo " Set initramfs symlink name" |
242 |
echo " --firmware Enable copying of firmware into initramfs" |
243 |
echo " --firmware-dir=<dir>" |
244 |
echo " Specify directory to copy firmware from (defaults" |
245 |
@@ -229,6 +235,10 @@ longusage() { |
246 |
echo " Strip debug symbols from none, all, installed kernel (obsolete) or" |
247 |
echo " modules (default)" |
248 |
echo " --no-strip Don't strip installed kernel or modules, alias for --strip=none" |
249 |
+ echo " --systemmap-filename=<...>" |
250 |
+ echo " Set System.map filename" |
251 |
+ echo " --systemmap-symlink-name=<...>" |
252 |
+ echo " Set System.map symlink name" |
253 |
echo |
254 |
echo "For a detailed list of supported initramfs options and flags; issue:" |
255 |
echo " man 8 genkernel" |
256 |
@@ -670,9 +680,13 @@ parse_cmdline() { |
257 |
CMD_KERNCACHE="${*#*=}" |
258 |
print_info 3 "KERNCACHE: ${CMD_KERNCACHE}" |
259 |
;; |
260 |
- --kernname=*) |
261 |
- CMD_KERNNAME="${*#*=}" |
262 |
- print_info 3 "KERNNAME: ${CMD_KERNNAME}" |
263 |
+ --kernel-filename=*) |
264 |
+ CMD_KERNEL_FILENAME="${*#*=}" |
265 |
+ print_info 3 "CMD_KERNEL_FILENAME: ${CMD_KERNEL_FILENAME}" |
266 |
+ ;; |
267 |
+ --kernel-symlink-name=*) |
268 |
+ CMD_KERNEL_SYMLINK_NAME="${*#*=}" |
269 |
+ print_info 3 "CMD_KERNEL_SYMLINK_NAME: ${CMD_KERNEL_SYMLINK_NAME}" |
270 |
;; |
271 |
--symlink|--no-symlink) |
272 |
CMD_SYMLINK=$(parse_optbool "$*") |
273 |
@@ -682,10 +696,26 @@ parse_cmdline() { |
274 |
CMD_KERNEL_SOURCES=$(parse_optbool "$*") |
275 |
print_info 3 "CMD_KERNEL_SOURCES: ${CMD_KERNEL_SOURCES}" |
276 |
;; |
277 |
+ --initramfs-filename=*) |
278 |
+ CMD_INITRAMFS_FILENAME="${*#*=}" |
279 |
+ print_info 3 "CMD_INITRAMFS_FILENAME: ${CMD_INITRAMFS_FILENAME}" |
280 |
+ ;; |
281 |
--initramfs-overlay=*) |
282 |
CMD_INITRAMFS_OVERLAY="${*#*=}" |
283 |
print_info 3 "CMD_INITRAMFS_OVERLAY: ${CMD_INITRAMFS_OVERLAY}" |
284 |
;; |
285 |
+ --initramfs-symlink-name=*) |
286 |
+ CMD_INITRAMFS_SYMLINK_NAME="${*#*=}" |
287 |
+ print_info 3 "CMD_INITRAMFS_SYMLINK_NAME: ${CMD_INITRAMFS_SYMLINK_NAME}" |
288 |
+ ;; |
289 |
+ --systemmap-filename=*) |
290 |
+ CMD_SYSTEMMAP_FILENAME="${*#*=}" |
291 |
+ print_info 3 "CMD_SYSTEMMAP_FILENAME: ${CMD_SYSTEMMAP_FILENAME}" |
292 |
+ ;; |
293 |
+ --systemmap-symlink-name=*) |
294 |
+ CMD_SYSTEMMAP_SYMLINK_NAME="${*#*=}" |
295 |
+ print_info 3 "CMD_SYSTEMMAP_SYMLINK_NAME: ${CMD_SYSTEMMAP_SYMLINK_NAME}" |
296 |
+ ;; |
297 |
--linuxrc=*) |
298 |
CMD_LINUXRC="${*#*=}" |
299 |
print_info 3 "CMD_LINUXRC: ${CMD_LINUXRC}" |
300 |
|
301 |
diff --git a/gen_compile.sh b/gen_compile.sh |
302 |
index b3a8382..dd2e7d7 100755 |
303 |
--- a/gen_compile.sh |
304 |
+++ b/gen_compile.sh |
305 |
@@ -303,38 +303,38 @@ compile_kernel() { |
306 |
# if source != outputdir, we need this: |
307 |
tmp_kernel_binary="${KERNEL_OUTPUTDIR}"/"${tmp_kernel_binary}" |
308 |
tmp_kernel_binary2="${KERNEL_OUTPUTDIR}"/"${tmp_kernel_binary2}" |
309 |
- systemmap="${KERNEL_OUTPUTDIR}"/System.map |
310 |
+ local tmp_systemmap="${KERNEL_OUTPUTDIR}"/System.map |
311 |
|
312 |
if isTrue "${CMD_INSTALL}" |
313 |
then |
314 |
copy_image_with_preserve \ |
315 |
- "kernel" \ |
316 |
+ "${GK_FILENAME_KERNEL_SYMLINK}" \ |
317 |
"${tmp_kernel_binary}" \ |
318 |
- "kernel-${KNAME}-${ARCH}-${KV}" |
319 |
+ "${GK_FILENAME_KERNEL}" |
320 |
|
321 |
copy_image_with_preserve \ |
322 |
- "System.map" \ |
323 |
- "${systemmap}" \ |
324 |
- "System.map-${KNAME}-${ARCH}-${KV}" |
325 |
+ "${GK_FILENAME_SYSTEMMAP_SYMLINK}" \ |
326 |
+ "${tmp_systemmap}" \ |
327 |
+ "${GK_FILENAME_SYSTEMMAP}" |
328 |
|
329 |
if isTrue "${GENZIMAGE}" |
330 |
then |
331 |
copy_image_with_preserve \ |
332 |
"kernelz" \ |
333 |
"${tmp_kernel_binary2}" \ |
334 |
- "kernelz-${KV}" |
335 |
+ "${GK_FILENAME_KERNELZ}" |
336 |
fi |
337 |
else |
338 |
- cp "${tmp_kernel_binary}" "${TMPDIR}/kernel-${KNAME}-${ARCH}-${KV}" \ |
339 |
- || gen_die "Could not copy the kernel binary to '${TMPDIR}'!" |
340 |
+ cp "${tmp_kernel_binary}" "${TMPDIR}/${GK_FILENAME_TEMP_KERNEL}" \ |
341 |
+ || gen_die "Could not copy kernel binary '${tmp_kernel_binary}' to '${TMPDIR}'!" |
342 |
|
343 |
- cp "${systemmap}" "${TMPDIR}/System.map-${KNAME}-${ARCH}-${KV}" \ |
344 |
- || gen_die "Could not copy System.map to '${TMPDIR}'!" |
345 |
+ cp "${tmp_systemmap}" "${TMPDIR}/${GK_FILENAME_TEMP_SYSTEMMAP}" \ |
346 |
+ || gen_die "Could not copy System.map '${tmp_systemmap}' to '${TMPDIR}'!" |
347 |
|
348 |
if isTrue "${GENZIMAGE}" |
349 |
then |
350 |
- cp "${tmp_kernel_binary2}" "${TMPDIR}/kernelz-${KV}" \ |
351 |
- || gen_die "Could not copy the kernelz binary to '${TMPDIR}'!" |
352 |
+ cp "${tmp_kernel_binary2}" "${TMPDIR}/${GK_FILENAME_TEMP_KERNELZ}" \ |
353 |
+ || gen_die "Could not copy kernelz binary '${tmp_kernel_binary2}' to '${TMPDIR}'!" |
354 |
fi |
355 |
fi |
356 |
} |
357 |
|
358 |
diff --git a/gen_configkernel.sh b/gen_configkernel.sh |
359 |
index 9a33717..124852e 100755 |
360 |
--- a/gen_configkernel.sh |
361 |
+++ b/gen_configkernel.sh |
362 |
@@ -27,7 +27,7 @@ determine_kernel_config_file() { |
363 |
then |
364 |
print_info 1 "Default configuration was forced. Will ignore any user kernel configuration!" |
365 |
else |
366 |
- kconfig_candidates=( "/etc/kernels/kernel-config-${ARCH}-${KV}" ${kconfig_candidates[@]} ) |
367 |
+ kconfig_candidates=( "/etc/kernels/${GK_FILENAME_CONFIG}" ${kconfig_candidates[@]} ) |
368 |
fi |
369 |
|
370 |
local f |
371 |
|
372 |
diff --git a/gen_determineargs.sh b/gen_determineargs.sh |
373 |
index 3674cf0..2689f86 100755 |
374 |
--- a/gen_determineargs.sh |
375 |
+++ b/gen_determineargs.sh |
376 |
@@ -83,6 +83,168 @@ determine_KV() { |
377 |
fi |
378 |
} |
379 |
|
380 |
+determine_output_filenames() { |
381 |
+ print_info 5 '' 1 0 |
382 |
+ |
383 |
+ GK_FILENAME_CONFIG="kernel-config-${ARCH}-${KV}" |
384 |
+ GK_FILENAME_KERNELZ="kernelz-${KV}" |
385 |
+ GK_FILENAME_TEMP_CONFIG="config-${ARCH}-${KV}" |
386 |
+ GK_FILENAME_TEMP_INITRAMFS="initramfs-${ARCH}-${KV}" |
387 |
+ GK_FILENAME_TEMP_KERNEL="kernel-${ARCH}-${KV}" |
388 |
+ GK_FILENAME_TEMP_KERNELZ="kernelz-${ARCH}-${KV}" |
389 |
+ GK_FILENAME_TEMP_SYSTEMMAP="System.map-${ARCH}-${KV}" |
390 |
+ |
391 |
+ isTrue "${CMD_INSTALL}" || return |
392 |
+ |
393 |
+ # Do we have values? |
394 |
+ if [ -z "${KERNEL_FILENAME}" ] |
395 |
+ then |
396 |
+ gen_die "--kernel-filename must be set to a non-empty value!" |
397 |
+ elif [ -z "${KERNEL_SYMLINK_NAME}" ] |
398 |
+ then |
399 |
+ gen_die "--kernel-symlink-name must be set to a non-empty value!" |
400 |
+ elif [ -z "${SYSTEMMAP_FILENAME}" ] |
401 |
+ then |
402 |
+ gen_die "--systemmap-filename must be set to a non-empty value!" |
403 |
+ elif [ -z "${SYSTEMMAP_SYMLINK_NAME}" ] |
404 |
+ then |
405 |
+ gen_die "--systemmap-symlink-name must be set to a non-empty value!" |
406 |
+ elif [ -z "${INITRAMFS_FILENAME}" ] |
407 |
+ then |
408 |
+ gen_die "--initramfs-filename must be set to a non-empty value!" |
409 |
+ elif [ -z "${INITRAMFS_FILENAME}" ] |
410 |
+ then |
411 |
+ gen_die "--initramfs-filename must be set to a non-empty value!" |
412 |
+ fi |
413 |
+ |
414 |
+ # Kernel |
415 |
+ GK_FILENAME_KERNEL=$(arch_replace "${KERNEL_FILENAME}") |
416 |
+ GK_FILENAME_KERNEL=$(kv_replace "${GK_FILENAME_KERNEL}") |
417 |
+ |
418 |
+ if [ -z "${GK_FILENAME_KERNEL}" ] |
419 |
+ then |
420 |
+ gen_die "Internal error: Variable 'GK_FILENAME_KERNEL' is empty!" |
421 |
+ else |
422 |
+ print_info 5 "GK_FILENAME_KERNEL set to '${GK_FILENAME_KERNEL}' (was: '${KERNEL_FILENAME}')" |
423 |
+ fi |
424 |
+ |
425 |
+ # Kernel symlink |
426 |
+ GK_FILENAME_KERNEL_SYMLINK=$(arch_replace "${KERNEL_SYMLINK_NAME}") |
427 |
+ GK_FILENAME_KERNEL_SYMLINK=$(kv_replace "${GK_FILENAME_KERNEL_SYMLINK}") |
428 |
+ |
429 |
+ if [ -z "${GK_FILENAME_KERNEL_SYMLINK}" ] |
430 |
+ then |
431 |
+ gen_die "Internal error: Variable 'GK_FILENAME_KERNEL_SYMLINK' is empty!" |
432 |
+ else |
433 |
+ print_info 5 "GK_FILENAME_KERNEL_SYMLINK set to '${GK_FILENAME_KERNEL_SYMLINK}' (was: '${KERNEL_SYMLINK_NAME}')" |
434 |
+ fi |
435 |
+ |
436 |
+ if [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_KERNEL_SYMLINK}" ]] |
437 |
+ then |
438 |
+ gen_die "--kernel-filename cannot be identical with --kernel-symlink-name!" |
439 |
+ fi |
440 |
+ |
441 |
+ # System.map |
442 |
+ GK_FILENAME_SYSTEMMAP=$(arch_replace "${SYSTEMMAP_FILENAME}") |
443 |
+ GK_FILENAME_SYSTEMMAP=$(kv_replace "${GK_FILENAME_SYSTEMMAP}") |
444 |
+ |
445 |
+ if [ -z "${GK_FILENAME_SYSTEMMAP}" ] |
446 |
+ then |
447 |
+ gen_die "Internal error: Variable 'GK_FILENAME_SYSTEMMAP' is empty!" |
448 |
+ else |
449 |
+ print_info 5 "GK_FILENAME_SYSTEMMAP set to '${GK_FILENAME_SYSTEMMAP}' (was: '${SYSTEMMAP_FILENAME}')" |
450 |
+ fi |
451 |
+ |
452 |
+ # System.map symlink |
453 |
+ GK_FILENAME_SYSTEMMAP_SYMLINK=$(arch_replace "${SYSTEMMAP_SYMLINK_NAME}") |
454 |
+ GK_FILENAME_SYSTEMMAP_SYMLINK=$(kv_replace "${GK_FILENAME_SYSTEMMAP_SYMLINK}") |
455 |
+ |
456 |
+ if [ -z "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ] |
457 |
+ then |
458 |
+ gen_die "Internal error: Variable 'GK_FILENAME_SYSTEMMAP_SYMLINK' is empty!" |
459 |
+ else |
460 |
+ print_info 5 "GK_FILENAME_SYSTEMMAP_SYMLINK set to '${GK_FILENAME_SYSTEMMAP_SYMLINK}' (was: '${SYSTEMMAP_SYMLINK_NAME}')" |
461 |
+ fi |
462 |
+ |
463 |
+ if [[ "${GK_FILENAME_SYSTEMMAP}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]] |
464 |
+ then |
465 |
+ gen_die "--systemmap-filename cannot be identical with --systemmap-symlink-name!" |
466 |
+ fi |
467 |
+ |
468 |
+ # Initramfs |
469 |
+ GK_FILENAME_INITRAMFS=$(arch_replace "${INITRAMFS_FILENAME}") |
470 |
+ GK_FILENAME_INITRAMFS=$(kv_replace "${GK_FILENAME_INITRAMFS}") |
471 |
+ |
472 |
+ if [ -z "${GK_FILENAME_INITRAMFS}" ] |
473 |
+ then |
474 |
+ gen_die "Internal error: Variable 'GK_FILENAME_INITRAMFS' is empty!" |
475 |
+ else |
476 |
+ print_info 5 "GK_FILENAME_INITRAMFS set to '${GK_FILENAME_INITRAMFS}' (was: '${INITRAMFS_FILENAME}')" |
477 |
+ fi |
478 |
+ |
479 |
+ # Initramfs symlink |
480 |
+ GK_FILENAME_INITRAMFS_SYMLINK=$(arch_replace "${INITRAMFS_SYMLINK_NAME}") |
481 |
+ GK_FILENAME_INITRAMFS_SYMLINK=$(kv_replace "${GK_FILENAME_INITRAMFS_SYMLINK}") |
482 |
+ |
483 |
+ if [ -z "${GK_FILENAME_INITRAMFS_SYMLINK}" ] |
484 |
+ then |
485 |
+ gen_die "Internal error: Variable 'GK_FILENAME_INITRAMFS_SYMLINK' is empty!" |
486 |
+ else |
487 |
+ print_info 5 "GK_FILENAME_INITRAMFS_SYMLINK set to '${GK_FILENAME_INITRAMFS_SYMLINK}' (was: '${INITRAMFS_SYMLINK_NAME}')" |
488 |
+ fi |
489 |
+ |
490 |
+ if [[ "${GK_FILENAME_INITRAMFS}" == "${GK_FILENAME_INITRAMFS_SYMLINK}" ]] |
491 |
+ then |
492 |
+ gen_die "--initramfs-filename cannot be identical with --initramfs-symlink-name!" |
493 |
+ fi |
494 |
+ |
495 |
+ # Make sure we have unique filenames |
496 |
+ if [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_INITRAMFS}" ]] |
497 |
+ then |
498 |
+ gen_die "--kernel-filename cannot be identical with --initramfs-filename!" |
499 |
+ elif [[ "${GK_FILENAME_KERNEL}" == "${GK_FILENAME_SYSTEMMAP}" ]] |
500 |
+ then |
501 |
+ gen_die "--kernel-filename cannot be identical with --systemmap-filename!" |
502 |
+ elif [[ "${GK_FILENAME_INITRAMFS}" == "${GK_FILENAME_SYSTEMMAP}" ]] |
503 |
+ then |
504 |
+ gen_die "--initramfs-filename cannot be identical with --systemmap-filename!" |
505 |
+ fi |
506 |
+ |
507 |
+ if [[ "${GK_FILENAME_KERNEL_SYMLINK}" == "${GK_FILENAME_INITRAMFS_SYMLINK}" ]] |
508 |
+ then |
509 |
+ gen_die "--kernel-symlink-name cannot be identical with --initramfs-symlink-name!" |
510 |
+ elif [[ "${GK_FILENAME_KERNEL_SYMLINK}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]] |
511 |
+ then |
512 |
+ gen_die "--kernel-symlink-name cannot be identical with --systemmap-symlink-name!" |
513 |
+ elif [[ "${GK_FILENAME_INITRAMFS_SYMLINK}" == "${GK_FILENAME_SYSTEMMAP_SYMLINK}" ]] |
514 |
+ then |
515 |
+ gen_die "--initramfs-symlink-name cannot be identical with --systemmap-symlink-name!" |
516 |
+ fi |
517 |
+ |
518 |
+ local -a filename_vars |
519 |
+ filename_vars+=( 'GK_FILENAME_INITRAMFS;--initramfs-filename' ) |
520 |
+ filename_vars+=( 'GK_FILENAME_INITRAMFS_SYMLINK;--initramfs-symlink-name' ) |
521 |
+ filename_vars+=( 'GK_FILENAME_KERNEL;--kernel-filename' ) |
522 |
+ filename_vars+=( 'GK_FILENAME_KERNEL_SYMLINK;--kernel-symlink-name' ) |
523 |
+ filename_vars+=( 'GK_FILENAME_SYSTEMMAP;--systemmap-filename' ) |
524 |
+ filename_vars+=( 'GK_FILENAME_SYSTEMMAP_SYMLINK;--systemmap-symlink-name' ) |
525 |
+ |
526 |
+ local valid_filename_pattern='^[a-zA-Z0-9_.-]{1,}$' |
527 |
+ local filename_combo filename_varname filename_option |
528 |
+ |
529 |
+ for filename_combo in "${filename_vars[@]}" |
530 |
+ do |
531 |
+ filename_combo=( ${filename_combo//;/ } ) |
532 |
+ filename_varname=${filename_combo[0]} |
533 |
+ filename_option=${filename_combo[1]} |
534 |
+ |
535 |
+ if [[ ! "${!filename_varname}" =~ ${valid_filename_pattern} ]] |
536 |
+ then |
537 |
+ gen_die "${filename_varname} value '${!filename_varname}' does not match regex '${valid_filename_pattern}'. Check ${filename_option} option!" |
538 |
+ fi |
539 |
+ done |
540 |
+} |
541 |
+ |
542 |
determine_real_args() { |
543 |
# Unset known variables which will interfere with _tc-getPROG(). |
544 |
local tc_var tc_varname_build tc_vars=$(get_tc_vars) |
545 |
@@ -101,7 +263,12 @@ determine_real_args() { |
546 |
set_config_with_override STRING LOGFILE CMD_LOGFILE "/var/log/genkernel.conf" |
547 |
set_config_with_override STRING KERNEL_DIR CMD_KERNEL_DIR "${DEFAULT_KERNEL_SOURCE}" |
548 |
set_config_with_override BOOL KERNEL_SOURCES CMD_KERNEL_SOURCES "yes" |
549 |
- set_config_with_override STRING KNAME CMD_KERNNAME "genkernel" |
550 |
+ set_config_with_override STRING INITRAMFS_FILENAME CMD_INITRAMFS_FILENAME "${DEFAULT_INITRAMFS_FILENAME}" |
551 |
+ set_config_with_override STRING INITRAMFS_SYMLINK_NAME CMD_INITRAMFS_SYMLINK_NAME "${DEFAULT_INITRAMFS_SYMLINK_NAME}" |
552 |
+ set_config_with_override STRING KERNEL_FILENAME CMD_KERNEL_FILENAME "${DEFAULT_KERNEL_FILENAME}" |
553 |
+ set_config_with_override STRING KERNEL_SYMLINK_NAME CMD_KERNEL_SYMLINK_NAME "${DEFAULT_KERNEL_SYMLINK_NAME}" |
554 |
+ set_config_with_override STRING SYSTEMMAP_FILENAME CMD_SYSTEMMAP_FILENAME "${DEFAULT_SYSTEMMAP_FILENAME}" |
555 |
+ set_config_with_override STRING SYSTEMMAP_SYMLINK_NAME CMD_SYSTEMMAP_SYMLINK_NAME "${DEFAULT_SYSTEMMAP_SYMLINK_NAME}" |
556 |
|
557 |
set_config_with_override STRING CHECK_FREE_DISK_SPACE_BOOTDIR CMD_CHECK_FREE_DISK_SPACE_BOOTDIR |
558 |
set_config_with_override STRING CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR CMD_CHECK_FREE_DISK_SPACE_KERNELOUTPUTDIR |
559 |
|
560 |
diff --git a/gen_funcs.sh b/gen_funcs.sh |
561 |
index e0b679a..a1fe98a 100755 |
562 |
--- a/gen_funcs.sh |
563 |
+++ b/gen_funcs.sh |
564 |
@@ -298,6 +298,13 @@ cache_replace() { |
565 |
var_replace "CACHE" "${GK_V_CACHEDIR}" "${1}" |
566 |
} |
567 |
|
568 |
+kv_replace() { |
569 |
+ [[ ${#} -ne 1 ]] \ |
570 |
+ && gen_die "$(get_useful_function_stack "${FUNCNAME}")Invalid usage of ${FUNCNAME}(): Function takes exactly one argument (${#} given)!" |
571 |
+ |
572 |
+ var_replace "KV" "${KV}" "${1}" |
573 |
+} |
574 |
+ |
575 |
gen_die() { |
576 |
set +x |
577 |
|
578 |
|
579 |
diff --git a/gen_initramfs.sh b/gen_initramfs.sh |
580 |
index 9c07c54..fb269b8 100755 |
581 |
--- a/gen_initramfs.sh |
582 |
+++ b/gen_initramfs.sh |
583 |
@@ -1536,7 +1536,7 @@ create_initramfs() { |
584 |
print_info 1 "initramfs: >> Initializing ..." |
585 |
|
586 |
# Create empty cpio |
587 |
- CPIO_ARCHIVE="${TMPDIR}/initramfs-${KNAME}-${ARCH}-${KV}" |
588 |
+ CPIO_ARCHIVE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}" |
589 |
append_data 'devices' # WARNING, must be first! |
590 |
append_data 'base_layout' |
591 |
append_data 'auxilary' "${BUSYBOX}" |
592 |
@@ -1826,8 +1826,8 @@ create_initramfs() { |
593 |
[[ -z ${mkimage_cmd} ]] && gen_die "mkimage is not available. Please install package 'dev-embedded/u-boot-tools'." |
594 |
local mkimage_args="-A ${ARCH} -O linux -T ramdisk -C ${compression:-none} -a 0x00000000 -e 0x00000000" |
595 |
print_info 1 "$(get_indent 1)>> Wrapping initramfs using mkimage ..." |
596 |
- print_info 2 "$(get_indent 1)${mkimage_cmd} ${mkimage_args} -n initramfs-${KNAME}-${ARCH}-${KV} -d ${CPIO_ARCHIVE} ${CPIO_ARCHIVE}.uboot" |
597 |
- ${mkimage_cmd} ${mkimage_args} -n "initramfs-${KNAME}-${ARCH}-${KV}" -d "${CPIO_ARCHIVE}" "${CPIO_ARCHIVE}.uboot" >> ${LOGFILE} 2>&1 || gen_die "Wrapping initramfs using mkimage failed" |
598 |
+ print_info 2 "$(get_indent 1)${mkimage_cmd} ${mkimage_args} -n ${GK_FILENAME_TEMP_INITRAMFS} -d ${CPIO_ARCHIVE} ${CPIO_ARCHIVE}.uboot" |
599 |
+ ${mkimage_cmd} ${mkimage_args} -n "${GK_FILENAME_TEMP_INITRAMFS}" -d "${CPIO_ARCHIVE}" "${CPIO_ARCHIVE}.uboot" >> ${LOGFILE} 2>&1 || gen_die "Wrapping initramfs using mkimage failed" |
600 |
mv -f "${CPIO_ARCHIVE}.uboot" "${CPIO_ARCHIVE}" || gen_die "Rename failed" |
601 |
fi |
602 |
fi |
603 |
@@ -1837,9 +1837,9 @@ create_initramfs() { |
604 |
if ! isTrue "${INTEGRATED_INITRAMFS}" |
605 |
then |
606 |
copy_image_with_preserve \ |
607 |
- "initramfs" \ |
608 |
+ "${GK_FILENAME_INITRAMFS_SYMLINK}" \ |
609 |
"${CPIO_ARCHIVE}" \ |
610 |
- "initramfs-${KNAME}-${ARCH}-${KV}" |
611 |
+ "${GK_FILENAME_INITRAMFS}" |
612 |
fi |
613 |
fi |
614 |
} |
615 |
|
616 |
diff --git a/gen_package.sh b/gen_package.sh |
617 |
index 0240b80..aad52de 100755 |
618 |
--- a/gen_package.sh |
619 |
+++ b/gen_package.sh |
620 |
@@ -7,31 +7,37 @@ gen_minkernpackage() { |
621 |
mkdir "${TEMP}/minkernpackage" || gen_die "Failed to create '${TEMP}/minkernpackage'!" |
622 |
if [ -n "${KERNCACHE}" ] |
623 |
then |
624 |
- "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" kernel-${ARCH}-${KV} \ |
625 |
- || gen_die "Failed to extract 'kernel-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
626 |
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_KERNEL}" \ |
627 |
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_KERNEL}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
628 |
|
629 |
- mv "${TEMP}"/minkernpackage/{kernel-${ARCH}-${KV},kernel-${KNAME}-${ARCH}-${KV}} \ |
630 |
- || gen_die "Failed to rename '${TEMP}/minkernpackage/kernel-${ARCH}-${KV}' to 'kernel-${KNAME}-${ARCH}-${KV}'!" |
631 |
- |
632 |
- "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" System.map-${ARCH}-${KV} \ |
633 |
- || gen_die "Failed to extract 'System.map-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
634 |
+ if [[ "${GK_FILENAME_TEMP_KERNEL}" != "${GK_FILENAME_KERNEL}" ]] |
635 |
+ then |
636 |
+ mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_KERNEL},${GK_FILENAME_KERNEL}} \ |
637 |
+ || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}' to '${GK_FILENAME_KERNEL}'!" |
638 |
+ fi |
639 |
|
640 |
- mv "${TEMP}"/minkernpackage/{System.map-${ARCH}-${KV},System.map-${KNAME}-${ARCH}-${KV}} \ |
641 |
- || gen_die "Failed to rename '${TEMP}/minkernpackage/System.map-${ARCH}-${KV}' to 'System.map-${KNAME}-${ARCH}-${KV}'!" |
642 |
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_SYSTEMMAP}" \ |
643 |
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_SYSTEMMAP}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
644 |
|
645 |
- "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" config-${ARCH}-${KV} \ |
646 |
- || gen_die "Failed to extract 'config-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
647 |
+ if [[ "${GK_FILENAME_TEMP_SYSTEMMAP}" != "${GK_FILENAME_SYSTEMMAP}" ]] |
648 |
+ then |
649 |
+ mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_SYSTEMMAP},${GK_FILENAME_SYSTEMMAP}} \ |
650 |
+ || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_SYSTEMMAP}' to '${GK_FILENAME_SYSTEMMAP}'!" |
651 |
+ fi |
652 |
|
653 |
- mv "${TEMP}"/minkernpackage/{config-${ARCH}-${KV},config-${KNAME}-${ARCH}-${KV}} \ |
654 |
- || gen_die "Failed to rename '${TEMP}/minkernpackage/config-${ARCH}-${KV}' to 'config-${KNAME}-${ARCH}-${KV}'!" |
655 |
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_CONFIG}" \ |
656 |
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_CONFIG}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
657 |
|
658 |
if isTrue "${GENZIMAGE}" |
659 |
then |
660 |
- "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" kernelz-${ARCH}-${KV} \ |
661 |
- || gen_die "Failed to extract 'kernelz-${ARCH}-${KV}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
662 |
+ "${TAR_COMMAND}" -x -C "${TEMP}"/minkernpackage -f "${KERNCACHE}" "${GK_FILENAME_TEMP_KERNELZ}" \ |
663 |
+ || gen_die "Failed to extract '${GK_FILENAME_TEMP_KERNELZ}' from '${KERNCACHE}' to '${TEMP}/minkernpackage'!" |
664 |
|
665 |
- mv "${TEMP}"/minkernpackage/{kernelz-${ARCH}-${KV},kernelz-${KNAME}-${ARCH}-${KV}} \ |
666 |
- || gen_die "Failed to rename '${TEMP}/minkernpackage/kernelz-${ARCH}-${KV}' to 'kernelz-${KNAME}-${ARCH}-${KV}'!" |
667 |
+ if [[ "${GK_FILENAME_TEMP_KERNELZ}" != "${GK_FILENAME_KERNELZ}" ]] |
668 |
+ then |
669 |
+ mv "${TEMP}"/minkernpackage/{${GK_FILENAME_TEMP_KERNELZ},${GK_FILENAME_KERNELZ}} \ |
670 |
+ || gen_die "Failed to rename '${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNELZ}' to '${GK_FILENAME_KERNELZ}'!" |
671 |
+ fi |
672 |
fi |
673 |
else |
674 |
local tmp_kernel_binary=$(find_kernel_binary ${KERNEL_BINARY}) |
675 |
@@ -42,13 +48,13 @@ gen_minkernpackage() { |
676 |
|
677 |
cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!" |
678 |
|
679 |
- cp "${tmp_kernel_binary}" "${TEMP}/minkernpackage/kernel-${KNAME}-${ARCH}-${KV}" \ |
680 |
+ cp "${tmp_kernel_binary}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}" \ |
681 |
|| gen_die "Could not copy the kernel binary '${tmp_kernel_binary}' for the min kernel package!" |
682 |
|
683 |
- cp "System.map" "${TEMP}/minkernpackage/System.map-${KNAME}-${ARCH}-${KV}" \ |
684 |
+ cp "System.map" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_SYSTEMMAP}" \ |
685 |
|| gen_die "Could not copy '${KERNEL_OUTPUTDIR}/System.map' for the min kernel package!" |
686 |
|
687 |
- cp ".config" "${TEMP}/minkernpackage/config-${KNAME}-${ARCH}-${KV}" \ |
688 |
+ cp ".config" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_CONFIG}" \ |
689 |
|| gen_die "Could not copy the kernel config '${KERNEL_OUTPUTDIR}/.config' for the min kernel package!" |
690 |
|
691 |
if isTrue "${GENZIMAGE}" |
692 |
@@ -59,7 +65,7 @@ gen_minkernpackage() { |
693 |
gen_die "Failed to locate kernel binary '${KERNEL_BINARY_2}'!" |
694 |
fi |
695 |
|
696 |
- cp "${tmp_kernel_binary2}" "${TEMP}/minkernpackage/kernelz-${KNAME}-${ARCH}-${KV}" \ |
697 |
+ cp "${tmp_kernel_binary2}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_KERNEL}" \ |
698 |
|| gen_die "Could not copy the kernelz binary '${tmp_kernel_binary2}' for the min kernel package!" |
699 |
fi |
700 |
fi |
701 |
@@ -68,8 +74,8 @@ gen_minkernpackage() { |
702 |
then |
703 |
if isTrue "${BUILD_RAMDISK}" |
704 |
then |
705 |
- cp "${TMPDIR}/initramfs-${KV}" "${TEMP}/minkernpackage/initramfs-${KNAME}-${ARCH}-${KV}" \ |
706 |
- || gen_die "Could not copy the initramfs '${TMPDIR}/initramfs-${KV}' for the min kernel package!" |
707 |
+ cp "${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}" "${TEMP}/minkernpackage/${GK_FILENAME_TEMP_INITRAMFS}" \ |
708 |
+ || gen_die "Could not copy the initramfs '${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}' for the min kernel package!" |
709 |
fi |
710 |
fi |
711 |
|
712 |
@@ -117,23 +123,23 @@ gen_kerncache() { |
713 |
|
714 |
cd "${KERNEL_OUTPUTDIR}" || gen_die "Failed to chdir to '${KERNEL_OUTPUTDIR}'!" |
715 |
|
716 |
- cp -aL "${tmp_kernel_binary}" "${TEMP}/kerncache/kernel-${ARCH}-${KV}" \ |
717 |
+ cp -aL "${tmp_kernel_binary}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_KERNEL}" \ |
718 |
|| gen_die "Could not copy the kernel binary '${tmp_kernel_binary}' for the kernel package!" |
719 |
|
720 |
- cp -aL "${KERNEL_OUTPUTDIR}/.config" "${TEMP}/kerncache/config-${ARCH}-${KV}" \ |
721 |
+ cp -aL "${KERNEL_OUTPUTDIR}/.config" "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}" \ |
722 |
|| gen_die "Could not copy the kernel config '${KERNEL_OUTPUTDIR}/.config' for the kernel package!" |
723 |
|
724 |
if isTrue "$(is_gzipped "${KERNEL_CONFIG}")" |
725 |
then |
726 |
# Support --kernel-config=/proc/config.gz, mainly |
727 |
- zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" \ |
728 |
+ zcat "${KERNEL_CONFIG}" > "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}.orig" \ |
729 |
|| gen_die "Could not copy the kernel config '${KERNEL_CONFIG}' for the kernel package!" |
730 |
else |
731 |
- cp -aL "${KERNEL_CONFIG}" "${TEMP}/kerncache/config-${ARCH}-${KV}.orig" \ |
732 |
+ cp -aL "${KERNEL_CONFIG}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_CONFIG}.orig" \ |
733 |
|| gen_die "Could not copy the kernel config '${KERNEL_CONFIG}' for the kernel package!" |
734 |
fi |
735 |
|
736 |
- cp -aL "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/kerncache/System.map-${ARCH}-${KV}" \ |
737 |
+ cp -aL "${KERNEL_OUTPUTDIR}/System.map" "${TEMP}/kerncache/${GK_FILENAME_TEMP_SYSTEMMAP}" \ |
738 |
|| gen_die "Could not copy the System.map '${KERNEL_OUTPUTDIR}/System.map' for the kernel package!" |
739 |
|
740 |
if isTrue "${GENZIMAGE}" |
741 |
@@ -144,7 +150,7 @@ gen_kerncache() { |
742 |
gen_die "Failed locate kernelz binary '${KERNEL_BINARY_2}'!" |
743 |
fi |
744 |
|
745 |
- cp -aL "${tmp_kernel_binary2}" "${TEMP}/kerncache/kernelz-${ARCH}-${KV}" \ |
746 |
+ cp -aL "${tmp_kernel_binary2}" "${TEMP}/kerncache/${GK_FILENAME_TEMP_KERNELZ}" \ |
747 |
|| gen_die "Could not copy the kernelz '${tmp_kernel_binary2}' for the kernel package!" |
748 |
fi |
749 |
|
750 |
@@ -179,22 +185,22 @@ gen_kerncache_extract_kernel() { |
751 |
|| gen_die "Failed to extract '${KERNCACHE}' to '${TEMP}'!" |
752 |
|
753 |
copy_image_with_preserve \ |
754 |
- "kernel" \ |
755 |
- "${TEMP}/kernel-${ARCH}-${KV}" \ |
756 |
- "kernel-${KNAME}-${ARCH}-${KV}" |
757 |
+ "${GK_FILENAME_KERNEL_SYMLINK}" \ |
758 |
+ "${TEMP}/${GK_FILENAME_TEMP_KERNEL}" \ |
759 |
+ "${GK_FILENAME_KERNEL}" |
760 |
|
761 |
if isTrue "${GENZIMAGE}" |
762 |
then |
763 |
copy_image_with_preserve \ |
764 |
"kernelz" \ |
765 |
- "${TEMP}/kernelz-${ARCH}-${KV}" \ |
766 |
- "kernelz-${KNAME}-${ARCH}-${KV}" |
767 |
+ "${TEMP}/${GK_FILENAME_TEMP_KERNELZ}" \ |
768 |
+ "${GK_FILENAME_KERNELZ}" |
769 |
fi |
770 |
|
771 |
copy_image_with_preserve \ |
772 |
- "System.map" \ |
773 |
- "${TEMP}/System.map-${ARCH}-${KV}" \ |
774 |
- "System.map-${KNAME}-${ARCH}-${KV}" |
775 |
+ "${GK_FILENAME_SYSTEMMAP_SYMLINK}" \ |
776 |
+ "${TEMP}/${GK_FILENAME_TEMP_SYSTEMMAP}" \ |
777 |
+ "${GK_FILENAME_SYSTEMMAP}" |
778 |
} |
779 |
|
780 |
gen_kerncache_extract_modules() { |
781 |
@@ -217,11 +223,11 @@ gen_kerncache_extract_config() { |
782 |
mkdir -p /etc/kernels || gen_die "Failed to create '/etc/kernels'!" |
783 |
fi |
784 |
|
785 |
- "${TAR_COMMAND}" -xf "${KERNCACHE}" -C /etc/kernels config-${ARCH}-${KV} \ |
786 |
- || gen_die "Failed to extract kerncache config 'config-${ARCH}-${KV}' from '${KERNCACHE}' to '/etc/kernels'!" |
787 |
+ "${TAR_COMMAND}" -xf "${KERNCACHE}" -C /etc/kernels "${GK_FILENAME_TEMP_CONFIG}" \ |
788 |
+ || gen_die "Failed to extract kerncache config '${GK_FILENAME_TEMP_CONFIG}' from '${KERNCACHE}' to '/etc/kernels'!" |
789 |
|
790 |
- mv /etc/kernels/config-${ARCH}-${KV} /etc/kernels/kernel-config-${ARCH}-${KV} \ |
791 |
- || gen_die "Failed to rename kernelcache config '/etc/kernels/config-${ARCH}-${KV}' to '/etc/kernels/kernel-config-${ARCH}-${KV}'!" |
792 |
+ mv /etc/kernels/${GK_FILENAME_TEMP_CONFIG} /etc/kernels/${GK_FILENAME_CONFIG} \ |
793 |
+ || gen_die "Failed to rename kernelcache config '/etc/kernels/${GK_FILENAME_TEMP_CONFIG}' to '/etc/kernels/${GK_FILENAME_CONFIG}'!" |
794 |
} |
795 |
|
796 |
gen_kerncache_is_valid() { |
797 |
@@ -237,20 +243,20 @@ gen_kerncache_is_valid() { |
798 |
BUILD_KERNEL="no" |
799 |
# Can make this more secure .... |
800 |
|
801 |
- if [ -e "${TEMP}/config-${ARCH}-${KV}" -a -e "${TEMP}/kernel-${ARCH}-${KV}" ] |
802 |
+ if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" -a -e "${TEMP}/${GK_FILENAME_TEMP_KERNEL}" ] |
803 |
then |
804 |
print_info 1 '' 1 0 |
805 |
print_info 1 'Valid kerncache found; No sources will be used ...' |
806 |
KERNCACHE_IS_VALID="yes" |
807 |
fi |
808 |
else |
809 |
- if [ -e "${TEMP}/config-${ARCH}-${KV}" -a -e "${KERNEL_CONFIG}" ] |
810 |
+ if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" -a -e "${KERNEL_CONFIG}" ] |
811 |
then |
812 |
- if [ -e "${TEMP}/config-${ARCH}-${KV}.orig" ] |
813 |
+ if [ -e "${TEMP}/${GK_FILENAME_TEMP_CONFIG}.orig" ] |
814 |
then |
815 |
- local test1=$(grep -v "^#" "${TEMP}/config-${ARCH}-${KV}.orig" | md5sum | cut -d " " -f 1) |
816 |
+ local test1=$(grep -v "^#" "${TEMP}/${GK_FILENAME_TEMP_CONFIG}.orig" | md5sum | cut -d " " -f 1) |
817 |
else |
818 |
- local test1=$(grep -v "^#" "${TEMP}/config-${ARCH}-${KV}" | md5sum | cut -d " " -f 1) |
819 |
+ local test1=$(grep -v "^#" "${TEMP}/${GK_FILENAME_TEMP_CONFIG}" | md5sum | cut -d " " -f 1) |
820 |
fi |
821 |
|
822 |
if isTrue "$(is_gzipped "${KERNEL_CONFIG}")" |
823 |
|
824 |
diff --git a/genkernel b/genkernel |
825 |
index da3d2d8..3c125c9 100755 |
826 |
--- a/genkernel |
827 |
+++ b/genkernel |
828 |
@@ -174,6 +174,8 @@ determine_KV |
829 |
|
830 |
determine_kernel_arch |
831 |
|
832 |
+determine_output_filenames |
833 |
+ |
834 |
determine_kernel_config_file |
835 |
|
836 |
setup_cache_dir |
837 |
@@ -219,6 +221,8 @@ then |
838 |
determine_KV |
839 |
if [ -f "${TEMP}/.old_kv" ] |
840 |
then |
841 |
+ determine_output_filenames |
842 |
+ |
843 |
old_KV=$(cat "${TEMP}/.old_kv") |
844 |
print_info 1 "$(get_indent 1)>> Kernel version has changed (probably due to config change) since genkernel start:" |
845 |
print_info 1 "$(get_indent 1)>> We are now building Linux kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL} ..." |
846 |
@@ -237,9 +241,9 @@ then |
847 |
|
848 |
if isTrue "${SAVE_CONFIG}" |
849 |
then |
850 |
- print_info 1 "$(get_indent 1)>> Saving config of successful build to '/etc/kernels/kernel-config-${ARCH}-${KV}' ..." |
851 |
+ print_info 1 "$(get_indent 1)>> Saving config of successful build to '/etc/kernels/${GK_FILENAME_CONFIG}' ..." |
852 |
[ ! -e '/etc/kernels' ] && mkdir -p /etc/kernels |
853 |
- cp "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/kernel-config-${ARCH}-${KV}" || \ |
854 |
+ cp "${KERNEL_OUTPUTDIR}/.config" "/etc/kernels/${GK_FILENAME_CONFIG}" || \ |
855 |
print_warning 1 "Unable to copy the kernel configuration file; Ignoring non-fatal error ..." |
856 |
# Just a warning because ordinary users are not allowed to write in /etc |
857 |
fi |
858 |
@@ -373,16 +377,16 @@ then |
859 |
esac |
860 |
else |
861 |
print_info 1 '' |
862 |
- print_info 1 "You will find the kernel image in '${TMPDIR}/kernel-${KNAME}-${ARCH}-${KV}'." |
863 |
+ print_info 1 "You will find the kernel image in '${TMPDIR}/${GK_FILENAME_TEMP_KERNEL}'." |
864 |
|
865 |
if isTrue "${GENZIMAGE}" |
866 |
then |
867 |
- print_info 1 "You will find the kernelz binary in '${TMPDIR}/kernelz-${KV}'." |
868 |
+ print_info 1 "You will find the kernelz binary in '${TMPDIR}/${GK_FILENAME_TEMP_KERNELZ}'." |
869 |
fi |
870 |
|
871 |
if isTrue "${BUILD_RAMDISK}" |
872 |
then |
873 |
- print_info 1 "You will find the initramfs in '${TMPDIR}/initramfs-${KNAME}-${ARCH}-${KV}'." |
874 |
+ print_info 1 "You will find the initramfs in '${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}'." |
875 |
fi |
876 |
fi |
877 |
|
878 |
@@ -396,26 +400,27 @@ then |
879 |
|
880 |
if isTrue "${show_warning_initramfs_is_required}" && isTrue "${BUILD_RAMDISK}" |
881 |
then |
882 |
- INITRAMFS_INSTALLED_IN="${TMPDIR}" |
883 |
- isTrue "${CMD_INSTALL}" && INITRAMFS_INSTALLED_IN="${BOOTDIR}" |
884 |
+ INITRAMFS_FILE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}" |
885 |
+ isTrue "${CMD_INSTALL}" && INITRAMFS_FILE="${BOOTDIR}/${GK_FILENAME_INITRAMFS}" |
886 |
|
887 |
print_warning 1 '' 1 0 |
888 |
print_warning 1 "If you require Genkernel's hardware detection features, you ${BOLD}MUST${NORMAL}" |
889 |
- print_warning 1 "tell your bootloader to use the provided initramfs file (${INITRAMFS_INSTALLED_IN}/initramfs-${KNAME}-${ARCH}-${KV})." |
890 |
+ print_warning 1 "tell your bootloader to use the provided initramfs file '${INITRAMFS_FILE}'." |
891 |
+ unset INITRAMFS_FILE |
892 |
fi |
893 |
unset show_warning_initramfs_is_required |
894 |
fi |
895 |
|
896 |
if isTrue "${BUILD_RAMDISK}" |
897 |
then |
898 |
- if ! isTrue "${BUILD_KERNEL}" && ! isTrue "${CMD_INSTALL}" |
899 |
- then |
900 |
- print_info 1 '' |
901 |
- print_info 1 "You will find the initramfs in '${TMPDIR}/initramfs-${KNAME}-${ARCH}-${KV}'." |
902 |
- elif ! isTrue "${BUILD_KERNEL}" && isTrue "${CMD_INSTALL}" |
903 |
+ if ! isTrue "${BUILD_KERNEL}" |
904 |
then |
905 |
+ INITRAMFS_FILE="${TMPDIR}/${GK_FILENAME_TEMP_INITRAMFS}" |
906 |
+ isTrue "${CMD_INSTALL}" && INITRAMFS_FILE="${BOOTDIR}/${GK_FILENAME_INITRAMFS}" |
907 |
+ |
908 |
print_info 1 '' |
909 |
- print_info 1 "You will find the initramfs in '${BOOTDIR}/initramfs-${KNAME}-${ARCH}-${KV}'." |
910 |
+ print_info 1 "You will find the initramfs in '${INITRAMFS_FILE}'." |
911 |
+ unset INITRAMFS_FILE |
912 |
fi |
913 |
|
914 |
print_warning 1 '' 1 0 |
915 |
|
916 |
diff --git a/genkernel.conf b/genkernel.conf |
917 |
index 0c1a2e7..23e015b 100644 |
918 |
--- a/genkernel.conf |
919 |
+++ b/genkernel.conf |
920 |
@@ -172,7 +172,7 @@ NOCOLOR="false" |
921 |
# Run the specified command in the current environment after the kernel and |
922 |
# modules have been compiled, useful to rebuild external kernel module |
923 |
# (see MODULEREBUILD above) or installing additional |
924 |
-# files (use 'copy_image_with_preserve dtb path/to/dtb dtb ${KNAME}-${ARCH}-${KV}') |
925 |
+# files (use 'copy_image_with_preserve dtb path/to/dtb dtb <kernelname>') |
926 |
#CMD_CALLBACK="" |
927 |
|
928 |
|
929 |
@@ -279,10 +279,13 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux" |
930 |
|
931 |
# =========MISC KERNEL CONFIGURATION============ |
932 |
# |
933 |
-# Tag the kernel and initramfs with a name: |
934 |
-# If not defined the option defaults to |
935 |
-# 'genkernel' |
936 |
-#KNAME="genkernel" |
937 |
+# Set kernel filename which will be used when kernel will be installed |
938 |
+# into BOOTDIR. See man page to learn more about available placeholders. |
939 |
+#KERNEL_FILENAME="kernel-genkernel-%%ARCH%%-%%KV%%" |
940 |
+ |
941 |
+# Set kernel symlink name which will be used when kernel will be installed |
942 |
+# into BOOTDIR and SYMLINK option is enabled |
943 |
+#KERNEL_SYMLINK_NAME="kernel" |
944 |
|
945 |
# This option will set kernel option CONFIG_LOCALVERSION. |
946 |
# Use special value "UNSET" to unset already set CONFIG_LOCALVERSION. |
947 |
@@ -312,6 +315,15 @@ DEFAULT_KERNEL_SOURCE="/usr/src/linux" |
948 |
|
949 |
# =========MISC INITRAMFS CONFIGURATION============ |
950 |
# |
951 |
+# Set initramfs filename which will be used when initramfs will be |
952 |
+# installed into BOOTDIR. See man page to learn more about available |
953 |
+# placeholders. |
954 |
+#INITRAMFS_FILENAME="initramfs-genkernel-%%ARCH%%-%%KV%%" |
955 |
+ |
956 |
+# Set initramfs symlink name which will be used when initramfs will be |
957 |
+# installed into BOOTDIR and SYMLINK option is enabled |
958 |
+#INITRAMFS_SYMLINK_NAME="initramfs" |
959 |
+ |
960 |
# Copy all compiled kernel modules to the initramfs |
961 |
#ALLRAMDISKMODULES="no" |