#!/bin/bash
+# $Id$
PATH="${PATH}:/sbin:/usr/sbin"
-GK_V='3.4.10'
+GK_V='3.4.20'
# Set the default for TMPDIR. May be modified by genkernel.conf or the
# --tempdir command line option.
done
# Check if no action is specified...
-if [ "${BUILD_KERNEL}" -eq '0' -a "${BUILD_RAMDISK}" -eq '0' ]
+if [ "${BUILD_KERNEL}" = '0' -a "${BUILD_RAMDISK}" = '0' ]
then
usage
exit 1
NORMAL=${BOLD} print_info 1 "Linux Kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL}..."
-if [ "${BUILD_RAMDISK}" -ne '0' ]
-then
- if ! has_loop
- then
- modprobe loop 2>/dev/null
- sleep 3
- if ! has_loop
- then
- print_error 1 'The build-host kernel does not appear to have loop device support.'
- print_error 1 'Please load loop support before running genkernel!'
- gen_die 'Load loop support!'
- else
- print_info 1 'loop: "loop" module loaded successfully...'
- fi
- fi
-fi
-
# Check BOOTDIR is mounted
-if isTrue ${CMD_NOINSTALL}
+if ! isTrue ${CMD_INSTALL}
then
isTrue ${MOUNTBOOT} && print_info 2 'Skipping automatic mount of boot'
else
gen_kerncache_is_valid
fi
-if [ ${BUILD_KERNEL} -eq '1' -a "${KERNCACHE_IS_VALID}" == "0" ]
+if [ ${BUILD_KERNEL} = '1' -a "${KERNCACHE_IS_VALID}" = '0' ]
then
# Configure kernel
config_kernel
compile_kernel
# Compile modules
- if [ ${BUILD_MODULES} -eq '1' -a ${BUILD_STATIC} -eq '0' ]
+ if [ "${BUILD_MODULES}" = '1' -a "${BUILD_STATIC}" = '0' ]
then
compile_modules
fi
- if [ ${SAVE_CONFIG} -eq '1' ]
+ if [ "${SAVE_CONFIG}" = '1' ]
then
print_info 1 "Copying config for successful build to /etc/kernels/kernel-config-${ARCH}-${KV}"
[ ! -e '/etc/kernels' ] && mkdir -p /etc/kernels
fi
fi
-if ! isTrue "${CMD_NOINSTALL}"
+if isTrue "${CMD_INSTALL}"
then
if [ "${KERNCACHE}" != "" -a "${KERNCACHE_IS_VALID}" != "0" ]
then
if [ "${KERNCACHE}" != "" -a "${KERNCACHE_IS_VALID}" != "0" ]
then
- [ ${BUILD_STATIC} -eq '0' ] && gen_kerncache_extract_modules
+ [ "${BUILD_STATIC}" = '0' ] && gen_kerncache_extract_modules
gen_kerncache_extract_config
fi
CALLBACK_COUNT=0
trap "CALLBACK_ESCAPE=1" TERM KILL INT QUIT ABRT
- while [[ ${CALLBACK_ESCAPE} -eq '0' && ${CALLBACK_COUNT} -lt 5 ]]
+ while [[ "${CALLBACK_ESCAPE}" = '0' && ${CALLBACK_COUNT} -lt 5 ]]
do
sleep 1; echo -n '.';
let CALLBACK_COUNT=${CALLBACK_COUNT}+1
done
- if [ "${CALLBACK_ESCAPE}" -eq '0' ]
+ if [ "${CALLBACK_ESCAPE}" = '0' ]
then
echo
echo
CMD_STATUS="${PIPESTATUS[0]}"
echo
print_info 1 "<<< Callback exit status: ${CMD_STATUS}"
- [ "${CMD_STATUS}" -ne 0 ] && gen_die '--callback failed!'
+ [ "${CMD_STATUS}" != '0' ] && gen_die '--callback failed!'
else
echo
print_info 1 ">>> Callback cancelled..."
print_info 1 "" 1 0
fi
-if [ "${BUILD_RAMDISK}" -eq '1' ]
+if [ "${BUILD_RAMDISK}" = '1' ]
then
- [ "${DISKLABEL}" -eq '1' ] && compile_e2fsprogs
+ [ "${DISKLABEL}" = '1' ] && compile_e2fsprogs
- if [ "${BUSYBOX}" -eq '1' ]
+ if [ "${BUSYBOX}" = '1' ]
then
# Compile Busybox
compile_busybox
fi
-
+
+ if isTrue "${UNIONFS}"
+ then
+ compile_unionfs_fuse
+ fi
+
# Compile initramfs
create_initramfs
else
print_info 1 'initrd: Not building since only the kernel was requested...'
fi
-if isTrue "${INTEGRATED_INITRAMFS}" #|| [ ${BUILD_KERNEL} -eq '1' -a "${KERNCACHE_IS_VALID}" == "0" ]
+if isTrue "${INTEGRATED_INITRAMFS}" #|| [ "${BUILD_KERNEL}" = '1' -a "${KERNCACHE_IS_VALID}" == "0" ]
then
# We build the kernel a second time to include the initramfs
compile_kernel
# Clean up...
[ -n "${CTEMP}" ] && rm -rf "${TEMP}"
-if [ "${BUILD_KERNEL}" -eq '1' ]
+if [ "${BUILD_KERNEL}" = '1' ]
then
- set_bootloader
+ if isTrue "${CMD_INSTALL}"
+ then
+ set_bootloader
+ fi
print_info 1 ''
print_info 1 "Kernel compiled successfully!"
print_info 1 ''
print_info 1 'Required Kernel Parameters:'
- if [ "${BUILD_RAMDISK}" -eq '0' ]
+ if [ "${BUILD_RAMDISK}" = '0' ]
then
print_info 1 ' root=/dev/$ROOT'
print_info 1 ' [ And "vga=0x317 splash=verbose" if you use a framebuffer ]'
fi
fi
-if [ "${BUILD_RAMDISK}" -eq '1' ]
+if [ "${BUILD_RAMDISK}" = '1' ]
then
echo
- print_info 1 'WARNING... WARNING... WARNING...'
- print_info 1 'Additional kernel cmdline arguments that *may* be required to boot properly...'
- [ "${SPLASH}" -eq '1' ] && print_info 1 "add \"vga=791 splash=silent,theme:${SPLASH_THEME} console=tty1 quiet\" if you use a splash framebuffer ]"
- [ "${LVM}" -eq '1' ] && print_info 1 'add "dolvm" for lvm support'
- [ "${EVMS}" -eq '1' ] && print_info 1 'add "doevms" for evms support'
- [ "${DMRAID}" -eq '1' ] && print_info 1 'add "dodmraid" for dmraid support'
- [ "${DMRAID}" -eq '1' ] && print_info 1 ' or "dodmraid=<additional options>"'
+ print_warning 1 'WARNING... WARNING... WARNING...'
+ print_warning 1 'Additional kernel cmdline arguments that *may* be required to boot properly...'
+ [ "${SPLASH}" = '1' ] && print_warning 1 "add \"vga=791 splash=silent,theme:${SPLASH_THEME} console=tty1 quiet\" if you use a splash framebuffer ]"
+ [ "${LVM}" = '1' ] && print_warning 1 'add "dolvm" for lvm support'
+ [ "${DMRAID}" = '1' ] && print_warning 1 'add "dodmraid" for dmraid support'
+ [ "${MDADM}" = '1' ] && print_warning 1 'add "domdadm" for RAID support'
+ [ "${DMRAID}" = '1' ] && print_warning 1 ' or "dodmraid=<additional options>"'
+ [ "${ISCSI}" = '1' ] && print_warning 1 'add at least "iscsi_initiatorname=<initiator name> iscsi_target=<target name> and iscsi_address=<target ip>" for iscsi support'
+ if [ `grep 'CONFIG_EXT[0-9]_FS=' "${KERNEL_DIR}"/.config | wc -l` -ge 2 ]; then
+ print_warning 1 'With support for several ext* filesystems around it may be needed to'
+ print_warning 1 'add "rootfstype=ext3" or "rootfstype=ext4"'
+ fi
fi
[ "${BOOTRW}" != '' ] && mount -o remount,ro ${BOOTDIR}
print_info 1 'Do NOT report kernel bugs as genkernel bugs unless your bug'
print_info 1 'is about the default genkernel configuration...'
print_info 1 ''
-print_info 1 'Make sure you have the latest genkernel before reporting bugs.'
+print_info 1 'Make sure you have the latest ~arch genkernel before reporting bugs.'
#Final Cleanup
cleanup