X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=genkernel;h=8343cfe750248e25cfc78e7db749d558641a6f5f;hb=c57b73f5f8117f79d4b1bd5f66ed6bcd53a91b20;hp=d8374c46d2055f541b4d7c9c0f8b4b6b4a436966;hpb=8baa93a5963d0afd09afa70d4ff3609395e0c3ae;p=genkernel.git diff --git a/genkernel b/genkernel index d8374c4..8343cfe 100755 --- a/genkernel +++ b/genkernel @@ -2,7 +2,7 @@ # $Id$ PATH="${PATH}:/sbin:/usr/sbin" -GK_V='3.4.10.906' +GK_V='3.4.36' # Set the default for TMPDIR. May be modified by genkernel.conf or the # --tempdir command line option. @@ -86,7 +86,7 @@ do 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 @@ -117,6 +117,7 @@ done # get the real arguments for usage... determine_real_args +determine_config_file set_kernel_arch @@ -129,9 +130,10 @@ check_distfiles dump_debugcache NORMAL=${BOLD} print_info 1 "Linux Kernel ${BOLD}${KV}${NORMAL} for ${BOLD}${ARCH}${NORMAL}..." +print_info 1 ".. with config file ${KERNEL_CONFIG}" # Check BOOTDIR is mounted -if isTrue ${CMD_NOINSTALL} +if ! isTrue ${CMD_INSTALL} then isTrue ${MOUNTBOOT} && print_info 2 'Skipping automatic mount of boot' else @@ -200,7 +202,7 @@ then 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 @@ -217,12 +219,12 @@ then 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 @@ -230,7 +232,7 @@ then fi fi -if ! isTrue "${CMD_NOINSTALL}" +if isTrue "${CMD_INSTALL}" then if [ "${KERNCACHE}" != "" -a "${KERNCACHE_IS_VALID}" != "0" ] then @@ -240,7 +242,7 @@ fi 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 @@ -254,13 +256,13 @@ then 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 @@ -268,7 +270,7 @@ then 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..." @@ -277,11 +279,9 @@ then print_info 1 "" 1 0 fi -if [ "${BUILD_RAMDISK}" -eq '1' ] +if [ "${BUILD_RAMDISK}" = '1' ] then - [ "${DISKLABEL}" -eq '1' ] && compile_e2fsprogs - - if [ "${BUSYBOX}" -eq '1' ] + if [ "${BUSYBOX}" = '1' ] then # Compile Busybox compile_busybox @@ -298,7 +298,7 @@ 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 @@ -311,14 +311,17 @@ fi # 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 ]' @@ -338,17 +341,33 @@ then 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="' - [ "${ISCSI}" -eq '1' ] && print_info 1 'add at least "iscsi_initiatorname= iscsi_target= and iscsi_address=" for iscsi support' + 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="' + [ "${ZFS}" = '1' ] && print_warning 1 'add "dozfs" for ZFS volume management support' + [ "${ZFS}" = '1' ] && print_warning 1 'add either "real_root=ZFS" (bootfs autodetection) or "real_root=ZFS=" to boot from a ZFS dataset' + [ "${ISCSI}" = '1' ] && print_warning 1 'add at least "iscsi_initiatorname= iscsi_target= and iscsi_address=" for iscsi support' + + if [[ "$(file --brief --mime-type "${KERNEL_CONFIG}")" == application/x-gzip ]]; then + # Support --kernel-config=/proc/config.gz, mainly + CONFGREP=zgrep + else + CONFGREP=grep + fi + + if [ `${CONFGREP} 'CONFIG_EXT[0-9]_FS=' "${KERNEL_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 + + unset CONFGREP fi [ "${BOOTRW}" != '' ] && mount -o remount,ro ${BOOTDIR} @@ -357,7 +376,7 @@ echo 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