diff -ur genkernel-3.4.7_pre5/gen_cmdline.sh genkernel-3.4.7_pre5.JEN/gen_cmdline.sh --- genkernel-3.4.7_pre5/gen_cmdline.sh 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/gen_cmdline.sh 2007-03-28 14:58:37.000000000 -0500 @@ -76,6 +76,7 @@ echo " first" echo " --lvm2 Include LVM2 support" # echo " --unionfs Include UNIONFS support" + echo " --mdraid Include MDRAID support" echo " --dmraid Include DMRAID support" echo " --suspend Include userspace suspend/resume (uswsusp) support" echo " --slowusb Enables extra pauses for slow USB CD boots" @@ -248,6 +249,10 @@ CMD_SLOWUSB=1 print_info 2 "CMD_SLOWUSB: $CMD_SLOWUSB" ;; + --mdraid) + CMD_MDRAID=1 + print_info 2 "CMD_MDRAID: $CMD_MDRAID" + ;; --dmraid) if [ ! -e /usr/include/libdevmapper.h ] then diff -ur genkernel-3.4.7_pre5/gen_compile.sh genkernel-3.4.7_pre5.JEN/gen_compile.sh --- genkernel-3.4.7_pre5/gen_compile.sh 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/gen_compile.sh 2007-03-28 14:58:37.000000000 -0500 @@ -511,6 +511,34 @@ fi } +compile_mdraid() { + if [ ! -f "${MDRAID_BINCACHE}" ] + then + [ -f "${MDRAID_SRCTAR}" ] || + gen_die "Could not find MDRAID source tarball: ${MDRAID_SRCTAR}! Please place it there, or place another version, changing /etc/genkernel.conf as necessary!" + cd "${TEMP}" + rm -rf ${MDRAID_DIR} > /dev/null + /bin/tar -jxpf ${MDRAID_SRCTAR} || + gen_die 'Could not extract MDRAID source tarball!' + [ -d "${MDRAID_DIR}" ] || + gen_die 'MDRAID directory ${MDRAID_DIR} is invalid!' + + cd "${MDRAID_DIR}" + mkdir -p "${TEMP}/mdraid" + print_info 1 'mdraid: >> Compiling...' + compile_generic 'mdadm.static' utils + mkdir ${TEMP}/mdraid/sbin + install -m 0755 -s mdadm.static "${TEMP}/mdraid/sbin/mdadm" + print_info 1 ' >> Copying to bincache...' + cd "${TEMP}/mdraid" + /bin/tar -cjf "${MDRAID_BINCACHE}" sbin/mdadm || + gen_die 'Could not create binary cache' + + cd "${TEMP}" + rm -rf "${MDRAID_DIR}" mdraid + fi +} + compile_dmraid() { compile_device_mapper if [ ! -f "${DMRAID_BINCACHE}" ] diff -ur genkernel-3.4.7_pre5/gen_configkernel.sh genkernel-3.4.7_pre5.JEN/gen_configkernel.sh --- genkernel-3.4.7_pre5/gen_configkernel.sh 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/gen_configkernel.sh 2007-03-28 14:58:37.000000000 -0500 @@ -110,6 +110,15 @@ sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_DM_MIRROR is.*/CONFIG_DM_MIRROR=m/g' fi + # Make sure dmraid modules are on if --mdraid + if isTrue ${CMD_MDRAID} + then + sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_MD is.*/CONFIG_MD=m/g' + sed -i ${KERNEL_DIR}/.config -e 's/#\? \?CONFIG_BLK_DEV_MD is.*/CONFIG_BLK_DEV_MD=m/g' + # Probably better to throw an error here than force all the MD modes to be enabled + # JEN FIXME make sure at least one RAID or LINEAR mode is enabled, if not maybe enable all of them + fi + # Make sure dmraid modules are on if --dmraid if isTrue ${CMD_DMRAID} then diff -ur genkernel-3.4.7_pre5/gen_determineargs.sh genkernel-3.4.7_pre5.JEN/gen_determineargs.sh --- genkernel-3.4.7_pre5/gen_determineargs.sh 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/gen_determineargs.sh 2007-03-28 14:58:37.000000000 -0500 @@ -207,6 +207,7 @@ KLIBC_BINCACHE=`cache_replace "${KLIBC_BINCACHE}"` DEVICE_MAPPER_BINCACHE=`cache_replace "${DEVICE_MAPPER_BINCACHE}"` LVM2_BINCACHE=`cache_replace "${LVM2_BINCACHE}"` + MDRAID_BINCACHE=`cache_replace "${MDRAID_BINCACHE}"` DMRAID_BINCACHE=`cache_replace "${DMRAID_BINCACHE}"` UNIONFS_BINCACHE=`cache_replace "${UNIONFS_BINCACHE}"` UNIONFS_MODULES_BINCACHE=`cache_replace "${UNIONFS_MODULES_BINCACHE}"` @@ -226,6 +227,7 @@ KLIBC_BINCACHE=`arch_replace "${KLIBC_BINCACHE}"` DEVICE_MAPPER_BINCACHE=`arch_replace "${DEVICE_MAPPER_BINCACHE}"` LVM2_BINCACHE=`arch_replace "${LVM2_BINCACHE}"` + MDRAID_BINCACHE=`arch_replace "${MDRAID_BINCACHE}"` DMRAID_BINCACHE=`arch_replace "${DMRAID_BINCACHE}"` UNIONFS_BINCACHE=`arch_replace "${UNIONFS_BINCACHE}"` UNIONFS_MODULES_BINCACHE=`arch_replace "${UNIONFS_MODULES_BINCACHE}"` @@ -458,6 +460,13 @@ BUSYBOX=1 fi + if isTrue "${CMD_MDRAID}" + then + MDRAID=1 + else + MDRAID=0 + fi + if isTrue "${CMD_DMRAID}" then DMRAID=1 diff -ur genkernel-3.4.7_pre5/gen_initramfs.sh genkernel-3.4.7_pre5.JEN/gen_initramfs.sh --- genkernel-3.4.7_pre5/gen_initramfs.sh 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/gen_initramfs.sh 2007-03-28 14:58:37.000000000 -0500 @@ -185,6 +185,21 @@ rm -r "${TEMP}/initramfs-suspend-temp/" } +append_mdraid(){ + if [ -d "${TEMP}/initramfs-mdraid-temp" ] + then + rm -r "${TEMP}/initramfs-mdraid-temp/" + fi + print_info 1 'MDRAID: Adding support (compiling binaries)...' + compile_mdraid + mkdir -p "${TEMP}/initramfs-mdraid-temp/" + /bin/tar -jxpf "${MDRAID_BINCACHE}" -C "${TEMP}/initramfs-mdraid-temp" || + gen_die "Could not extract mdraid binary cache!"; + cd "${TEMP}/initramfs-mdraid-temp/" + find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" + rm -r "${TEMP}/initramfs-mdraid-temp/" +} + append_dmraid(){ if [ -d "${TEMP}/initramfs-dmraid-temp" ] then @@ -491,6 +506,7 @@ append_data 'unionfs_tools' "${UNIONFS}" append_data 'suspend' "${SUSPEND}" append_data 'lvm2' "${LVM2}" + append_data 'mdraid' "${MDRAID}" append_data 'dmraid' "${DMRAID}" append_data 'evms2' "${EVMS2}" diff -ur genkernel-3.4.7_pre5/gen_initrd.sh genkernel-3.4.7_pre5.JEN/gen_initrd.sh --- genkernel-3.4.7_pre5/gen_initrd.sh 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/gen_initrd.sh 2007-03-28 14:58:37.000000000 -0500 @@ -156,6 +156,15 @@ gen_die 'Could not copy /etc/suspend.conf' fi + # MDRAID + if [ "${MDRAID}" = '1' ] + then + print_info 1 'MDRAID: Adding support (compiling binaries)...' + compile_mdraid + /bin/tar -jxpf "${MDRAID_BINCACHE}" -C "${TEMP}/initrd-temp" || + gen_die "Could not extract mdraid binary cache!"; + fi + # DMRAID if [ "${DMRAID}" = '1' ] then diff -ur genkernel-3.4.7_pre5/generic/initrd.scripts genkernel-3.4.7_pre5.JEN/generic/initrd.scripts --- genkernel-3.4.7_pre5/generic/initrd.scripts 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/generic/initrd.scripts 2007-03-28 14:58:37.000000000 -0500 @@ -556,7 +556,17 @@ mkdir -p /dev/mapper ln -sf /dev/device-mapper /dev/mapper/control fi - + + if [ "${USE_MDRAID}" -eq 1 ] + then + for i in 0 1 10 456 ; do + modprobe raid$i 1>/dev/null 2>&1 + done + + /sbin/mdadm --examine --scan > /etc/mdadm.conf + /sbin/mdadm --assemble --scan + fi + if [ "${USE_DMRAID_NORMAL}" -eq '1' ] then if [ -e '/sbin/dmraid' ] diff -ur genkernel-3.4.7_pre5/generic/linuxrc genkernel-3.4.7_pre5.JEN/generic/linuxrc --- genkernel-3.4.7_pre5/generic/linuxrc 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/generic/linuxrc 2007-03-28 14:58:37.000000000 -0500 @@ -119,6 +119,9 @@ dolvm2) USE_LVM2_NORMAL=1 ;; + domdraid) + USE_MDRAID=1 + ;; dodmraid) USE_DMRAID_NORMAL=1 ;; diff -ur genkernel-3.4.7_pre5/genkernel genkernel-3.4.7_pre5.JEN/genkernel --- genkernel-3.4.7_pre5/genkernel 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/genkernel 2007-03-28 14:58:37.000000000 -0500 @@ -392,6 +392,7 @@ [ "${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' + [ "${MDRAID}" -eq '1' ] && print_info 1 'add "domdraid" for mdraid support' [ "${DMRAID}" -eq '1' ] && print_info 1 'add "dodmraid" for dmraid support' [ "${DMRAID}" -eq '1' ] && print_info 1 ' or "dodmraid="' [ "${UNIONFS}" -eq '1' ] && print_info 1 'add "unionfs" for unionfs support' diff -ur genkernel-3.4.7_pre5/genkernel.8 genkernel-3.4.7_pre5.JEN/genkernel.8 --- genkernel-3.4.7_pre5/genkernel.8 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/genkernel.8 2007-03-28 14:58:37.000000000 -0500 @@ -173,8 +173,11 @@ \fB\-\-do\-keymap\-auto\fR Force keymap selection at boot. .TP +\fB\-\-mdraid\fR +Add MDRAID (mdadm) RAID-0,1,4,5,6,10 and linear array boot support. +.TP \fB\-\-dmraid\fR -Add DMRAID support. +Add DMRAID (Device Mapper "fakeraid") support. .TP \fB\-\-evms2\fR Add in EVMS2 support from static binaries if they exist on the system: diff -ur genkernel-3.4.7_pre5/genkernel.conf genkernel-3.4.7_pre5.JEN/genkernel.conf --- genkernel-3.4.7_pre5/genkernel.conf 2007-03-13 20:20:22.000000000 -0500 +++ genkernel-3.4.7_pre5.JEN/genkernel.conf 2007-03-28 14:55:21.000000000 -0500 @@ -123,6 +123,11 @@ LVM2_SRCTAR="${GK_SHARE}/pkg/LVM2.${LVM2_VER}.tgz" LVM2_BINCACHE="%%CACHE%%/LVM2.${LVM2_VER}-%%ARCH%%.tar.bz2" +MDRAID_VER="2.6.1" +MDRAID_DIR="mdadm-${MDRAID_VER}" +MDRAID_SRCTAR="${GK_SHARE}/pkg/mdadm-${MDRAID_VER}.tar.bz2" +MDRAID_BINCACHE="%%CACHE%%/mdadm-${MDRAID_VER}-%%ARCH%%.tar.bz2" + DMRAID_VER="VERSION_DMRAID" DMRAID_DIR="dmraid/${DMRAID_VER}" DMRAID_SRCTAR="${GK_SHARE}/pkg/dmraid-${DMRAID_VER}.tar.bz2"