diff options
-rwxr-xr-x | gen_compile.sh | 2 | ||||
-rwxr-xr-x | gen_configkernel.sh | 49 | ||||
-rwxr-xr-x | gen_initramfs.sh | 8 | ||||
-rwxr-xr-x | gen_moddeps.sh | 6 |
4 files changed, 34 insertions, 31 deletions
diff --git a/gen_compile.sh b/gen_compile.sh index c26a6522..8d8f04ae 100755 --- a/gen_compile.sh +++ b/gen_compile.sh @@ -697,7 +697,7 @@ compile_iscsi() { KEXT=$(modules_kext) for modname in iscsi_tcp libiscsi scsi_transport_iscsi do - module=${CMD_KERNEL_DIR}/drivers/scsi/${modname}${KEXT} + module=${KERNEL_OUTPUTDIR}/drivers/scsi/${modname}${KEXT} if [ -e "${module}" ] then cp $module "${TEMP}/initramfs-iscsi-temp/lib/modules/${KV}/kernel/drivers/scsi/" diff --git a/gen_configkernel.sh b/gen_configkernel.sh index ac29852c..81b2b529 100755 --- a/gen_configkernel.sh +++ b/gen_configkernel.sh @@ -32,6 +32,15 @@ determine_config_file() { fi } +function kconfig_set_opt() { + kconfig="$1" + optname="$2" + optval="$3" + sed -i "${kconfig}" \ + -e "s/^#\? \?${optname}[ =].*/${optname}=${optval}/g" \ + gen_die "Failed to set ${optname}=${optval} in $kconfig" +} + config_kernel() { determine_config_file cd "${KERNEL_DIR}" || gen_die 'Could not switch to the kernel directory!' @@ -110,30 +119,29 @@ config_kernel() { if isTrue ${CMD_GENZIMAGE} then # Make sure Ext2 support is on... - sed -e 's/#\? \?CONFIG_EXT2_FS[ =].*/CONFIG_EXT2_FS=y/g' \ - -i ${KERNEL_OUTPUTDIR}/.config + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_EXT2_FS" "y" fi # Make sure lvm modules are on if --lvm if isTrue ${CMD_LVM} then - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/#\? \?CONFIG_BLK_DEV_DM is.*/CONFIG_BLK_DEV_DM=m/g' - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/#\? \?CONFIG_DM_SNAPSHOT is.*/CONFIG_DM_SNAPSHOT=m/g' - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/#\? \?CONFIG_DM_MIRROR is.*/CONFIG_DM_MIRROR=m/g' + 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" fi # Multipath if isTrue ${CMD_MULTIPATH} then - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_BLK_DEV_DM is.*/CONFIG_BLK_DEV_DM=m/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_DM_MULTIPATH is.*/CONFIG_DM_MULTIPATH=m/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_DM_MULTIPATH_RDAC is.*/CONFIG_DM_MULTIPATH_RDAC=m/g' + 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" fi # Make sure dmraid modules are on if --dmraid if isTrue ${CMD_DMRAID} then - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/#\? \?CONFIG_BLK_DEV_DM is.*/CONFIG_BLK_DEV_DM=m/g' + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_BLK_DEV_DM" "m" fi # Make sure iSCSI modules are enabled in the kernel, if --iscsi @@ -141,28 +149,23 @@ config_kernel() { # CONFIG_ISCSI_TCP if isTrue ${CMD_ISCSI} then - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/\# CONFIG_ISCSI_TCP is not set/CONFIG_ISCSI_TCP=m/g' - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/\# CONFIG_SCSI_ISCSI_ATTRS is not set/CONFIG_SCSI_ISCSI_ATTRS=m/g' - - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/CONFIG_ISCSI_TCP=y/CONFIG_ISCSI_TCP=m/g' - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/CONFIG_SCSI_ISCSI_ATTRS=y/CONFIG_SCSI_ISCSI_ATTRS=m/g' + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_ISCSI_TCP" "m" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_SCSI_ISCSI_ATTRS" "m" fi if isTrue ${SPLASH} then - sed -i ${KERNEL_OUTPUTDIR}/.config -e 's/#\? \?CONFIG_FB_SPLASH is.*/CONFIG_FB_SPLASH=y/g' + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB_SPLASH" "y" fi # VirtIO if isTrue ${CMD_VIRTIO} then - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_PARAVIRT_GUEST.*/CONFIG_PARAVIRT_GUEST=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_VIRTIO_PCI.*/CONFIG_VIRTIO_PCI=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_VIRTIO_BALLOON.*/CONFIG_VIRTIO_BALLOON=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_VIRTIO_MMIO.*/CONFIG_VIRTIO_MMIO=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_VIRTIO_BLK.*/CONFIG_VIRTIO_BLK=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_SCSI_VIRTIO.*/CONFIG_SCSI_VIRTIO=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_VIRTIO_NET.*/CONFIG_VIRTIO_NET=y/g' - sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_VHOST_NET.*/CONFIG_VHOST_NET=y/g' + for k in \ + CONFIG_PARAVIRT_GUEST CONFIG_VIRTIO_PCI CONFIG_VIRTIO_BALLOON \ + CONFIG_VIRTIO_MMIO CONFIG_VIRTIO_BLK CONFIG_SCSI_VIRTIO \ + CONFIG_VIRTIO_NET CONFIG_VHOST_NET ; do + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_FB_SPLASH" "y" + done fi } diff --git a/gen_initramfs.sh b/gen_initramfs.sh index 163eedbd..a03f5b1a 100755 --- a/gen_initramfs.sh +++ b/gen_initramfs.sh @@ -898,7 +898,7 @@ create_initramfs() { # Explicitly do not compress if we are integrating into the kernel. # The kernel will do a better job of it than us. mv ${TMPDIR}/initramfs-${KV} ${TMPDIR}/initramfs-${KV}.cpio - sed -i '/^.*CONFIG_INITRAMFS_SOURCE=.*$/d' ${KERNEL_DIR}/.config + sed -i '/^.*CONFIG_INITRAMFS_SOURCE=.*$/d' ${KERNEL_OUTPUTDIR}/.config compress_config='INITRAMFS_COMPRESSION_NONE' case ${compress_ext} in gz) compress_config='INITRAMFS_COMPRESSION_GZIP' ;; @@ -911,7 +911,7 @@ create_initramfs() { esac # All N default except XZ, so there it gets used if the kernel does # compression on it's own. - cat >>${KERNEL_DIR}/.config <<-EOF + cat >>${KERNEL_OUTPUTDIR}/.config <<-EOF CONFIG_INITRAMFS_SOURCE="${TMPDIR}/initramfs-${KV}.cpio${compress_ext}" CONFIG_INITRAMFS_ROOT_UID=0 CONFIG_INITRAMFS_ROOT_GID=0 @@ -929,8 +929,8 @@ create_initramfs() { then # NOTE: We do not work with ${KERNEL_CONFIG} here, since things like # "make oldconfig" or --noclean could be in effect. - if [ -f "${KERNEL_DIR}"/.config ]; then - local ACTUAL_KERNEL_CONFIG="${KERNEL_DIR}"/.config + if [ -f "${KERNEL_OUTPUTDIR}"/.config ]; then + local ACTUAL_KERNEL_CONFIG="${KERNEL_OUTPUTDIR}"/.config else local ACTUAL_KERNEL_CONFIG="${KERNEL_CONFIG}" fi diff --git a/gen_moddeps.sh b/gen_moddeps.sh index 415e095a..053a1831 100755 --- a/gen_moddeps.sh +++ b/gen_moddeps.sh @@ -4,9 +4,9 @@ modules_kext() { KEXT=".ko" - if grep -sq '^CONFIG_MODULE_COMPRESS=y' "${KERNEL_DIR}"/.config; then - grep -sq '^CONFIG_MODULE_COMPRESS_XZ=y' "${KERNEL_DIR}"/.config && KEXT='.ko.xz' - grep -sq '^CONFIG_MODULE_COMPRESS_GZIP=y' "${KERNEL_DIR}"/.config && KEXT='.ko.gz' + if grep -sq '^CONFIG_MODULE_COMPRESS=y' "${KERNEL_OUTPUTDIR}"/.config; then + grep -sq '^CONFIG_MODULE_COMPRESS_XZ=y' "${KERNEL_OUTPUTDIR}"/.config && KEXT='.ko.xz' + grep -sq '^CONFIG_MODULE_COMPRESS_GZIP=y' "${KERNEL_OUTPUTDIR}"/.config && KEXT='.ko.gz' fi echo ${KEXT} } |