# Copyright 2006-2007 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+ 17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org> README,
+ alpha/config.sh, gen_bootloader.sh, gen_cmdline.sh, gen_configkernel.sh,
+ gen_determineargs.sh, gen_initrd.sh, gen_package.sh, genkernel,
+ genkernel.8, genkernel.conf, ia64/config.sh, mips/config.sh,
+ parisc/config.sh, parisc64/config.sh, ppc/config.sh, ppc64/config.sh,
+ sparc/config.sh, sparc64/config.sh, um/config.sh, x86/config.sh,
+ x86_64/config.sh, xen0/config.sh, xenU/config.sh:
+ Removing bootsplash support since it hasn't been in a kernel we've supported
+ for years now, causes confusion amongst users, and really wasn't being used
+ and caused issues with 2.6/initrd creation in some corner cases.
+
17 Sep 2007; Chris Gianelloni <wolf31o2@gentoo.org>
-pkg/genkernel-svn-suspend.patch:
Removing the reversal patch for the suspend removal, since it will no longer
IMPORTANT KERNEL NOTES:
- You MUST have /dev/pts turned on.
- - If you want Bootsplash, you MUST have VESAFB enabled for 2.6,
- other framebuffers won't work. You MUST also enable
- "video mode selection support" and "Framebuffer Console support"
- - From gentoo-dev-sources-2.6.8 and above, bootsplash has been replaced
- with gensplash. Gensplash has the same kernel configuration requirements
- as bootsplash, but works properly with any framebuffer device.
- - To build a kernel with Genkernel you must have
"Block devices->Loopback device support"
"Block devices->RAM disk support"
- To boot genkernel properly, the kernel config must have
root= needs to point to the ramdisk (should stay at /dev/ram0)
init= needs to point to the linuxrc file to execute on the ramdisk
vga= should be the resolution you want your screen. 0x317 is
- 1024x768 - 16bpp and you'll get a pretty bootsplash if
+ 1024x768 - 16bpp and you'll get a pretty splash if
configured properly
GRUB EXAMPLE ENTRY:
#!/bin/bash
-# x86/config.sh
KERNEL_MAKE_DIRECTIVE="boot"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="arch/alpha/boot/vmlinux.gz"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-
-BOOTSPLASH=no
echo -e "\tkernel /kernel-${KNAME}-${ARCH}-${KV} root=${GRUB_ROOTFS}" >> ${GRUB_CONF}
else
echo -e "\tkernel /kernel-${KNAME}-${ARCH}-${KV} root=/dev/ram0 init=/linuxrc real_root=${GRUB_ROOTFS}" >> ${GRUB_CONF}
- if [ "${PAT}" -gt '4' -a "${CMD_BOOTSPLASH}" != '1' ]
+ if [ "${PAT}" -gt '4' ]
then
echo -e "\tinitrd /initramfs-${KNAME}-${ARCH}-${KV}" >> ${GRUB_CONF}
- else
- echo -e "\tinitrd /initrd-${KNAME}-${ARCH}-${KV}" >> ${GRUB_CONF}
fi
fi
echo >> ${GRUB_CONF}
echo " --no-clean Do not run make clean before compilation"
echo " --no-mrproper Do not run make mrproper before compilation"
echo " --oldconfig Implies --no-clean and runs a 'make oldconfig'"
- echo " --bootsplash Install bootsplash support to the initrd"
- echo " --no-bootsplash Do not use bootsplash"
echo " --gensplash Install gensplash support into bzImage"
echo " --no-gensplash Do not use gensplash"
echo " --install Install the kernel after building"
echo " --no-mountboot Don't mount BOOTDIR automatically"
echo " --bootdir=<dir> Set the location of the boot-directory, default is /boot"
echo " Initialization"
- echo " --bootsplash=<theme> Force bootsplash using <theme>"
echo " --gensplash=<theme> Force gensplash using <theme>"
echo " --gensplash-res=<res> Select gensplash resolutions"
echo " --do-keymap-auto Forces keymap selection at boot"
echo " will be made against a kernel source tree"
echo " --initramfs-overlay=<dir>"
echo " Directory structure to include in the initramfs,"
- echo " only available on 2.6 kernels that do not use"
- echo " bootsplash"
+ echo " only available on 2.6 kernels"
}
usage() {
fi
# Force this on if we are a 2.4 kernel or less
- # Force this on if we are using bootsplash
# This is required for initrd support
# Initramfs doesn't require this
- if [ "${KERN_24}" -eq '1' -o "${CMD_BOOTSPLASH}" = '1' ]
+ # TODO: force on with --genzimage
+ if [ "${KERN_24}" -eq '1' ]
then
# Make sure Ext2 support is on...
sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_EXT2_FS[ =].*/CONFIG_EXT2_FS=y/g'
UNIONFS_MODULES_BINCACHE=`arch_replace "${UNIONFS_MODULES_BINCACHE}"`
BLKID_BINCACHE=`arch_replace "${BLKID_BINCACHE}"`
- if [ "${CMD_BOOTSPLASH}" != '' ]
- then
- BOOTSPLASH=${CMD_BOOTSPLASH}
- fi
-
- if isTrue ${BOOTSPLASH}
- then
- BOOTSPLASH=1
- else
- BOOTSPLASH=0
- fi
-
if [ "${CMD_GENSPLASH}" != '' ]
then
GENSPLASH=${CMD_GENSPLASH}
mv ${TMPDIR}/initrd-${KV}.gz ${TMPDIR}/initrd-${KV}
fi
- if [ "${BOOTSPLASH}" -eq "1" ]
- then
- if [ -x /sbin/splash ]
- then
- [ -z "${BOOTSPLASH_THEME}" ] && [ -e /etc/conf.d/bootsplash.conf ] && source /etc/conf.d/bootsplash.conf
- [ -z "${BOOTSPLASH_THEME}" ] && [ -e /etc/conf.d/bootsplash ] && source /etc/conf.d/bootsplash
- [ -z "${BOOTSPLASH_THEME}" ] && BOOTSPLASH_THEME=default
- print_info 1 " >> Installing bootsplash [ using the ${BOOTSPLASH_THEME} theme ]..."
- for bootRes in '800x600' '1024x768' '1280x1024' '1600x1200'
- do
- if [ -f "/etc/bootsplash/${BOOTSPLASH_THEME}/config/bootsplash-${bootRes}.cfg" ]
- then
- /sbin/splash -s -f /etc/bootsplash/${BOOTSPLASH_THEME}/config/bootsplash-${bootRes}.cfg >> ${TMPDIR}/initrd-${KV} ||
- gen_die "Error: could not copy ${bootRes} bootsplash!"
- else
- print_warning 1 "splash: Did not find a bootsplash for the ${bootRes} resolution..."
- fi
- done
- else
- print_warning 1 ' >> No bootsplash detected; skipping!'
- fi
- fi
if ! isTrue "${CMD_NOINSTALL}"
then
copy_image_with_preserve "initrd" \
if [ "${GENERATE_Z_IMAGE}" != '1' ]
then
- if [ "${KERN_24}" != '1' -a "${CMD_BOOTSPLASH}" != '1' ]
+ if [ "${KERN_24}" != '1' ]
then
[ "${BUILD_INITRD}" -ne 0 ] && { cp "${TMPDIR}/initramfs-${KV}" "${TEMP}/minkernpackage/initramfs-${ARCH}-${KV}" || gen_die 'Could not copy the initramfs for the kernel package!'; }
else
compile_devfsd
fi
- if [ "${KERN_24}" != '1' -a "${CMD_BOOTSPLASH}" != '1' ]
+ if [ "${KERN_24}" != '1' ]
then
if [ "${BUSYBOX}" -eq '1' ]
then
print_info 1 ''
print_info 1 ' Where $ROOT is the device node for your root partition as the'
print_info 1 ' one specified in /etc/fstab'
- elif [ "${KERN_24}" != '1' -a "${CMD_BOOTSPLASH}" != '1' ]
+ elif [ "${KERN_24}" != '1' ]
then
print_info 1 ' real_root=/dev/$ROOT'
print_info 1 ''
print_info 1 'WARNING... WARNING... WARNING...'
print_info 1 'Additional kernel cmdline arguments that *may* be required to boot properly...'
[ "${GENSPLASH}" -eq '1' ] && print_info 1 "add \"vga=791 splash=silent,theme:${GENSPLASH_THEME} console=tty1 quiet\" if you use a gensplash framebuffer ]"
- [ "${BOOTSPLASH}" -eq '1' ] && print_info 1 'add "vga=791 splash=silent" if you use a bootsplash framebuffer'
[ "${LVM2}" -eq '1' ] && print_info 1 'add "dolvm2" for lvm2 support'
[ "${EVMS2}" -eq '1' ] && print_info 1 'add "doevms2" for evms support'
[ "${DMRAID}" -eq '1' ] && print_info 1 'add "dodmraid" for dmraid support'
All that is needed to run genkernel is just ``genkernel'' with an action
and any flags you might need:
.PP
-# genkernel --menuconfig --no-clean --no-install --bootsplash all
+# genkernel --menuconfig --no-clean --no-install all
.PP
This would produce a kernel, asking you what how to configure it
-to your desire, leaving alone any existing compiled object files, enabling
-bootsplash support but not installing anything.
+to your desire, leaving alone any existing compiled object files, butt not
+installing anything.
.SH ACTIONS
An action tells genkernel what you want it to do - the following
actions are supported:
.PP
.BR Initialization
.TP
-\fB\-\-\fR[no\-]\fBbootsplash=\fR<theme>
-If the extra argument is specified, bootsplash is forced using <theme>
-rather than the default theme specified in your bootsplash
-configuration. If \fB\-\-no-bootsplash\fR is specified, then
-bootsplash is disabled.
-.TP
\fB\-\-\fR[no\-]\fBgensplash=\fR<theme>
If the extra argument is specified, gensplash is forced using <theme>
rather than the default theme specified in your gensplash
.TP
\fB\-\-initramfs\-overlay=\fR<dir>
Directory structure to inject into the initramfs.
-Only available on 2.6 kernels that don't use bootsplash; use a CPIO
-archive as a parameter.
+use a CPIO archive as a parameter.
.SH INITRD OPTIONS
The following options can be passed as kernel parameters from the
bootloader, which the initrd scripts would recognize.
# Run 'make mrproper' before configuration/compilation?
MRPROPER="yes"
-# Copy bootsplash into the initrd image?
-BOOTSPLASH="yes"
-
# Override the arch detection?
# ARCH_OVERRIDE="x86"
#!/bin/bash
-# x86/config.sh
KERNEL_MAKE_DIRECTIVE=""
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinux.gz"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-BOOTSPLASH=no
#!/bin/bash
-# genkernel config.sh for mips systems
# Kernel Build Info
KERNEL_MAKE=make
# Initrd/Initramfs Options
COMPRESS_INITRD="yes"
-BOOTSPLASH=0
GENSPLASH=0
USECOLOR="yes"
NOINITRDMODULES="yes"
#!/bin/bash
-# parisc/config.sh
KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinux"
-USE_DIETLIBC=0
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
-BOOTSPLASH=0
-
KERNEL_MAKE=make
UTILS_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-
#!/bin/bash
-# parisc/config.sh
KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinux"
-USE_DIETLIBC=0
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
-BOOTSPLASH=0
-
KERNEL_MAKE=make
UTILS_MAKE=make
#!/bin/bash
-# ppc/config.sh
KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_BINARY="vmlinux"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
#!/bin/bash
-# ppc/config.sh
KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_BINARY="vmlinux"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-
#!/bin/bash
-# sparc/config.sh
KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinux"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=0
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j1"
KERNEL_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-BOOTSPLASH="no"
USECOLOR="no"
#!/bin/bash
-#sparc64-config.sh
KERNEL_MAKE_DIRECTIVE="vmlinux"
KERNEL_MAKE_DIRECTIVE_2="image"
KERNEL_BINARY="arch/sparc64/boot/image"
-# Busybox 1.00-pre3 won't build with dietlibc, when it does we
-# can turn this flag on
-USE_DIETLIBC=0
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-BOOTSPLASH="no"
USECOLOR="no"
#!/bin/bash
-# x86/config.sh
KERNEL_MAKE_DIRECTIVE="linux"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="linux"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE="make ARCH=um"
#!/bin/bash
-# x86/config.sh
KERNEL_MAKE_DIRECTIVE="bzImage"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="arch/i386/boot/bzImage"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
#!/bin/bash
-# x86_64/config.sh
KERNEL_MAKE_DIRECTIVE="bzImage"
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="arch/x86_64/boot/bzImage"
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE=make
UTILS_LD=ld
COMPRESS_INITRD=yes
-
#!/bin/bash
-# x86/config.sh
KERNEL_MAKE_DIRECTIVE=""
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinuz"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=0
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE="make ARCH=xen"
#!/bin/bash
-# x86/config.sh
KERNEL_MAKE_DIRECTIVE=""
KERNEL_MAKE_DIRECTIVE_2=""
KERNEL_BINARY="vmlinuz"
-# The dietlibc portion of busybox is commented out right now
-# other stuff seems to compile fine though
-USE_DIETLIBC=1
-
[ -z "${MAKEOPTS}" ] && MAKEOPTS="-j2"
KERNEL_MAKE="make ARCH=xen"