diff options
Diffstat (limited to 'gen_configkernel.sh')
-rwxr-xr-x | gen_configkernel.sh | 62 |
1 files changed, 52 insertions, 10 deletions
diff --git a/gen_configkernel.sh b/gen_configkernel.sh index f746dba3..8d3534b9 100755 --- a/gen_configkernel.sh +++ b/gen_configkernel.sh @@ -113,26 +113,53 @@ config_kernel() { kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS" "y" fi + # If the user has configured DM as built-in, we need to respect that. + cfg_CONFIG_BLK_DEV_DM=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM") + case "$cfg_CONFIG_BLK_DEV_DM" in + y|m) ;; # Do nothing + *) cfg_CONFIG_BLK_DEV_DM='m' + esac + # Make sure lvm modules are on if --lvm if isTrue ${CMD_LVM} then - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m" - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT" "m" - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR" "m" + cfg_CONFIG_DM_SNAPSHOT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT") + case "$cfg_CONFIG_DM_SNAPSHOT" in + y|m) ;; # Do nothing + *) cfg_CONFIG_DM_SNAPSHOT='m' + esac + cfg_CONFIG_DM_MIRROR=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR") + case "$cfg_CONFIG_DM_MIRROR" in + y|m) ;; # Do nothing + *) cfg_CONFIG_DM_MIRROR='m' + esac + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_SNAPSHOT" "${cfg_CONFIG_DM_SNAPSHOT}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MIRROR" "${cfg_CONFIG_DM_MIRROR}" fi # Multipath if isTrue ${CMD_MULTIPATH} then - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m" - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH" "m" - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC" "m" + cfg_CONFIG_DM_MULTIPATH=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH") + case "$cfg_CONFIG_DM_MULTIPATH" in + y|m) ;; # Do nothing + *) cfg_CONFIG_DM_MULTIPATH='m' + esac + cfg_CONFIG_DM_MULTIPATH_RDAC=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC") + case "$cfg_CONFIG_DM_MULTIPATH_RDAC" in + y|m) ;; # Do nothing + *) cfg_CONFIG_DM_MULTIPATH_RDAC='m' + esac + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH" "${cfg_CONFIG_DM_MULTIPATH}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_DM_MULTIPATH_RDAC" "${cfg_CONFIG_DM_MULTIPATH_RDAC}" fi # Make sure dmraid modules are on if --dmraid if isTrue ${CMD_DMRAID} then - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "${cfg_CONFIG_BLK_DEV_DM}" fi # Make sure iSCSI modules are enabled in the kernel, if --iscsi @@ -140,8 +167,18 @@ config_kernel() { # CONFIG_ISCSI_TCP if isTrue ${CMD_ISCSI} then - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "m" - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "m" + cfg_CONFIG_ISCSI_TCP=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP") + case "$cfg_CONFIG_ISCSI_TCP" in + y|m) ;; # Do nothing + *) cfg_CONFIG_ISCSI_TCP='m' + esac + cfg_CONFIG_SCSI_ISCSI_ATTRS=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS") + case "$cfg_CONFIG_SCSI_ISCSI_ATTRS" in + y|m) ;; # Do nothing + *) cfg_CONFIG_SCSI_ISCSI_ATTRS='m' + esac + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "${cfg_CONFIG_ISCSI_TCP}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "${cfg_CONFIG_SCSI_ISCSI_ATTRS}" fi if isTrue ${SPLASH} @@ -167,7 +204,12 @@ config_kernel() { CONFIG_SCSI_VIRTIO \ CONFIG_VHOST_NET \ ; do - kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "$k" "y" + cfg___virtio_opt=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "$k") + case "$cfg___virtio_opt" in + y|m) ;; # Do nothing + *) cfg___virtio_opt='y' + esac + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "$k" "${cfg___virtio_opt}" done fi } |