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 " --bootsplash Install bootsplash support to the initrd"
34 echo " --no-bootsplash Do not use bootsplash"
35 echo " --gensplash Install gensplash support into bzImage"
36 echo " --no-gensplash Do not use gensplash"
37 echo " --install Install the kernel after building"
38 echo " --no-install Do not install the kernel after building"
39 echo " --no-initrdmodules Don't copy any modules to the initrd"
40 echo " --no-udev Disable udev support"
41 echo " --no-devfs Disable devfs support"
42 echo " --callback=<...> Run the specified arguments after the"
43 echo " kernel and modules have been compiled"
44 echo " --static Build a static (monolithic kernel)."
45 echo " --initramfs Builds initramfs before kernel and embeds it"
46 echo " into the kernel."
47 echo " Kernel settings"
48 echo " --kerneldir=<dir> Location of the kernel sources"
49 echo " --kernel-config=<file> Kernel configuration file to use for compilation"
50 echo " --module-prefix=<dir> Prefix to kernel module destination, modules will"
51 echo " be installed in <prefix>/lib/modules"
52 echo " Low-Level Compile settings"
53 echo " --kernel-cc=<compiler> Compiler to use for kernel (e.g. distcc)"
54 echo " --kernel-as=<assembler> Assembler to use for kernel"
55 echo " --kernel-ld=<linker> Linker to use for kernel"
56 echo " --kernel-cross-compile=<cross var> CROSS_COMPILE kernel variable"
57 echo " --kernel-make=<makeprg> GNU Make to use for kernel"
58 echo " --utils-cc=<compiler> Compiler to use for utilities"
59 echo " --utils-as=<assembler> Assembler to use for utils"
60 echo " --utils-ld=<linker> Linker to use for utils"
61 echo " --utils-make=<makeprog> GNU Make to use for utils"
62 echo " --utils-cross-compile=<cross var> CROSS_COMPILE utils variable"
63 echo " --utils-arch=<arch> Force to arch for utils only instead of autodetect."
64 echo " --makeopts=<makeopts> Make options such as -j2, etc..."
65 echo " --mountboot Mount /boot automatically"
66 echo " --no-mountboot Don't mount /boot automatically"
67 echo " Initialization"
68 echo " --bootsplash=<theme> Force bootsplash using <theme>"
69 echo " --gensplash=<theme> Force gensplash using <theme>"
70 echo " --gensplash-res=<res> Select gensplash resolutions"
71 echo " --do-keymap-auto Forces keymap selection at boot"
72 echo " --evms2 Include EVMS2 support"
73 echo " --> 'emerge evms' in the host operating system first"
74 echo " --lvm2 Include LVM2 support"
75 # echo " --unionfs Include UNIONFS support"
76 echo " --dmraid Include DMRAID support"
77 echo " --bladecenter Enables extra pauses for IBM Bladecenter CD boots"
78 echo " --bootloader=grub Add new kernel to GRUB configuration"
79 echo " --linuxrc=<file> Specifies a user created linuxrc"
80 echo " --disklabel Include disk label and uuid support in your initrd"
82 echo " --arch-override=<arch> Force to arch instead of autodetect"
83 echo " --cachedir=<dir> Override the default cache location"
84 echo " --tempdir=<dir> Location of Genkernel's temporary directory"
85 echo " --postclear Clear all tmp files and caches after genkernel has run"
86 echo " Output Settings"
87 echo " --kernname=<...> Tag the kernel and initrd with a name:"
88 echo " If not defined the option defaults to 'genkernel'"
89 echo " --minkernpackage=<tbz2> File to output a .tar.bz2'd kernel and initrd:"
90 echo " No modules outside of the initrd will be"
92 echo " --modulespackage=<tbz2> File to output a .tar.bz2'd modules after the callbacks have run"
93 echo " --kerncache=<tbz2> File to output a .tar.bz2'd kernel,"
94 echo " contents of /lib/modules/ and the kernel config"
95 echo " NOTE: This is created before the callbacks are run!"
96 echo " --no-kernel-sources This option is only valid if kerncache is defined"
97 echo " If there is a valid kerncache no checks will be made"
98 echo " against a kernel source tree"
99 echo " --initramfs-overlay=<dir>"
100 echo " Directory structure to include in the initramfs,"
101 echo " only available on 2.6 kernels that don't use bootsplash"
105 echo "Gentoo Linux Genkernel ${GK_V}"
107 echo " genkernel [options] all"
109 echo 'Some useful options:'
110 echo ' --menuconfig Run menuconfig after oldconfig'
111 echo ' --no-clean Do not run make clean before compilation'
112 echo ' --no-mrproper Do not run make mrproper before compilation,'
113 echo ' this is implied by --no-clean.'
115 echo 'For a detailed list of supported options and flags; issue:'
116 echo ' genkernel --help'
122 echo "$1" | cut -f2- -d=
130 CMD_KERNEL_CC=`parse_opt "$*"`
131 print_info 2 "CMD_KERNEL_CC: $CMD_KERNEL_CC"
134 CMD_KERNEL_LD=`parse_opt "$*"`
135 print_info 2 "CMD_KERNEL_LD: $CMD_KERNEL_LD"
138 CMD_KERNEL_AS=`parse_opt "$*"`
139 print_info 2 "CMD_KERNEL_AS: $CMD_KERNEL_AS"
142 CMD_KERNEL_MAKE=`parse_opt "$*"`
143 print_info 2 "CMD_KERNEL_MAKE: $CMD_KERNEL_MAKE"
145 --kernel-cross-compile=*)
146 CMD_KERNEL_CROSS_COMPILE=`parse_opt "$*"`
147 CMD_KERNEL_CROSS_COMPILE=$(echo ${CMD_KERNEL_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
148 print_info 2 "CMD_KERNEL_CROSS_COMPILE: $CMD_KERNEL_CROSS_COMPILE"
151 CMD_UTILS_CC=`parse_opt "$*"`
152 print_info 2 "CMD_UTILS_CC: $CMD_UTILS_CC"
155 CMD_UTILS_LD=`parse_opt "$*"`
156 print_info 2 "CMD_UTILS_LD: $CMD_UTILS_LD"
159 CMD_UTILS_AS=`parse_opt "$*"`
160 print_info 2 "CMD_UTILS_AS: $CMD_UTILS_AS"
163 CMD_UTILS_MAKE=`parse_opt "$*"`
164 print_info 2 "CMD_UTILS_MAKE: $CMD_UTILS_MAKE"
166 --utils-cross-compile=*)
167 CMD_UTILS_CROSS_COMPILE=`parse_opt "$*"`
168 CMD_UTILS_CROSS_COMPILE=$(echo ${CMD_UTILS_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
169 print_info 2 "CMD_UTILS_CROSS_COMPILE: $CMD_UTILS_CROSS_COMPILE"
172 CMD_UTILS_ARCH=`parse_opt "$*"`
173 print_info 2 "CMD_UTILS_ARCH: $CMD_ARCHOVERRIDE"
176 CMD_MAKEOPTS=`parse_opt "$*"`
177 print_info 2 "CMD_MAKEOPTS: $CMD_MAKEOPTS"
181 print_info 2 "CMD_MOUNTBOOT: $CMD_MOUNTBOOT"
185 print_info 2 "CMD_MOUNTBOOT: $CMD_MOUNTBOOT"
189 print_info 2 "CMD_DOKEYMAPAUTO: $CMD_DOKEYMAPAUTO"
193 print_info 2 "CMD_EVMS2: $CMD_EVMS2"
197 print_warning 1 "WARNING: unionfs support is in active development and is not meant for general use."
198 print_warning 1 "DISABLING UNIONFS SUPPORT AT THIS TIME."
203 print_info 2 "CMD_UNIONFS: $CMD_UNIONFS"
205 print_warning 1 "WARNING: unionfs support is in active development and is not meant for general use."
206 print_warning 1 "Bug Reports without patches/fixes will be ignored."
207 print_warning 1 "Use at your own risk as this could blow up your system."
208 print_warning 1 "This code is subject to change at any time."
213 print_info 2 "CMD_LVM2: $CMD_LVM2"
217 print_info 2 "CMD_NO_BUSYBOX: $CMD_NO_BUSYBOX"
221 print_info 2 "CMD_BLADECENTER: $CMD_BLADECENTER"
224 if [ ! -e /usr/include/libdevmapper.h ]
226 echo 'Error: --dmraid requires device-mapper to be installed'
227 echo ' on the host system; try "emerge device-mapper".'
231 print_info 2 "CMD_DMRAID: $CMD_DMRAID"
234 CMD_BOOTLOADER=`parse_opt "$*"`
235 print_info 2 "CMD_BOOTLOADER: $CMD_BOOTLOADER"
238 CMD_DEBUGLEVEL=`parse_opt "$*"`
239 DEBUGLEVEL="${CMD_DEBUGLEVEL}"
240 print_info 2 "CMD_DEBUGLEVEL: $CMD_DEBUGLEVEL"
243 TERM_LINES=`stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1`
244 TERM_COLUMNS=`stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1`
246 if [[ TERM_LINES -lt 19 || TERM_COLUMNS -lt 80 ]]
248 echo "Error: You need a terminal with at least 80 columns"
249 echo " and 19 lines for --menuconfig; try --nomenuconfig..."
253 print_info 2 "CMD_MENUCONFIG: $CMD_MENUCONFIG"
257 print_info 2 "CMD_MENUCONFIG: $CMD_MENUCONFIG"
261 print_info 2 "CMD_GCONFIG: $CMD_GCONFIG"
265 print_info 2 "CMD_XCONFIG: $CMD_XCONFIG"
269 print_info 2 "CMD_SAVE_CONFIG: $CMD_SAVE_CONFIG"
273 print_info 2 "CMD_SAVE_CONFIG: $CMD_SAVE_CONFIG"
277 print_info 2 "CMD_MRPROPER: $CMD_MRPROPER"
281 print_info 2 "CMD_MRPROPER: $CMD_MRPROPER"
285 print_info 2 "CMD_CLEAN: $CMD_CLEAN"
289 print_info 2 "CMD_CLEAN: $CMD_CLEAN"
294 print_info 2 "CMD_CLEAN: $CMD_CLEAN"
295 print_info 2 "CMD_OLDCONFIG: $CMD_OLDCONFIG"
300 BOOTSPLASH_THEME=`parse_opt "$*"`
301 print_info 2 "CMD_BOOTSPLASH: $CMD_BOOTSPLASH"
302 print_info 2 "CMD_GENSPLASH: $CMD_GENSPLASH"
303 print_info 2 "BOOTSPLASH_THEME: $BOOTSPLASH_THEME"
308 print_info 2 "CMD_BOOTSPLASH: $CMD_BOOTSPLASH"
309 print_info 2 "CMD_GENSPLASH: $CMD_GENSPLASH"
313 print_info 2 "CMD_BOOTSPLASH: $CMD_BOOTSPLASH"
318 GENSPLASH_THEME=`parse_opt "$*"`
319 print_info 2 "CMD_GENSPLASH: $CMD_GENSPLASH"
320 print_info 2 "GENSPLASH_THEME: $GENSPLASH_THEME"
321 print_info 2 "CMD_BOOTSPLASH: $CMD_BOOTSPLASH"
326 GENSPLASH_THEME='default'
327 print_info 2 "CMD_GENSPLASH: $CMD_GENSPLASH"
328 print_info 2 "CMD_BOOTSPLASH: $CMD_BOOTSPLASH"
332 print_info 2 "CMD_GENSPLASH: $CMD_GENSPLASH"
335 GENSPLASH_RES=`parse_opt "$*"`
336 print_info 2 "GENSPLASH_RES: $GENSPLASH_RES"
340 print_info 2 "CMD_NOINSTALL: $CMD_NOINSTALL"
344 print_info 2 "CMD_NOINSTALL: $CMD_NOINSTALL"
347 CMD_NOINITRDMODULES=1
348 print_info 2 "CMD_NOINITRDMODULES: $CMD_NOINITRDMODULES"
353 print_info 1 "--udev is deprecated and no longer necessary as udev is on by default"
357 print_info 2 "CMD_UDEV: $CMD_UDEV"
361 print_info 2 "CMD_NO_UDEV: $CMD_NO_UDEV"
365 print_info 2 "CMD_NO_DEVFS: $CMD_NO_DEVFS"
368 CMD_CALLBACK=`parse_opt "$*"`
369 print_info 2 "CMD_CALLBACK: $CMD_CALLBACK/$*"
373 print_info 2 "CMD_STATIC: $CMD_STATIC"
377 print_info 2 "CMD_INITRAMFS: $CMD_INITRAMFS"
380 TEMP=`parse_opt "$*"`
381 print_info 2 "TEMP: $TEMP"
385 print_info 2 "CMD_POSTCLEAR: $CMD_POSTCLEAR"
388 CMD_ARCHOVERRIDE=`parse_opt "$*"`
389 print_info 2 "CMD_ARCHOVERRIDE: $CMD_ARCHOVERRIDE"
393 print_info 2 "CMD_USECOLOR: $CMD_USECOLOR"
397 print_info 2 "CMD_USECOLOR: $CMD_USECOLOR"
400 CMD_DEBUGFILE=`parse_opt "$*"`
401 DEBUGFILE=`parse_opt "$*"`
402 print_info 2 "CMD_DEBUGFILE: $CMD_DEBUGFILE"
403 print_info 2 "DEBUGFILE: $CMD_DEBUGFILE"
406 CMD_KERNELDIR=`parse_opt "$*"`
407 print_info 2 "CMD_KERNELDIR: $CMD_KERNELDIR"
410 CMD_KERNEL_CONFIG=`parse_opt "$*"`
411 print_info 2 "CMD_KERNEL_CONFIG: $CMD_KERNEL_CONFIG"
414 CMD_INSTALL_MOD_PATH=`parse_opt "$*"`
415 print_info 2 "CMD_INSTALL_MOD_PATH: $CMD_INSTALL_MOD_PATH"
418 CACHE_DIR=`parse_opt "$*"`
419 print_info 2 "CACHE_DIR: $CACHE_DIR"
422 CMD_MINKERNPACKAGE=`parse_opt "$*"`
423 print_info 2 "MINKERNPACKAGE: $CMD_MINKERNPACKAGE"
426 CMD_MODULESPACKAGE=`parse_opt "$*"`
427 print_info 2 "MODULESPACKAGE: $CMD_MODULESPACKAGE"
430 CMD_KERNCACHE=`parse_opt "$*"`
431 print_info 2 "KERNCACHE: $CMD_KERNCACHE"
434 CMD_KERNNAME=`parse_opt "$*"`
435 print_info 2 "KERNNAME: $CMD_KERNNAME"
439 print_info 2 "CMD_SYMLINK: $CMD_SYMLINK"
442 CMD_NO_KERNEL_SOURCES=1
443 print_info 2 "CMD_NO_KERNEL_SOURCES: $CMD_NO_KERNEL_SOURCES"
445 --initramfs-overlay=*)
446 CMD_INITRAMFS_OVERLAY=`parse_opt "$*"`
447 print_info 2 "CMD_INITRAMFS_OVERLAY: $CMD_INITRAMFS_OVERLAY"
450 CMD_LINUXRC=`parse_opt "$*"`
451 print_info 2 "CMD_LINUXRC: $CMD_LINUXRC"
454 KERNEL_MAKE_DIRECTIVE_2='zImage.initrd'
455 KERNEL_BINARY_2='arch/ppc/boot/images/zImage.initrd.chrp'
457 print_info 2 "GENERATE_Z_IMAGE: $GENERATE_Z_IMAGE"
461 print_info 2 "CMD_DISKLABEL: $CMD_DISKLABEL"
480 CMD_NOINITRDMODULES=1
481 print_info 2 "CMD_NOINITRDMODULES: $CMD_NOINITRDMODULES"
492 echo "Error: Unknown option '$*'!"