4 echo "Gentoo Linux Genkernel ${GK_V}"
6 echo " genkernel [options] action"
8 echo "Available Actions: "
9 echo " all Build all steps"
10 echo " bzImage Build only the kernel"
11 echo " kernel Build only the kernel and modules"
12 echo " initrd Build only the initrd"
14 echo "Available Options: "
15 echo " Debug settings"
16 echo " --debuglevel=<0-5> Debug Verbosity Level"
17 echo " --debugfile=<outfile> Output file for debug info"
18 echo " --color Output debug in color"
19 echo " --no-color Do not output debug in color"
20 echo " Kernel Configuration settings"
21 echo " --menuconfig Run menuconfig after oldconfig"
22 echo " --no-menuconfig Do not run menuconfig after oldconfig"
23 echo " --gconfig Run gconfig after oldconfig"
24 echo " --xconfig Run xconfig after oldconfig"
25 echo " --save-config Save the configuration to /etc/kernels"
26 echo " --no-save-config Don't save the configuration to /etc/kernels"
27 echo " Kernel Compile settings"
28 echo " --clean Run make clean before compilation"
29 echo " --mrproper Run make mrproper before compilation"
30 echo " --no-clean Do not run make clean before compilation"
31 echo " --no-mrproper Do not run make mrproper before compilation"
32 echo " --oldconfig Implies --no-clean and runs a 'make oldconfig'"
33 echo " --gensplash Install gensplash support into bzImage"
34 echo " --no-gensplash Do not use gensplash"
35 echo " --install Install the kernel after building"
36 echo " --no-install Do not install the kernel after building"
37 echo " --symlink Manage symlinks in /boot for installed images"
38 echo " --no-symlink Do not manage symlinks"
39 echo " --no-initrdmodules Don't copy any modules to the initrd"
40 echo " --callback=<...> Run the specified arguments after the"
41 echo " kernel and modules have been compiled"
42 echo " --static Build a static (monolithic kernel)."
43 echo " --initramfs Builds initramfs before kernel and embeds it"
44 echo " into the kernel."
45 echo " Kernel settings"
46 echo " --kerneldir=<dir> Location of the kernel sources"
47 echo " --kernel-config=<file> Kernel configuration file to use for compilation"
48 echo " --module-prefix=<dir> Prefix to kernel module destination, modules"
49 echo " will be installed in <prefix>/lib/modules"
50 echo " Low-Level Compile settings"
51 echo " --kernel-cc=<compiler> Compiler to use for kernel (e.g. distcc)"
52 echo " --kernel-as=<assembler> Assembler to use for kernel"
53 echo " --kernel-ld=<linker> Linker to use for kernel"
54 echo " --kernel-cross-compile=<cross var> CROSS_COMPILE kernel variable"
55 echo " --kernel-make=<makeprg> GNU Make to use for kernel"
56 echo " --utils-cc=<compiler> Compiler to use for utilities"
57 echo " --utils-as=<assembler> Assembler to use for utils"
58 echo " --utils-ld=<linker> Linker to use for utils"
59 echo " --utils-make=<makeprog> GNU Make to use for utils"
60 echo " --utils-cross-compile=<cross var> CROSS_COMPILE utils variable"
61 echo " --utils-arch=<arch> Force to arch for utils only instead of"
63 echo " --makeopts=<makeopts> Make options such as -j2, etc..."
64 echo " --mountboot Mount BOOTDIR automatically if mountable"
65 echo " --no-mountboot Don't mount BOOTDIR automatically"
66 echo " --bootdir=<dir> Set the location of the boot-directory, default is /boot"
67 echo " Initialization"
68 echo " --gensplash=<theme> Force gensplash using <theme>"
69 echo " --gensplash-res=<res> Select gensplash resolutions"
70 echo " --do-keymap-auto Forces keymap selection at boot"
71 echo " --evms Include EVMS support"
72 echo " --> 'emerge evms' in the host operating system"
74 echo " --evms2 Include EVMS support"
75 echo " --> 'emerge evms' in the host operating system"
77 echo " --lvm Include LVM support"
78 echo " --lvm2 Include LVM support"
79 echo " --dmraid Include DMRAID support"
80 echo " --slowusb Enables extra pauses for slow USB CD boots"
81 echo " --bootloader=grub Add new kernel to GRUB configuration"
82 echo " --linuxrc=<file> Specifies a user created linuxrc"
83 echo " --disklabel Include disk label and uuid support in your"
85 echo " --luks Include LUKS support"
86 echo " --> 'emerge cryptsetup-luks' with USE=-dynamic"
88 echo " --arch-override=<arch> Force to arch instead of autodetect"
89 echo " --cachedir=<dir> Override the default cache location"
90 echo " --tempdir=<dir> Location of Genkernel's temporary directory"
91 echo " --postclear Clear all tmp files and caches after genkernel has run"
92 echo " Output Settings"
93 echo " --kernname=<...> Tag the kernel and initrd with a name:"
94 echo " If not defined the option defaults to"
96 echo " --minkernpackage=<tbz2> File to output a .tar.bz2'd kernel and initrd:"
97 echo " No modules outside of the initrd will be"
99 echo " --modulespackage=<tbz2> File to output a .tar.bz2'd modules after the"
100 echo " callbacks have run"
101 echo " --kerncache=<tbz2> File to output a .tar.bz2'd kernel contents"
102 echo " of /lib/modules/ and the kernel config"
103 echo " NOTE: This is created before the callbacks"
105 echo " --no-kernel-sources This option is only valid if kerncache is"
106 echo " defined. If there is a valid kerncache no checks"
107 echo " will be made against a kernel source tree"
108 echo " --initramfs-overlay=<dir>"
109 echo " Directory structure to include in the initramfs,"
110 echo " only available on 2.6 kernels"
114 echo "Gentoo Linux Genkernel ${GK_V}"
116 echo " genkernel [options] all"
118 echo 'Some useful options:'
119 echo ' --menuconfig Run menuconfig after oldconfig'
120 echo ' --no-clean Do not run make clean before compilation'
121 echo ' --no-mrproper Do not run make mrproper before compilation,'
122 echo ' this is implied by --no-clean.'
124 echo 'For a detailed list of supported options and flags; issue:'
125 echo ' genkernel --help'
131 echo "$1" | cut -f2- -d=
139 CMD_KERNEL_CC=`parse_opt "$*"`
140 print_info 2 "CMD_KERNEL_CC: ${CMD_KERNEL_CC}"
143 CMD_KERNEL_LD=`parse_opt "$*"`
144 print_info 2 "CMD_KERNEL_LD: ${CMD_KERNEL_LD}"
147 CMD_KERNEL_AS=`parse_opt "$*"`
148 print_info 2 "CMD_KERNEL_AS: ${CMD_KERNEL_AS}"
151 CMD_KERNEL_MAKE=`parse_opt "$*"`
152 print_info 2 "CMD_KERNEL_MAKE: ${CMD_KERNEL_MAKE}"
154 --kernel-cross-compile=*)
155 CMD_KERNEL_CROSS_COMPILE=`parse_opt "$*"`
156 CMD_KERNEL_CROSS_COMPILE=$(echo ${CMD_KERNEL_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
157 print_info 2 "CMD_KERNEL_CROSS_COMPILE: ${CMD_KERNEL_CROSS_COMPILE}"
160 CMD_UTILS_CC=`parse_opt "$*"`
161 print_info 2 "CMD_UTILS_CC: ${CMD_UTILS_CC}"
164 CMD_UTILS_LD=`parse_opt "$*"`
165 print_info 2 "CMD_UTILS_LD: ${CMD_UTILS_LD}"
168 CMD_UTILS_AS=`parse_opt "$*"`
169 print_info 2 "CMD_UTILS_AS: ${CMD_UTILS_AS}"
172 CMD_UTILS_MAKE=`parse_opt "$*"`
173 print_info 2 "CMD_UTILS_MAKE: ${CMD_UTILS_MAKE}"
175 --utils-cross-compile=*)
176 CMD_UTILS_CROSS_COMPILE=`parse_opt "$*"`
177 CMD_UTILS_CROSS_COMPILE=$(echo ${CMD_UTILS_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
178 print_info 2 "CMD_UTILS_CROSS_COMPILE: ${CMD_UTILS_CROSS_COMPILE}"
181 CMD_UTILS_ARCH=`parse_opt "$*"`
182 print_info 2 "CMD_UTILS_ARCH: ${CMD_ARCHOVERRIDE}"
185 CMD_MAKEOPTS=`parse_opt "$*"`
186 print_info 2 "CMD_MAKEOPTS: ${CMD_MAKEOPTS}"
190 print_info 2 "CMD_MOUNTBOOT: ${CMD_MOUNTBOOT}"
194 print_info 2 "CMD_MOUNTBOOT: ${CMD_MOUNTBOOT}"
197 BOOTDIR=`parse_opt "$*"`
198 print_info 2 "BOOTDIR: ${BOOTDIR}"
202 print_info 2 "CMD_DOKEYMAPAUTO: ${CMD_DOKEYMAPAUTO}"
206 print_info 2 "CMD_EVMS: ${CMD_EVMS}"
210 print_info 2 "CMD_EVMS: ${CMD_EVMS}"
212 print_warning 1 "Please use --evms, as --evms2 is deprecated."
216 print_info 2 "CMD_UNIONFS: ${CMD_UNIONFS}"
218 print_warning 1 "WARNING: unionfs support is in active development and is not meant for general"
219 print_warning 1 "use."
220 print_warning 1 "Bug Reports without patches/fixes will be ignored."
221 print_warning 1 "Use at your own risk as this could blow up your system."
222 print_warning 1 "This code is subject to change at any time."
227 print_info 2 "CMD_LVM: ${CMD_LVM}"
231 print_info 2 "CMD_LVM: ${CMD_LVM}"
233 print_warning 1 "Please use --lvm, as --lvm2 is deprecated."
237 print_info 2 "CMD_NO_BUSYBOX: ${CMD_NO_BUSYBOX}"
241 print_info 2 "CMD_SLOWUSB: ${CMD_SLOWUSB}"
244 if [ ! -e /usr/include/libdevmapper.h ]
246 echo 'Error: --dmraid requires device-mapper to be installed'
247 echo ' on the host system; try "emerge device-mapper".'
251 print_info 2 "CMD_DMRAID: ${CMD_DMRAID}"
254 CMD_BOOTLOADER=`parse_opt "$*"`
255 print_info 2 "CMD_BOOTLOADER: ${CMD_BOOTLOADER}"
258 CMD_DEBUGLEVEL=`parse_opt "$*"`
259 DEBUGLEVEL="${CMD_DEBUGLEVEL}"
260 print_info 2 "CMD_DEBUGLEVEL: ${CMD_DEBUGLEVEL}"
263 TERM_LINES=`stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1`
264 TERM_COLUMNS=`stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1`
266 if [[ TERM_LINES -lt 19 || TERM_COLUMNS -lt 80 ]]
268 echo "Error: You need a terminal with at least 80 columns"
269 echo " and 19 lines for --menuconfig; try --nomenuconfig..."
273 print_info 2 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
277 print_info 2 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
281 print_info 2 "CMD_GCONFIG: ${CMD_GCONFIG}"
285 print_info 2 "CMD_XCONFIG: ${CMD_XCONFIG}"
289 print_info 2 "CMD_SAVE_CONFIG: ${CMD_SAVE_CONFIG}"
293 print_info 2 "CMD_SAVE_CONFIG: ${CMD_SAVE_CONFIG}"
297 print_info 2 "CMD_MRPROPER: ${CMD_MRPROPER}"
301 print_info 2 "CMD_MRPROPER: ${CMD_MRPROPER}"
305 print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
309 print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
314 print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
315 print_info 2 "CMD_OLDCONFIG: ${CMD_OLDCONFIG}"
319 GENSPLASH_THEME=`parse_opt "$*"`
320 print_info 2 "CMD_GENSPLASH: ${CMD_GENSPLASH}"
321 print_info 2 "GENSPLASH_THEME: ${GENSPLASH_THEME}"
325 GENSPLASH_THEME='default'
326 print_info 2 "CMD_GENSPLASH: ${CMD_GENSPLASH}"
330 print_info 2 "CMD_GENSPLASH: ${CMD_GENSPLASH}"
333 GENSPLASH_RES=`parse_opt "$*"`
334 print_info 2 "GENSPLASH_RES: ${GENSPLASH_RES}"
338 print_info 2 "CMD_NOINSTALL: ${CMD_NOINSTALL}"
342 print_info 2 "CMD_NOINSTALL: ${CMD_NOINSTALL}"
345 CMD_NOINITRDMODULES=1
346 print_info 2 "CMD_NOINITRDMODULES: ${CMD_NOINITRDMODULES}"
349 CMD_CALLBACK=`parse_opt "$*"`
350 print_info 2 "CMD_CALLBACK: ${CMD_CALLBACK}/$*"
354 print_info 2 "CMD_STATIC: ${CMD_STATIC}"
358 print_info 2 "CMD_INITRAMFS: ${CMD_INITRAMFS}"
361 TMPDIR=`parse_opt "$*"`
362 TEMP=${TMPDIR}/$RANDOM.$RANDOM.$RANDOM.$$
363 print_info 2 "TMPDIR: ${TMPDIR}"
364 print_info 2 "TEMP: ${TEMP}"
368 print_info 2 "CMD_POSTCLEAR: ${CMD_POSTCLEAR}"
371 CMD_ARCHOVERRIDE=`parse_opt "$*"`
372 print_info 2 "CMD_ARCHOVERRIDE: ${CMD_ARCHOVERRIDE}"
376 print_info 2 "USECOLOR: ${USECOLOR}"
381 print_info 2 "USECOLOR: ${USECOLOR}"
385 CMD_DEBUGFILE=`parse_opt "$*"`
386 DEBUGFILE=`parse_opt "$*"`
387 print_info 2 "CMD_DEBUGFILE: ${CMD_DEBUGFILE}"
388 print_info 2 "DEBUGFILE: ${CMD_DEBUGFILE}"
391 CMD_KERNELDIR=`parse_opt "$*"`
392 print_info 2 "CMD_KERNELDIR: ${CMD_KERNELDIR}"
395 CMD_KERNEL_CONFIG=`parse_opt "$*"`
396 print_info 2 "CMD_KERNEL_CONFIG: ${CMD_KERNEL_CONFIG}"
399 CMD_INSTALL_MOD_PATH=`parse_opt "$*"`
400 print_info 2 "CMD_INSTALL_MOD_PATH: ${CMD_INSTALL_MOD_PATH}"
403 CACHE_DIR=`parse_opt "$*"`
404 print_info 2 "CACHE_DIR: ${CACHE_DIR}"
407 CMD_MINKERNPACKAGE=`parse_opt "$*"`
408 print_info 2 "MINKERNPACKAGE: ${CMD_MINKERNPACKAGE}"
411 CMD_MODULESPACKAGE=`parse_opt "$*"`
412 print_info 2 "MODULESPACKAGE: ${CMD_MODULESPACKAGE}"
415 CMD_KERNCACHE=`parse_opt "$*"`
416 print_info 2 "KERNCACHE: ${CMD_KERNCACHE}"
419 CMD_KERNNAME=`parse_opt "$*"`
420 print_info 2 "KERNNAME: ${CMD_KERNNAME}"
424 print_info 2 "CMD_SYMLINK: ${CMD_SYMLINK}"
428 print_info 2 "CMD_SYMLINK: ${CMD_SYMLINK}"
431 CMD_NO_KERNEL_SOURCES=1
432 print_info 2 "CMD_NO_KERNEL_SOURCES: ${CMD_NO_KERNEL_SOURCES}"
434 --initramfs-overlay=*)
435 CMD_INITRAMFS_OVERLAY=`parse_opt "$*"`
436 print_info 2 "CMD_INITRAMFS_OVERLAY: ${CMD_INITRAMFS_OVERLAY}"
439 CMD_LINUXRC=`parse_opt "$*"`
440 print_info 2 "CMD_LINUXRC: ${CMD_LINUXRC}"
443 KERNEL_MAKE_DIRECTIVE_2='zImage.initrd'
444 KERNEL_BINARY_2='arch/powerpc/boot/zImage.initrd'
446 print_info 2 "GENERATE_Z_IMAGE: ${GENERATE_Z_IMAGE}"
450 print_info 2 "CMD_DISKLABEL: ${CMD_DISKLABEL}"
454 print_info 2 "CMD_LUKS: ${CMD_LUKS}"
473 CMD_NOINITRDMODULES=1
474 print_info 2 "CMD_NOINITRDMODULES: ${CMD_NOINITRDMODULES}"
485 echo "Error: Unknown option '$*'!"