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 " ramdisk Build only the ramdisk/initramfs"
14 echo "Available Options: "
15 echo " Configuration settings"
16 echo " --config=<file> genkernel configuration file to use"
17 echo " Debug settings"
18 echo " --loglevel=<0-5> Debug Verbosity Level"
19 echo " --logfile=<outfile> Output file for debug info"
20 echo " --color Output debug in color"
21 echo " --no-color Do not output debug in color"
22 echo " Kernel Configuration settings"
23 echo " --menuconfig Run menuconfig after oldconfig"
24 echo " --no-menuconfig Do not run menuconfig after oldconfig"
25 echo " --gconfig Run gconfig after oldconfig"
26 echo " --xconfig Run xconfig after oldconfig"
27 echo " --save-config Save the configuration to /etc/kernels"
28 echo " --no-save-config Don't save the configuration to /etc/kernels"
29 echo " Kernel Compile settings"
30 echo " --clean Run make clean before compilation"
31 echo " --mrproper Run make mrproper before compilation"
32 echo " --no-clean Do not run make clean before compilation"
33 echo " --no-mrproper Do not run make mrproper before compilation"
34 echo " --oldconfig Implies --no-clean and runs a 'make oldconfig'"
35 echo " --gensplash Install framebuffer splash support into initramfs"
36 echo " --splash Install framebuffer splash support into initramfs"
37 echo " --no-splash Do not install framebuffer splash"
38 echo " --install Install the kernel after building"
39 echo " --no-install Do not install the kernel after building"
40 echo " --symlink Manage symlinks in /boot for installed images"
41 echo " --no-symlink Do not manage symlinks"
42 echo " --no-ramdisk-modules Don't copy any modules to the ramdisk"
43 echo " --all-ramdisk-modules Copy all kernel modules to the ramdisk"
44 echo " --callback=<...> Run the specified arguments after the"
45 echo " kernel and modules have been compiled"
46 echo " --static Build a static (monolithic 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"
51 echo " will 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"
65 echo " --makeopts=<makeopts> Make options such as -j2, etc..."
66 echo " --mountboot Mount BOOTDIR automatically if mountable"
67 echo " --no-mountboot Don't mount BOOTDIR automatically"
68 echo " --bootdir=<dir> Set the location of the boot-directory, default is /boot"
69 echo " Initialization"
70 echo " --gensplash=<theme> Enable framebuffer splash using <theme>"
71 echo " --gensplash-res=<res> Select splash theme resolutions to install"
72 echo " --splash=<theme> Enable framebuffer splash using <theme>"
73 echo " --splash-res=<res> Select splash theme resolutions to install"
74 echo " --do-keymap-auto Forces keymap selection at boot"
75 echo " --no-keymap Disables keymap selection support"
76 echo " --evms Include EVMS support"
77 echo " --> 'emerge evms' in the host operating system"
79 echo " --evms2 Include EVMS support"
80 echo " --> 'emerge evms' in the host operating system"
82 echo " --lvm Include LVM support"
83 echo " --lvm2 Include LVM support"
84 echo " --mdadm Copy /etc/mdadm.conf to initramfs"
85 echo " --dmraid Include DMRAID support"
86 echo " --slowusb Enables extra pauses for slow USB CD boots"
87 echo " --bootloader=grub Add new kernel to GRUB configuration"
88 echo " --linuxrc=<file> Specifies a user created linuxrc"
89 echo " --busybox-config=<file> Specifies a user created busybox config"
90 echo " --disklabel Include disk label and uuid support in your"
92 echo " --luks Include LUKS support"
93 echo " --> 'emerge cryptsetup-luks' with USE=-dynamic"
94 echo " --no-busybox Do not include busybox in the initramfs."
95 echo " --unionfs Include support for unionfs"
96 echo " --netboot Create a self-contained env in the initramfs"
97 echo " --real-root=<foo> Specify a default for real_root="
99 echo " --arch-override=<arch> Force to arch instead of autodetect"
100 echo " --cachedir=<dir> Override the default cache location"
101 echo " --tempdir=<dir> Location of Genkernel's temporary directory"
102 echo " --postclear Clear all tmp files and caches after genkernel has run"
103 echo " Output Settings"
104 echo " --kernname=<...> Tag the kernel and ramdisk with a name:"
105 echo " If not defined the option defaults to"
107 echo " --minkernpackage=<tbz2> File to output a .tar.bz2'd kernel and ramdisk:"
108 echo " No modules outside of the ramdisk will be"
110 echo " --modulespackage=<tbz2> File to output a .tar.bz2'd modules after the"
111 echo " callbacks have run"
112 echo " --kerncache=<tbz2> File to output a .tar.bz2'd kernel contents"
113 echo " of /lib/modules/ and the kernel config"
114 echo " NOTE: This is created before the callbacks"
116 echo " --no-kernel-sources This option is only valid if kerncache is"
117 echo " defined. If there is a valid kerncache no checks"
118 echo " will be made against a kernel source tree"
119 echo " --initramfs-overlay=<dir>"
120 echo " Directory structure to include in the initramfs,"
121 echo " only available on 2.6 kernels"
123 echo " Enable copying of firmware into initramfs"
124 echo " --firmware-dir=<dir>"
125 echo " Specify directory to copy firmware from (defaults"
126 echo " to /lib/firmware)"
127 echo " --firmware-files=<files>"
128 echo " Specifies specific firmware files to copy. This"
129 echo " overrides --firmware-dir. For multiple files,"
130 echo " separate the filenames with a comma"
131 echo " --integrated-initramfs"
132 echo " Build the generated initramfs into the kernel instead of"
133 echo " keeping it as a separate file"
137 echo "Gentoo Linux Genkernel ${GK_V}"
139 echo " genkernel [options] all"
141 echo 'Some useful options:'
142 echo ' --menuconfig Run menuconfig after oldconfig'
143 echo ' --no-clean Do not run make clean before compilation'
144 echo ' --no-mrproper Do not run make mrproper before compilation,'
145 echo ' this is implied by --no-clean.'
147 echo 'For a detailed list of supported options and flags; issue:'
148 echo ' genkernel --help'
154 CMD_KERNEL_CC=`parse_opt "$*"`
155 print_info 2 "CMD_KERNEL_CC: ${CMD_KERNEL_CC}"
158 CMD_KERNEL_LD=`parse_opt "$*"`
159 print_info 2 "CMD_KERNEL_LD: ${CMD_KERNEL_LD}"
162 CMD_KERNEL_AS=`parse_opt "$*"`
163 print_info 2 "CMD_KERNEL_AS: ${CMD_KERNEL_AS}"
166 CMD_KERNEL_MAKE=`parse_opt "$*"`
167 print_info 2 "CMD_KERNEL_MAKE: ${CMD_KERNEL_MAKE}"
169 --kernel-cross-compile=*)
170 CMD_KERNEL_CROSS_COMPILE=`parse_opt "$*"`
171 CMD_KERNEL_CROSS_COMPILE=$(echo ${CMD_KERNEL_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
172 print_info 2 "CMD_KERNEL_CROSS_COMPILE: ${CMD_KERNEL_CROSS_COMPILE}"
175 CMD_UTILS_CC=`parse_opt "$*"`
176 print_info 2 "CMD_UTILS_CC: ${CMD_UTILS_CC}"
179 CMD_UTILS_LD=`parse_opt "$*"`
180 print_info 2 "CMD_UTILS_LD: ${CMD_UTILS_LD}"
183 CMD_UTILS_AS=`parse_opt "$*"`
184 print_info 2 "CMD_UTILS_AS: ${CMD_UTILS_AS}"
187 CMD_UTILS_MAKE=`parse_opt "$*"`
188 print_info 2 "CMD_UTILS_MAKE: ${CMD_UTILS_MAKE}"
190 --utils-cross-compile=*)
191 CMD_UTILS_CROSS_COMPILE=`parse_opt "$*"`
192 CMD_UTILS_CROSS_COMPILE=$(echo ${CMD_UTILS_CROSS_COMPILE}|sed -e 's/.*[^-]$/&-/g')
193 print_info 2 "CMD_UTILS_CROSS_COMPILE: ${CMD_UTILS_CROSS_COMPILE}"
196 CMD_UTILS_ARCH=`parse_opt "$*"`
197 print_info 2 "CMD_UTILS_ARCH: ${CMD_ARCHOVERRIDE}"
200 CMD_MAKEOPTS=`parse_opt "$*"`
201 print_info 2 "CMD_MAKEOPTS: ${CMD_MAKEOPTS}"
205 print_info 2 "CMD_MOUNTBOOT: ${CMD_MOUNTBOOT}"
209 print_info 2 "CMD_MOUNTBOOT: ${CMD_MOUNTBOOT}"
212 CMD_BOOTDIR=`parse_opt "$*"`
213 print_info 2 "CMD_BOOTDIR: ${CMD_BOOTDIR}"
218 print_info 2 "CMD_DOKEYMAPAUTO: ${CMD_DOKEYMAPAUTO}"
222 print_info 2 "CMD_KEYMAP: ${CMD_KEYMAP}"
226 print_info 2 "CMD_EVMS: ${CMD_EVMS}"
230 print_info 2 "CMD_EVMS: ${CMD_EVMS}"
232 print_warning 1 "Please use --evms, as --evms2 is deprecated."
236 print_info 2 "CMD_LVM: ${CMD_LVM}"
240 print_info 2 "CMD_LVM: ${CMD_LVM}"
242 print_warning 1 "Please use --lvm, as --lvm2 is deprecated."
246 print_info 2 "CMD_MDADM: $CMD_MDADM"
250 print_info 2 "CMD_BUSYBOX: ${CMD_BUSYBOX}"
254 print_info 2 "CMD_UNIONFS: ${CMD_UNIONFS}"
258 print_info 2 "CMD_NETBOOT: ${CMD_NETBOOT}"
261 CMD_REAL_ROOT=`parse_opt "$*"`
262 print_info 2 "CMD_REAL_ROOT: ${CMD_REAL_ROOT}"
266 print_info 2 "CMD_SLOWUSB: ${CMD_SLOWUSB}"
269 if [ ! -e /usr/include/libdevmapper.h ]
271 echo 'Error: --dmraid requires device-mapper to be installed'
272 echo ' on the host system; try "emerge device-mapper".'
276 print_info 2 "CMD_DMRAID: ${CMD_DMRAID}"
279 CMD_BOOTLOADER=`parse_opt "$*"`
280 print_info 2 "CMD_BOOTLOADER: ${CMD_BOOTLOADER}"
283 CMD_LOGLEVEL=`parse_opt "$*"`
284 LOGLEVEL="${CMD_LOGLEVEL}"
285 print_info 2 "CMD_LOGLEVEL: ${CMD_LOGLEVEL}"
288 TERM_LINES=`stty -a | head -n 1 | cut -d\ -f5 | cut -d\; -f1`
289 TERM_COLUMNS=`stty -a | head -n 1 | cut -d\ -f7 | cut -d\; -f1`
290 if [[ TERM_LINES -lt 19 || TERM_COLUMNS -lt 80 ]]
292 echo "Error: You need a terminal with at least 80 columns"
293 echo " and 19 lines for --menuconfig; try --nomenuconfig..."
297 print_info 2 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
301 print_info 2 "CMD_MENUCONFIG: ${CMD_MENUCONFIG}"
305 print_info 2 "CMD_GCONFIG: ${CMD_GCONFIG}"
309 print_info 2 "CMD_XCONFIG: ${CMD_XCONFIG}"
313 print_info 2 "CMD_SAVE_CONFIG: ${CMD_SAVE_CONFIG}"
317 print_info 2 "CMD_SAVE_CONFIG: ${CMD_SAVE_CONFIG}"
321 print_info 2 "CMD_MRPROPER: ${CMD_MRPROPER}"
325 print_info 2 "CMD_MRPROPER: ${CMD_MRPROPER}"
329 print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
333 print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
338 print_info 2 "CMD_CLEAN: ${CMD_CLEAN}"
339 print_info 2 "CMD_OLDCONFIG: ${CMD_OLDCONFIG}"
343 SPLASH_THEME=`parse_opt "$*"`
344 print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
345 print_info 2 "SPLASH_THEME: ${SPLASH_THEME}"
347 print_warning 1 "Please use --splash, as --gensplash is deprecated."
351 SPLASH_THEME='default'
352 print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
354 print_warning 1 "Please use --splash, as --gensplash is deprecated."
358 SPLASH_THEME=`parse_opt "$*"`
359 print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
360 print_info 2 "SPLASH_THEME: ${SPLASH_THEME}"
364 SPLASH_THEME='default'
365 print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
369 print_info 2 "CMD_SPLASH: ${CMD_SPLASH}"
372 SPLASH_RES=`parse_opt "$*"`
373 print_info 2 "SPLASH_RES: ${SPLASH_RES}"
375 print_warning 1 "Please use --splash-res, as --gensplash-res is deprecated."
378 SPLASH_RES=`parse_opt "$*"`
379 print_info 2 "SPLASH_RES: ${SPLASH_RES}"
383 print_info 2 "CMD_NOINSTALL: ${CMD_NOINSTALL}"
387 print_info 2 "CMD_NOINSTALL: ${CMD_NOINSTALL}"
389 --no-ramdisk-modules)
390 CMD_NORAMDISKMODULES=1
391 print_info 2 "CMD_NORAMDISKMODULES: ${CMD_NORAMDISKMODULES}"
393 --all-ramdisk-modules)
394 CMD_ALLRAMDISKMODULES=1
395 print_info 2 "CMD_ALLRAMDISKMODULES: ${CMD_ALLRAMDISKMODULES}"
398 CMD_CALLBACK=`parse_opt "$*"`
399 print_info 2 "CMD_CALLBACK: ${CMD_CALLBACK}/$*"
403 print_info 2 "CMD_STATIC: ${CMD_STATIC}"
406 TMPDIR=`parse_opt "$*"`
407 TEMP=${TMPDIR}/$RANDOM.$RANDOM.$RANDOM.$$
408 print_info 2 "TMPDIR: ${TMPDIR}"
409 print_info 2 "TEMP: ${TEMP}"
413 print_info 2 "CMD_POSTCLEAR: ${CMD_POSTCLEAR}"
416 CMD_ARCHOVERRIDE=`parse_opt "$*"`
417 print_info 2 "CMD_ARCHOVERRIDE: ${CMD_ARCHOVERRIDE}"
421 print_info 2 "USECOLOR: ${USECOLOR}"
426 print_info 2 "USECOLOR: ${USECOLOR}"
430 CMD_LOGFILE=`parse_opt "$*"`
431 LOGFILE=`parse_opt "$*"`
432 print_info 2 "CMD_LOGFILE: ${CMD_LOGFILE}"
433 print_info 2 "LOGFILE: ${CMD_LOGFILE}"
436 CMD_KERNEL_DIR=`parse_opt "$*"`
437 print_info 2 "CMD_KERNEL_DIR: ${CMD_KERNEL_DIR}"
440 CMD_KERNEL_CONFIG=`parse_opt "$*"`
441 print_info 2 "CMD_KERNEL_CONFIG: ${CMD_KERNEL_CONFIG}"
444 CMD_INSTALL_MOD_PATH=`parse_opt "$*"`
445 print_info 2 "CMD_INSTALL_MOD_PATH: ${CMD_INSTALL_MOD_PATH}"
448 CACHE_DIR=`parse_opt "$*"`
449 print_info 2 "CACHE_DIR: ${CACHE_DIR}"
452 CMD_MINKERNPACKAGE=`parse_opt "$*"`
453 print_info 2 "MINKERNPACKAGE: ${CMD_MINKERNPACKAGE}"
456 CMD_MODULESPACKAGE=`parse_opt "$*"`
457 print_info 2 "MODULESPACKAGE: ${CMD_MODULESPACKAGE}"
460 CMD_KERNCACHE=`parse_opt "$*"`
461 print_info 2 "KERNCACHE: ${CMD_KERNCACHE}"
464 CMD_KERNNAME=`parse_opt "$*"`
465 print_info 2 "KERNNAME: ${CMD_KERNNAME}"
469 print_info 2 "CMD_SYMLINK: ${CMD_SYMLINK}"
473 print_info 2 "CMD_SYMLINK: ${CMD_SYMLINK}"
476 CMD_NO_KERNEL_SOURCES=1
477 print_info 2 "CMD_NO_KERNEL_SOURCES: ${CMD_NO_KERNEL_SOURCES}"
479 --initramfs-overlay=*)
480 CMD_INITRAMFS_OVERLAY=`parse_opt "$*"`
481 print_info 2 "CMD_INITRAMFS_OVERLAY: ${CMD_INITRAMFS_OVERLAY}"
484 CMD_LINUXRC=`parse_opt "$*"`
485 print_info 2 "CMD_LINUXRC: ${CMD_LINUXRC}"
488 CMD_BUSYBOX_CONFIG=`parse_opt "$*"`
489 print_info 2 "CMD_BUSYBOX_CONFIG: ${CMD_BUSYBOX_CONFIG}"
492 KERNEL_MAKE_DIRECTIVE_2='zImage.initrd'
493 KERNEL_BINARY_2='arch/powerpc/boot/zImage.initrd'
495 # ENABLE_PEGASOS_HACKS="yes"
496 # print_info 2 "ENABLE_PEGASOS_HACKS: ${ENABLE_PEGASOS_HACKS}"
500 print_info 2 "CMD_DISKLABEL: ${CMD_DISKLABEL}"
504 print_info 2 "CMD_LUKS: ${CMD_LUKS}"
508 print_info 2 "CMD_FIRMWARE: ${CMD_FIRMWARE}"
511 CMD_FIRMWARE_DIR=`parse_opt "$*"`
513 print_info 2 "CMD_FIRMWARE_DIR: ${CMD_FIRMWARE_DIR}"
516 CMD_FIRMWARE_FILES=`parse_opt "$*"`
518 print_info 2 "CMD_FIRMWARE_FILES: ${CMD_FIRMWARE_FILES}"
520 --integrated-initramfs)
521 CMD_INTEGRATED_INITRAMFS=1
522 print_info 2 "CMD_INTEGRATED_INITRAMFS=${CMD_INTEGRATED_INITRAMFS}"
525 print_info 2 "CMD_GK_CONFIG: `parse_opt "$*"`"
544 CMD_NORAMDISKMODULES=1
545 print_info 2 "CMD_NORAMDISKMODULES: ${CMD_NORAMDISKMODULES}"
556 echo "Error: Unknown option '$*'!"