>> 3.0.2e. Code formatting fixes from Bob Barry, as well as a patch for bug

#57953 from Martin Parm. Udev support, bug #49328.


git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/genkernel/trunk@119 67a159dc-881f-0410-a524-ba9dfbe2cb84
cleanup-cruft
Tim Yamin 21 years ago
parent 691f9b227b
commit 70112f8546

@ -70,7 +70,7 @@ set_grub_bootloader() {
sub(/\(.+\)/,"(" ch KV ch ")",$1); sub(/\(.+\)/,"(" ch KV ch ")",$1);
sub(/kernel-[[:alnum:][:punct:]]+/, "kernel-" KV, $3); sub(/kernel-[[:alnum:][:punct:]]+/, "kernel-" KV, $3);
sub(/initrd-[[:alnum:][:punct:]]+/, "initrd-" KV, $4); sub(/initrd-[[:alnum:][:punct:]]+/, "initrd-" KV, $4);
print RS ch $0 }' print RS ch $0 }' \
KV=$KV $GRUB_CONF.bak >> $GRUB_CONF KV=$KV $GRUB_CONF.bak >> $GRUB_CONF
fi fi
} }

@ -34,6 +34,7 @@ longusage() {
echo " --install Install the kernel after building" echo " --install Install the kernel after building"
echo " --no-install Do not install the kernel after building" echo " --no-install Do not install the kernel after building"
echo " --no-initrdmodules Don't copy any modules to the initrd" echo " --no-initrdmodules Don't copy any modules to the initrd"
echo " --udev Add in udev support."
echo " --callback=<...> Run the specified arguments after" echo " --callback=<...> Run the specified arguments after"
echo " the kernel and modules have been" echo " the kernel and modules have been"
echo " compiled." echo " compiled."
@ -58,13 +59,10 @@ longusage() {
echo " --bootsplash=<theme> Force bootsplash using <theme>." echo " --bootsplash=<theme> Force bootsplash using <theme>."
echo " --do-keymap-auto Forces keymap selection at boot." echo " --do-keymap-auto Forces keymap selection at boot."
echo " --no-lvm2 Don't add in LVM2 support." echo " --no-lvm2 Don't add in LVM2 support."
echo " --bootloader=grub Add new kernel to grub configuration" echo " --bootloader=grub Add new kernel to GRUB configuration"
echo " Internals" echo " Internals"
echo " --tempdir=<dir> Location of Genkernel's temporary directory" echo " --tempdir=<dir> Location of Genkernel's temporary directory"
echo " --arch-override=<arch> Force to arch instead of autodetect" echo " --arch-override=<arch> Force to arch instead of autodetect"
echo " --busybox-config=<file> Busybox configuration file to use"
echo " --busybox-bin=<file> Don't compile busybox, use this _static_"
echo " bzip2'd binary"
echo " Output Settings" echo " Output Settings"
echo " --minkernpackage=<tbz2> File to output a .tar.bz2'd kernel and initrd:" echo " --minkernpackage=<tbz2> File to output a .tar.bz2'd kernel and initrd:"
echo " No modules outside of the initrd will be" echo " No modules outside of the initrd will be"
@ -238,6 +236,10 @@ parse_cmdline() {
CMD_NOINITRDMODULES=1 CMD_NOINITRDMODULES=1
print_info 2 "CMD_NOINITRDMODULES: $CMD_NOINITRDMODULES" print_info 2 "CMD_NOINITRDMODULES: $CMD_NOINITRDMODULES"
;; ;;
--udev)
CMD_UDEV=0
print_info 2 "CMD_UDEV: $CMD_UDEV"
;;
--callback*) --callback*)
CMD_CALLBACK=`parse_opt "$*"` CMD_CALLBACK=`parse_opt "$*"`
print_info 2 "CMD_CALLBACK: $CMD_CALLBACK/$*" print_info 2 "CMD_CALLBACK: $CMD_CALLBACK/$*"
@ -276,14 +278,6 @@ parse_cmdline() {
CMD_INSTALL_MOD_PATH=`parse_opt "$*"` CMD_INSTALL_MOD_PATH=`parse_opt "$*"`
print_info 2 "CMD_INSTALL_MOD_PATH: $CMD_INSTALL_MOD_PATH" print_info 2 "CMD_INSTALL_MOD_PATH: $CMD_INSTALL_MOD_PATH"
;; ;;
--busybox-config*)
CMD_BUSYBOX_CONFIG=`parse_opt "$*"`
print_info 2 "CMD_BUSYBOX_CONFIG: $CMD_BUSYBOX_CONFIG"
;;
--busybox-bin*)
CMD_BUSYBOX_BIN=`parse_opt "$*"`
print_info 2 "CMD_BUSYBOX_BIN: $CMD_BUSYBOX_BIN"
;;
--minkernpackage*) --minkernpackage*)
CMD_MINKERNPACKAGE=`parse_opt "$*"` CMD_MINKERNPACKAGE=`parse_opt "$*"`
print_info 2 "MINKERNPACKAGE: $CMD_MINKERNPACKAGE" print_info 2 "MINKERNPACKAGE: $CMD_MINKERNPACKAGE"

@ -108,7 +108,8 @@ unset_kernel_args()
compile_generic() { compile_generic() {
local RET local RET
[ "$#" -lt '2' ] && gen_die "compile_generic(): improper usage" [ "$#" -lt '2' ] &&
gen_die 'compile_generic(): improper usage!'
if [ "${2}" = 'kernel' ] || [ "${2}" = 'runtask' ] if [ "${2}" = 'kernel' ] || [ "${2}" = 'runtask' ]
then then
@ -137,7 +138,8 @@ compile_generic() {
${MAKE} ${MAKEOPTS} ${1} >> ${DEBUGFILE} 2>&1 ${MAKE} ${MAKEOPTS} ${1} >> ${DEBUGFILE} 2>&1
RET=$? RET=$?
fi fi
[ "${RET}" -ne '0' ] && gen_die "Failed to compile the \"${1}\" target..." [ "${RET}" -ne '0' ] &&
gen_die "Failed to compile the \"${1}\" target..."
unset MAKE unset MAKE
if [ "${2}" = 'kernel' ] if [ "${2}" = 'kernel' ]
@ -152,8 +154,10 @@ compile_generic() {
extract_dietlibc_bincache() { extract_dietlibc_bincache() {
cd "${TEMP}" cd "${TEMP}"
rm -rf "${TEMP}/diet" > /dev/null rm -rf "${TEMP}/diet" > /dev/null
tar -jxpf "${DIETLIBC_BINCACHE}" || gen_die "Could not extract dietlibc bincache!" tar -jxpf "${DIETLIBC_BINCACHE}" ||
[ ! -d "${TEMP}/diet" ] && gen_die "${TEMP}/diet directory not found!" gen_die 'Could not extract dietlibc bincache!'
[ ! -d "${TEMP}/diet" ] &&
gen_die "${TEMP}/diet directory not found!"
cd - > /dev/null cd - > /dev/null
} }
@ -192,7 +196,8 @@ compile_modules() {
} }
compile_kernel() { compile_kernel() {
[ "${KERNEL_MAKE}" = '' ] && gen_die "KERNEL_MAKE undefined - I don't know how to compile a kernel for this arch!" [ "${KERNEL_MAKE}" = '' ] &&
gen_die "KERNEL_MAKE undefined - I don't know how to compile a kernel for this arch!"
cd ${KERNEL_DIR} cd ${KERNEL_DIR}
print_info 1 " >> Compiling ${KV} ${KERNEL_MAKE_DIRECTIVE/_install/ [ install ]/}..." print_info 1 " >> Compiling ${KV} ${KERNEL_MAKE_DIRECTIVE/_install/ [ install ]/}..."
compile_generic "${KERNEL_MAKE_DIRECTIVE}" kernel compile_generic "${KERNEL_MAKE_DIRECTIVE}" kernel
@ -203,23 +208,31 @@ compile_kernel() {
fi fi
if ! isTrue "${CMD_NOINSTALL}" if ! isTrue "${CMD_NOINSTALL}"
then then
cp "${KERNEL_BINARY}" "/boot/kernel-${KV}" || gen_die 'Could not copy the kernel binary to /boot!' cp "${KERNEL_BINARY}" "/boot/kernel-${KV}" ||
cp "System.map" "/boot/System.map-${KV}" || gen_die 'Could not copy System.map to /boot!' gen_die 'Could not copy the kernel binary to /boot!'
cp "System.map" "/boot/System.map-${KV}" ||
gen_die 'Could not copy System.map to /boot!'
else else
cp "${KERNEL_BINARY}" "${TEMP}/kernel-${KV}" || gen_die "Could not copy the kernel binary to ${TEMP}!" cp "${KERNEL_BINARY}" "${TEMP}/kernel-${KV}" ||
cp "System.map" "${TEMP}/System.map-${KV}" || gen_die "Could not copy System.map to ${TEMP}!" gen_die "Could not copy the kernel binary to ${TEMP}!"
cp "System.map" "${TEMP}/System.map-${KV}" ||
gen_die "Could not copy System.map to ${TEMP}!"
fi fi
} }
compile_busybox() { compile_busybox() {
if [ ! -f "${BUSYBOX_BINCACHE}" ] if [ ! -f "${BUSYBOX_BINCACHE}" ]
then then
[ -f "${BUSYBOX_SRCTAR}" ] || gen_die "Could not find busybox source tarball: ${BUSYBOX_SRCTAR}!" [ -f "${BUSYBOX_SRCTAR}" ] ||
[ -f "${BUSYBOX_CONFIG}" ] || gen_die "Cound not find busybox config file: ${BUSYBOX_CONFIG}!" gen_die "Could not find busybox source tarball: ${BUSYBOX_SRCTAR}!"
[ -f "${BUSYBOX_CONFIG}" ] ||
gen_die "Cound not find busybox config file: ${BUSYBOX_CONFIG}!"
cd "${TEMP}" cd "${TEMP}"
rm -rf ${BUSYBOX_DIR} > /dev/null rm -rf ${BUSYBOX_DIR} > /dev/null
tar -jxpf ${BUSYBOX_SRCTAR} || gen_die 'Could not extract busybox source tarball!' tar -jxpf ${BUSYBOX_SRCTAR} ||
[ -d "${BUSYBOX_DIR}" ] || gen_die 'Busybox directory ${BUSYBOX_DIR} is invalid!' gen_die 'Could not extract busybox source tarball!'
[ -d "${BUSYBOX_DIR}" ] ||
gen_die 'Busybox directory ${BUSYBOX_DIR} is invalid!'
cp "${BUSYBOX_CONFIG}" "${BUSYBOX_DIR}/.config" cp "${BUSYBOX_CONFIG}" "${BUSYBOX_DIR}/.config"
cd "${BUSYBOX_DIR}" cd "${BUSYBOX_DIR}"
# Busybox and dietlibc don't play nice right now # Busybox and dietlibc don't play nice right now
@ -240,10 +253,14 @@ compile_busybox() {
# UTILS_CC="${OLD_CC}" # UTILS_CC="${OLD_CC}"
# fi # fi
print_info 1 'busybox: >> Copying to cache...' print_info 1 'busybox: >> Copying to cache...'
[ -f "${TEMP}/${BUSYBOX_DIR}/busybox" ] || gen_die 'Busybox executable does not exist!' [ -f "${TEMP}/${BUSYBOX_DIR}/busybox" ] ||
strip "${TEMP}/${BUSYBOX_DIR}/busybox" || gen_die 'Could not strip busybox binary!' gen_die 'Busybox executable does not exist!'
bzip2 "${TEMP}/${BUSYBOX_DIR}/busybox" || gen_die 'bzip2 compression of busybox failed!' strip "${TEMP}/${BUSYBOX_DIR}/busybox" ||
mv "${TEMP}/${BUSYBOX_DIR}/busybox.bz2" "${BUSYBOX_BINCACHE}" || gen_die 'Could not copy the busybox binary to package directory, does the directory exist?' gen_die 'Could not strip busybox binary!'
bzip2 "${TEMP}/${BUSYBOX_DIR}/busybox" ||
gen_die 'bzip2 compression of busybox failed!'
mv "${TEMP}/${BUSYBOX_DIR}/busybox.bz2" "${BUSYBOX_BINCACHE}" ||
gen_die 'Could not copy the busybox binary to the package directory, does the directory exist?'
cd "${TEMP}" cd "${TEMP}"
rm -rf "${BUSYBOX_DIR}" > /dev/null rm -rf "${BUSYBOX_DIR}" > /dev/null
@ -254,11 +271,13 @@ compile_modutils() {
local ARGS local ARGS
if [ ! -f "${MODUTILS_BINCACHE}" ] if [ ! -f "${MODUTILS_BINCACHE}" ]
then then
[ ! -f "${MODUTILS_SRCTAR}" ] && gen_die "Could not find modutils source tarball: ${MODUTILS_SRCTAR}!" [ ! -f "${MODUTILS_SRCTAR}" ] &&
gen_die "Could not find modutils source tarball: ${MODUTILS_SRCTAR}!"
cd "${TEMP}" cd "${TEMP}"
rm -rf "${MODUTILS_DIR}" rm -rf "${MODUTILS_DIR}"
tar -jxpf "${MODUTILS_SRCTAR}" tar -jxpf "${MODUTILS_SRCTAR}"
[ ! -d "${MODUTILS_DIR}" ] && gen_die "Modutils directory ${MODUTILS_DIR} invalid!" [ ! -d "${MODUTILS_DIR}" ] &&
gen_die "Modutils directory ${MODUTILS_DIR} invalid!"
cd "${MODUTILS_DIR}" cd "${MODUTILS_DIR}"
print_info 1 "modutils: >> Configuring..." print_info 1 "modutils: >> Configuring..."
@ -271,7 +290,8 @@ compile_modutils() {
export_utils_args export_utils_args
export ARCH=${ARCH} export ARCH=${ARCH}
./configure --disable-combined --enable-insmod-static >> ${DEBUGFILE} 2>&1 || gen_die 'Configuring modutils failed!' ./configure --disable-combined --enable-insmod-static >> ${DEBUGFILE} 2>&1 ||
gen_die 'Configuring modutils failed!'
unset_utils_args unset_utils_args
print_info 1 'modutils: >> Compiling...' print_info 1 'modutils: >> Compiling...'
@ -284,10 +304,14 @@ compile_modutils() {
fi fi
print_info 1 'modutils: >> Copying to cache...' print_info 1 'modutils: >> Copying to cache...'
[ -f "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static" ] || gen_die "insmod.static does not exist after the compilation of modutils!" [ -f "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static" ] ||
strip "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static" || gen_die 'Could not strip insmod.static!' gen_die 'insmod.static does not exist after the compilation of modutils!'
bzip2 "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static" || gen_die 'Compression of insmod.static failed!' strip "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static" ||
mv "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static.bz2" "${MODUTILS_BINCACHE}" || gen_die 'Could not move the compressed insmod binary to the package cache!' gen_die 'Could not strip insmod.static!'
bzip2 "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static" ||
gen_die 'Compression of insmod.static failed!'
mv "${TEMP}/${MODUTILS_DIR}/insmod/insmod.static.bz2" "${MODUTILS_BINCACHE}" ||
gen_die 'Could not move the compressed insmod binary to the package cache!'
cd "${TEMP}" cd "${TEMP}"
rm -rf "${MODULE_INIT_TOOLS_DIR}" > /dev/null rm -rf "${MODULE_INIT_TOOLS_DIR}" > /dev/null
@ -298,11 +322,13 @@ compile_module_init_tools() {
local ARGS local ARGS
if [ ! -f "${MODULE_INIT_TOOLS_BINCACHE}" ] if [ ! -f "${MODULE_INIT_TOOLS_BINCACHE}" ]
then then
[ ! -f "${MODULE_INIT_TOOLS_SRCTAR}" ] && gen_die "Could not find module-init-tools source tarball: ${MODULE_INIT_TOOLS_SRCTAR}" [ ! -f "${MODULE_INIT_TOOLS_SRCTAR}" ] &&
gen_die "Could not find module-init-tools source tarball: ${MODULE_INIT_TOOLS_SRCTAR}"
cd "${TEMP}" cd "${TEMP}"
rm -rf "${MODULE_INIT_TOOLS_DIR}" rm -rf "${MODULE_INIT_TOOLS_DIR}"
tar -jxpf "${MODULE_INIT_TOOLS_SRCTAR}" tar -jxpf "${MODULE_INIT_TOOLS_SRCTAR}"
[ ! -d "${MODULE_INIT_TOOLS_DIR}" ] && gen_die "Module-init-tools directory ${MODULE_INIT_TOOLS_DIR} invalid" [ ! -d "${MODULE_INIT_TOOLS_DIR}" ] &&
gen_die "Module-init-tools directory ${MODULE_INIT_TOOLS_DIR} is invalid"
cd "${MODULE_INIT_TOOLS_DIR}" cd "${MODULE_INIT_TOOLS_DIR}"
print_info 1 'module-init-tools: >> Configuring' print_info 1 'module-init-tools: >> Configuring'
@ -314,7 +340,8 @@ compile_module_init_tools() {
fi fi
export_utils_args export_utils_args
./configure >> ${DEBUGFILE} 2>&1 || gen_die 'Configure of module-init-tools failed!' ./configure >> ${DEBUGFILE} 2>&1 ||
gen_die 'Configure of module-init-tools failed!'
unset_utils_args unset_utils_args
print_info 1 ' >> Compiling...' print_info 1 ' >> Compiling...'
compile_generic "all" utils compile_generic "all" utils
@ -326,11 +353,16 @@ compile_module_init_tools() {
fi fi
print_info 1 ' >> Copying to cache...' print_info 1 ' >> Copying to cache...'
[ -f "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static" ] || gen_die 'insmod.static does not exist after the compilation of module-init-tools!' [ -f "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static" ] ||
strip "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static" || gen_die 'Could not strip insmod.static!' gen_die 'insmod.static does not exist after the compilation of module-init-tools!'
bzip2 "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static" || gen_die 'Compression of insmod.static failed!' strip "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static" ||
[ -f "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static.bz2" ] || gen_die 'Could not find compressed insmod.static.bz2 binary!' gen_die 'Could not strip insmod.static!'
mv "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static.bz2" "${MODULE_INIT_TOOLS_BINCACHE}" || gen_die 'Could not move the compressed insmod binary to the package cache!' bzip2 "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static" ||
gen_die 'Compression of insmod.static failed!'
[ -f "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static.bz2" ] ||
gen_die 'Could not find compressed insmod.static.bz2 binary!'
mv "${TEMP}/${MODULE_INIT_TOOLS_DIR}/insmod.static.bz2" "${MODULE_INIT_TOOLS_BINCACHE}" ||
gen_die 'Could not move the compressed insmod binary to the package cache!'
cd "${TEMP}" cd "${TEMP}"
rm -rf "${MODULE_INIT_TOOLS_DIR}" > /dev/null rm -rf "${MODULE_INIT_TOOLS_DIR}" > /dev/null
@ -341,11 +373,13 @@ compile_devfsd() {
local ARGS local ARGS
if [ ! -f "${DEVFSD_BINCACHE}" -o ! -f "${DEVFSD_CONF_BINCACHE}" ] if [ ! -f "${DEVFSD_BINCACHE}" -o ! -f "${DEVFSD_CONF_BINCACHE}" ]
then then
[ ! -f "${DEVFSD_SRCTAR}" ] && gen_die "Could not find devfsd source tarball: ${DEVFSD_SRCTAR}" [ ! -f "${DEVFSD_SRCTAR}" ] &&
gen_die "Could not find devfsd source tarball: ${DEVFSD_SRCTAR}"
cd "${TEMP}" cd "${TEMP}"
rm -rf "${DEVFSD_DIR}" rm -rf "${DEVFSD_DIR}"
tar -jxpf "${DEVFSD_SRCTAR}" tar -jxpf "${DEVFSD_SRCTAR}"
[ ! -d "${DEVFSD_DIR}" ] && gen_die "Devfsd directory ${DEVFSD_DIR} invalid" [ ! -d "${DEVFSD_DIR}" ] &&
gen_die "Devfsd directory ${DEVFSD_DIR} invalid"
cd "${DEVFSD_DIR}" cd "${DEVFSD_DIR}"
if [ "${USE_DIETLIBC}" -eq '1' ] if [ "${USE_DIETLIBC}" -eq '1' ]
@ -376,9 +410,9 @@ compile_devfsd() {
[ -f "${TEMP}/${DEVFSD_DIR}/devfsd.bz2" ] || gen_die 'Could not find compressed devfsd.bz2 binary!' [ -f "${TEMP}/${DEVFSD_DIR}/devfsd.bz2" ] || gen_die 'Could not find compressed devfsd.bz2 binary!'
mv "${TEMP}/${DEVFSD_DIR}/devfsd.bz2" "${DEVFSD_BINCACHE}" || gen_die 'Could not move compressed binary to the package cache!' mv "${TEMP}/${DEVFSD_DIR}/devfsd.bz2" "${DEVFSD_BINCACHE}" || gen_die 'Could not move compressed binary to the package cache!'
[ -f "${TEMP}/${DEVFSD_DIR}/devfsd.conf" ] || gen_die 'devfsd.conf does not exist after the compilation of devfsd!' # [ -f "${TEMP}/${DEVFSD_DIR}/devfsd.conf" ] || gen_die 'devfsd.conf does not exist after the compilation of devfsd!'
bzip2 "${TEMP}/${DEVFSD_DIR}/devfsd.conf" || gen_die 'Compression of devfsd.conf failed!' # bzip2 "${TEMP}/${DEVFSD_DIR}/devfsd.conf" || gen_die 'Compression of devfsd.conf failed!'
mv "${TEMP}/${DEVFSD_DIR}/devfsd.conf.bz2" "${DEVFSD_CONF_BINCACHE}" || gen_die 'Could not move the compressed configuration to the package cache!' # mv "${TEMP}/${DEVFSD_DIR}/devfsd.conf.bz2" "${DEVFSD_CONF_BINCACHE}" || gen_die 'Could not move the compressed configuration to the package cache!'
cd "${TEMP}" cd "${TEMP}"
rm -rf "${DEVFSD_DIR}" > /dev/null rm -rf "${DEVFSD_DIR}" > /dev/null
@ -405,11 +439,14 @@ compile_dietlibc() {
if [ "${BUILD_DIETLIBC}" -eq '1' ] if [ "${BUILD_DIETLIBC}" -eq '1' ]
then then
[ -f "${DIETLIBC_SRCTAR}" ] || gen_die "Could not find dietlibc source tarball: ${DIETLIBC_SRCTAR}" [ -f "${DIETLIBC_SRCTAR}" ] ||
gen_die "Could not find dietlibc source tarball: ${DIETLIBC_SRCTAR}"
cd "${TEMP}" cd "${TEMP}"
rm -rf "${DIETLIBC_DIR}" > /dev/null rm -rf "${DIETLIBC_DIR}" > /dev/null
tar -jxpf ${DIETLIBC_SRCTAR} || gen_die "Could not extract dietlibc source tarball" tar -jxpf "${DIETLIBC_SRCTAR}" ||
[ -d "${DIETLIBC_DIR}" ] || gen_die "Dietlibc directory ${DIETLIBC_DIR} is invalid!" gen_die 'Could not extract dietlibc source tarball'
[ -d "${DIETLIBC_DIR}" ] ||
gen_die "Dietlibc directory ${DIETLIBC_DIR} is invalid!"
cd "${DIETLIBC_DIR}" cd "${DIETLIBC_DIR}"
print_info 1 "dietlibc: >> Compiling..." print_info 1 "dietlibc: >> Compiling..."
compile_generic "prefix=${TEMP}/diet" utils compile_generic "prefix=${TEMP}/diet" utils
@ -417,8 +454,10 @@ compile_dietlibc() {
compile_generic "prefix=${TEMP}/diet install" utils compile_generic "prefix=${TEMP}/diet install" utils
print_info 1 " >> Copying to bincache..." print_info 1 " >> Copying to bincache..."
cd ${TEMP} cd ${TEMP}
tar -jcpf "${DIETLIBC_BINCACHE}" diet || gen_die "Could not tar up the dietlibc binary!" tar -jcpf "${DIETLIBC_BINCACHE}" diet ||
[ -f "${DIETLIBC_BINCACHE}" ] || gen_die 'Dietlibc cache not created!' gen_die 'Could not tar up the dietlibc binary!'
[ -f "${DIETLIBC_BINCACHE}" ] ||
gen_die 'Dietlibc cache not created!'
echo "${TEMP}" > "${DIETLIBC_BINCACHE_TEMP}" echo "${TEMP}" > "${DIETLIBC_BINCACHE_TEMP}"
cd "${TEMP}" cd "${TEMP}"
@ -426,3 +465,42 @@ compile_dietlibc() {
rm -rf "${TEMP}/diet" > /dev/null rm -rf "${TEMP}/diet" > /dev/null
fi fi
} }
compile_udev() {
if [ ! -f "${UDEV_BINCACHE}" ]
then
cd "${TEMP}"
rm -rf "${UDEV_DIR}" udev
[ ! -f "${UDEV_SRCTAR}" ] &&
gen_die "Could not find udev tarball: ${UDEV_SRCTAR}"
tar -jxpf "${UDEV_SRCTAR}" ||
gen_die 'Could not extract udev tarball'
[ ! -d "${UDEV_DIR}" ] &&
gen_die "Udev tarball ${UDEV_SRCTAR} is invalid"
cd "${UDEV_DIR}"
print_info 1 'udev: >> Compiling...'
ln -snf "${KERNEL_DIR}" klibc/linux ||
gen_die "Could not link to ${KERNEL_DIR}"
compile_generic 'USE_KLIBC=true USE_LOG=false DEBUG=false udevdir=/dev all etc/udev/udev.conf' utils
strip udev || gen_die 'Failed to strip the udev binary!'
print_info 1 ' >> Installing...'
install -d "${TEMP}/udev/etc/udev" "${TEMP}/udev/sbin" ||
gen_die 'Could not create directory hierarchy'
install -m 0755 udev "${TEMP}/udev/sbin" ||
gen_die 'Could not install udev binary'
install -m 0644 etc/udev/udev.conf "etc/udev/udev.rules" \
"etc/udev/udev.permissions" "${TEMP}/udev/etc/udev" ||
gen_die 'Could not install udev configuration'
cd "${TEMP}/udev"
print_info 1 ' >> Copying to bincache...'
tar -cjf "${UDEV_BINCACHE}" * ||
gen_die 'Could not create binary cache'
cd "${TEMP}"
rm -rf "${UDEV_DIR}" udev
fi
}

@ -91,6 +91,7 @@ determine_real_args() {
DIETLIBC_BINCACHE_TEMP=`arch_replace "${DIETLIBC_BINCACHE_TEMP}"` DIETLIBC_BINCACHE_TEMP=`arch_replace "${DIETLIBC_BINCACHE_TEMP}"`
DEVFSD_BINCACHE=`arch_replace "${DEVFSD_BINCACHE}"` DEVFSD_BINCACHE=`arch_replace "${DEVFSD_BINCACHE}"`
DEVFSD_CONF_BINCACHE=`arch_replace "${DEVFSD_CONF_BINCACHE}"` DEVFSD_CONF_BINCACHE=`arch_replace "${DEVFSD_CONF_BINCACHE}"`
UDEV_BINCACHE=`arch_replace "${UDEV_BINCACHE}"`
if [ "${CMD_BOOTSPLASH}" != '' ] if [ "${CMD_BOOTSPLASH}" != '' ]
then then
@ -155,11 +156,11 @@ determine_real_args() {
SAVE_CONFIG="${CMD_SAVE_CONFIG}" SAVE_CONFIG="${CMD_SAVE_CONFIG}"
fi fi
if isTrue ${SAVE_CONFIG} if isTrue "${SAVE_CONFIG}"
then then
${SAVE_CONFIG}=1 SAVE_CONFIG=1
else else
${SAVE_CONFIG}=0 SAVE_CONFIG=0
fi fi
if [ "${CMD_INSTALL_MOD_PATH}" != '' ] if [ "${CMD_INSTALL_MOD_PATH}" != '' ]
@ -171,4 +172,11 @@ determine_real_args() {
then then
BOOTLOADER="${CMD_BOOTLOADER}" BOOTLOADER="${CMD_BOOTLOADER}"
fi fi
if isTrue "${CMD_OLDCONFIG}"
then
OLDCONFIG=1
else
OLDCONFIG=0
fi
} }

@ -4,16 +4,21 @@
create_initrd_loop() { create_initrd_loop() {
local inodes local inodes
[ "$#" -ne '1' ] && gen_die 'create_initrd_loop(): Not enough arguments!' [ "$#" -ne '1' ] && gen_die 'create_initrd_loop(): Not enough arguments!'
mkdir -p ${TEMP}/initrd-mount || gen_die 'Could not create loopback mount directory!' mkdir -p ${TEMP}/initrd-mount ||
dd if=/dev/zero of=${TEMP}/initrd-${KV} bs=1k count=${1} >> "${DEBUGFILE}" 2>&1 || gen_die "Could not zero initrd-${KV}" gen_die 'Could not create loopback mount directory!'
mke2fs -F -N500 -q "${TEMP}/initrd-${KV}" >> "${DEBUGFILE}" 2>&1 || gen_die "Could not format initrd-${KV}!" dd if=/dev/zero of=${TEMP}/initrd-${KV} bs=1k count=${1} >> "${DEBUGFILE}" 2>&1 ||
mount -t ext2 -o loop "${TEMP}/initrd-${KV}" "${TEMP}/initrd-mount" >> "${DEBUGFILE}" 2>&1 || gen_die 'Could not mount the initrd filesystem!' gen_die "Could not zero initrd-${KV}"
mke2fs -F -N500 -q "${TEMP}/initrd-${KV}" >> "${DEBUGFILE}" 2>&1 ||
gen_die "Could not format initrd-${KV}!"
mount -t ext2 -o loop "${TEMP}/initrd-${KV}" "${TEMP}/initrd-mount" >> "${DEBUGFILE}" 2>&1 ||
gen_die 'Could not mount the initrd filesystem!'
} }
create_initrd_unmount_loop() create_initrd_unmount_loop()
{ {
cd ${TEMP} cd ${TEMP}
umount "${TEMP}/initrd-mount" || gen_die 'Could not unmount initrd system!' umount "${TEMP}/initrd-mount" ||
gen_die 'Could not unmount initrd system!'
} }
move_initrd_to_loop() move_initrd_to_loop()
@ -30,10 +35,12 @@ create_base_initrd_sys() {
mkdir -p ${TEMP}/initrd-temp/usr mkdir -p ${TEMP}/initrd-temp/usr
mkdir -p ${TEMP}/initrd-temp/proc mkdir -p ${TEMP}/initrd-temp/proc
mkdir -p ${TEMP}/initrd-temp/temp mkdir -p ${TEMP}/initrd-temp/temp
mkdir -p ${TEMP}/initrd-temp/sys
mkdir -p ${TEMP}/initrd-temp/.initrd mkdir -p ${TEMP}/initrd-temp/.initrd
ln -s bin ${TEMP}/initrd-temp/sbin ln -s bin ${TEMP}/initrd-temp/sbin
ln -s ../bin ${TEMP}/initrd-temp/usr/bin ln -s ../bin ${TEMP}/initrd-temp/usr/bin
ln -s ../bin ${TEMP}/initrd-temp/usr/sbin ln -s ../bin ${TEMP}/initrd-temp/usr/sbin
echo "/dev/ram0 / ext2 defaults" > ${TEMP}/initrd-temp/etc/fstab echo "/dev/ram0 / ext2 defaults" > ${TEMP}/initrd-temp/etc/fstab
echo "proc /proc proc defaults 0 0" >> ${TEMP}/initrd-temp/etc/fstab echo "proc /proc proc defaults 0 0" >> ${TEMP}/initrd-temp/etc/fstab
@ -46,20 +53,25 @@ create_base_initrd_sys() {
MAKEDEV std MAKEDEV std
MAKEDEV console MAKEDEV console
cp "${BUSYBOX_BINCACHE}" "${TEMP}/initrd-temp/bin/busybox.bz2" || gen_die "could not copy busybox from bincache" cp "${BUSYBOX_BINCACHE}" "${TEMP}/initrd-temp/bin/busybox.bz2" ||
bunzip2 "${TEMP}/initrd-temp/bin/busybox.bz2" || gen_die "could not uncompress busybox" gen_die 'Could not copy busybox from bincache!'
bunzip2 "${TEMP}/initrd-temp/bin/busybox.bz2" ||
gen_die 'Could not uncompress busybox!'
chmod +x "${TEMP}/initrd-temp/bin/busybox" chmod +x "${TEMP}/initrd-temp/bin/busybox"
if [ "${NOINITRDMODULES}" = '' ] if [ "${NOINITRDMODULES}" = '' ]
then then
if [ "${PAT}" -gt "4" ] if [ "${PAT}" -gt "4" ]
then then
cp "${MODULE_INIT_TOOLS_BINCACHE}" "${TEMP}/initrd-temp/bin/insmod.static.bz2" || gen_die "could not copy insmod.static from bincache" cp "${MODULE_INIT_TOOLS_BINCACHE}" "${TEMP}/initrd-temp/bin/insmod.static.bz2" ||
gen_die 'Could not copy insmod.static from bincache!'
else else
cp "${MODUTILS_BINCACHE}" "${TEMP}/initrd-temp/bin/insmod.static.bz2" || gen_die "could not copy insmod.static from bincache" cp "${MODUTILS_BINCACHE}" "${TEMP}/initrd-temp/bin/insmod.static.bz2" ||
gen_die 'Could not copy insmod.static from bincache'
fi fi
bunzip2 "${TEMP}/initrd-temp/bin/insmod.static.bz2" || gen_die "could not uncompress insmod.static" bunzip2 "${TEMP}/initrd-temp/bin/insmod.static.bz2" ||
gen_die 'Could not uncompress insmod.static!'
mv "${TEMP}/initrd-temp/bin/insmod.static" "${TEMP}/initrd-temp/bin/insmod" mv "${TEMP}/initrd-temp/bin/insmod.static" "${TEMP}/initrd-temp/bin/insmod"
chmod +x "${TEMP}/initrd-temp/bin/insmod" chmod +x "${TEMP}/initrd-temp/bin/insmod"
fi fi
@ -68,18 +80,25 @@ create_base_initrd_sys() {
bunzip2 "${TEMP}/initrd-temp/bin/devfsd.bz2" || gen_die "could not uncompress devfsd" bunzip2 "${TEMP}/initrd-temp/bin/devfsd.bz2" || gen_die "could not uncompress devfsd"
chmod +x "${TEMP}/initrd-temp/bin/devfsd" chmod +x "${TEMP}/initrd-temp/bin/devfsd"
[ "${CMD_UDEV}" ] && { tar -jxpf "${UDEV_BINCACHE}" -C "${TEMP}/initrd-temp" ||
gen_die "Could not extract udev binary cache!"; }
# We make our own devfsd.conf these days, the default one doesn't work with the stripped # We make our own devfsd.conf these days, the default one doesn't work with the stripped
# down devfsd we use with dietlibc # down devfsd we use with dietlibc
# cp "${DEVFSD_CONF_BINCACHE}" "${TEMP}/initrd-temp/etc/devfsd.conf.bz2" || gen_die "could not copy devfsd.conf from bincache" # cp "${DEVFSD_CONF_BINCACHE}" "${TEMP}/initrd-temp/etc/devfsd.conf.bz2" ||
# bunzip2 "${TEMP}/initrd-temp/etc/devfsd.conf.bz2" || gen_die "could not uncompress devfsd.conf" # gen_die "could not copy devfsd.conf from bincache"
# bunzip2 "${TEMP}/initrd-temp/etc/devfsd.conf.bz2" ||
# gen_die "could not uncompress devfsd.conf"
# LVM2 # LVM2
if [ -e '/sbin/vgscan.static' -a -e '/sbin/vgchange.static' ] if [ -e '/sbin/vgscan.static' -a -e '/sbin/vgchange.static' ]
then then
if [ "${CMD_NOLVM2}" -ne '1' ] if [ "${CMD_NOLVM2}" -ne '1' ]
then then
cp /sbin/vgscan.static "${TEMP}/initrd-temp/bin/vgscan" || gen_die 'Could not copy over vgscan!' cp /sbin/vgscan.static "${TEMP}/initrd-temp/bin/vgscan" ||
cp /sbin/vgchange.static "${TEMP}/initrd-temp/bin/vgchange" || gen_die 'Could not copy over vgchange!' gen_die 'Could not copy over vgscan!'
cp /sbin/vgchange.static "${TEMP}/initrd-temp/bin/vgchange" ||
gen_die 'Could not copy over vgchange!'
fi fi
# else # else
# print_warning 1 "initrd: No LVM2 static binaries found; skipping support..." # print_warning 1 "initrd: No LVM2 static binaries found; skipping support..."
@ -90,7 +109,8 @@ create_base_initrd_sys() {
pivot_root ps awk pwd rm rmdir rmmod sed sh sleep tar test touch true umount uname \ pivot_root ps awk pwd rm rmdir rmmod sed sh sleep tar test touch true umount uname \
xargs yes zcat chmod chown cut kill killall; do xargs yes zcat chmod chown cut kill killall; do
rm -f ${TEMP}/initrd-temp/bin/$i > /dev/null rm -f ${TEMP}/initrd-temp/bin/$i > /dev/null
ln ${TEMP}/initrd-temp/bin/busybox ${TEMP}/initrd-temp/bin/$i || gen_die "Busybox error: could not link ${i}!" ln ${TEMP}/initrd-temp/bin/busybox ${TEMP}/initrd-temp/bin/$i ||
gen_die "Busybox error: could not link ${i}!"
done done
} }
@ -247,7 +267,8 @@ create_initrd() {
do do
if [ -f "/etc/bootsplash/${BOOTSPLASH_THEME}/config/bootsplash-${bootRes}.cfg" ] if [ -f "/etc/bootsplash/${BOOTSPLASH_THEME}/config/bootsplash-${bootRes}.cfg" ]
then then
/sbin/splash -s -f /etc/bootsplash/${BOOTSPLASH_THEME}/config/bootsplash-${bootRes}.cfg >> ${TEMP}/initrd-${KV} || gen_die "Error: could not copy ${bootRes} bootsplash!" /sbin/splash -s -f /etc/bootsplash/${BOOTSPLASH_THEME}/config/bootsplash-${bootRes}.cfg >> ${TEMP}/initrd-${KV} ||
gen_die "Error: could not copy ${bootRes} bootsplash!"
else else
print_warning 1 "splash: Did not find a bootsplash for the ${bootRes} resolution..." print_warning 1 "splash: Did not find a bootsplash for the ${bootRes} resolution..."
fi fi
@ -258,6 +279,7 @@ create_initrd() {
fi fi
if ! isTrue "${CMD_NOINSTALL}" if ! isTrue "${CMD_NOINSTALL}"
then then
cp ${TEMP}/initrd-${KV} /boot/initrd-${KV} || gen_die 'Could not copy the initrd to /boot!' cp ${TEMP}/initrd-${KV} /boot/initrd-${KV} ||
gen_die 'Could not copy the initrd to /boot!'
fi fi
} }

@ -7,6 +7,7 @@
. /etc/initrd.scripts . /etc/initrd.scripts
USE_DEVFS_NORMAL=1 USE_DEVFS_NORMAL=1
USE_UDEV_NORMAL=2
if [ "$$" != '1' ] if [ "$$" != '1' ]
then then
@ -39,6 +40,12 @@ do
nodevfs) nodevfs)
USE_DEVFS_NORMAL=0 USE_DEVFS_NORMAL=0
;; ;;
udev)
USE_UDEV_NORMAL=1
;;
noudev)
USE_UDEV_NORMAL=0
;;
loop\=*) loop\=*)
LOOP=`parse_opt "${x}"` LOOP=`parse_opt "${x}"`
;; ;;
@ -139,8 +146,54 @@ then
fi fi
fi fi
# Disable udev support if /dev is already mounted as devfs
[ -e /dev/.devfsd ] && USE_UDEV_NORMAL=0
# If using 2.4 and udev; back off...
[ "${KMAJOR}" -eq 2 -a "${KMINOR}" -lt '6' -a "${USE_UDEV_NORMAL}" -eq 1 ] &&
USE_UDEV_NORMAL=0
# Try to mount sysfs, and if it fails, do not use udev
if [ "${USE_UDEV_NORMAL}" -eq '1' -a "${CDROOT}" -eq '0' ]
then
mount -t sysfs sys /sys 2> /dev/null
[ "$?" -eq "0" ] || USE_UDEV_NORMAL=0
fi
# Check udev is on...
[ "${KMAJOR}" -ge 2 ] && USE_UDEV_SUPPORT=1
[ "${KMAJOR}" -eq 2 -a "${KMINOR}" -ge '6' ] && USE_UDEV_SUPPORT=1
[ "${USE_UDEV_SUPPORT}" -eq '1' -a -f /sbin/udev -a "${USE_UDEV_NORMAL}" -ne 0 ] && USE_UDEV_NORMAL=1
# Don't do else b/c we set CDROOT=0 if it fails to detect # Don't do else b/c we set CDROOT=0 if it fails to detect
if [ "${CDROOT}" -eq '0' -a "${USE_DEVFS_NORMAL}" -eq '1' ] if [ "${USE_UDEV_NORMAL}" -eq '1' -a "${CDROOT}" -eq '0' ]
then
export ACTION=add
export UDEV_NO_SLEEP=1
# Add block devices and their partitions to /dev,
# using information from /sys, and only those
# devices (since other are not needed for boot).
cd /sys
for x in block/*
do
export DEVPATH="/${x}"
/sbin/udev block
for y in ${x}/*
do
if [ -f "${y}/dev" ]
then
export DEVPATH="/${y}"
/sbin/udev block
fi
done
done
cd /
unset -v ACTION DEVPATH UDEV_NO_SLEEP
elif [ "${CDROOT}" -eq '0' -a "${USE_DEVFS_NORMAL}" -eq '1' ]
then then
[ ! -e /dev/.devfsd ] && mount -t devfs devfs /dev [ ! -e /dev/.devfsd ] && mount -t devfs devfs /dev
devfsd /dev -np devfsd /dev -np
@ -324,6 +377,7 @@ fi
echo -ne "${GOOD}>>${NORMAL}${BOLD} Booting" echo -ne "${GOOD}>>${NORMAL}${BOLD} Booting"
cd /newroot cd /newroot
mkdir /newroot/proc /newroot/sys 2>/dev/null
pivot_root . tmp/.initrd pivot_root . tmp/.initrd
echo -n '.' echo -n '.'
@ -332,6 +386,10 @@ then
umount /tmp/.initrd/proc || echo '*: Failed to unmount the initrd /proc!' umount /tmp/.initrd/proc || echo '*: Failed to unmount the initrd /proc!'
mount -n --move /tmp/.initrd/dev dev || echo '*: Failed to move over the /dev tree!' mount -n --move /tmp/.initrd/dev dev || echo '*: Failed to move over the /dev tree!'
rm /tmp/.initrd/dev -rf || '*: Failed to remove the initrd /dev!' rm /tmp/.initrd/dev -rf || '*: Failed to remove the initrd /dev!'
elif [ "${USE_UDEV_NORMAL}" -eq '1' -a "${CDROOT}" -eq '0' ]
then
umount /tmp/.initrd/proc || echo '*: Failed to unmount the initrd /proc!'
umount /tmp/.initrd/sys || echo '*: Failed to unmount the initrd /sys!'
elif [ "${CDROOT}" -eq '1' ] elif [ "${CDROOT}" -eq '1' ]
then then
# If automount at boot was on with devfs, we'll want to umount it # If automount at boot was on with devfs, we'll want to umount it

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# Genkernel v3 # Genkernel v3
GK_V='3.0.2d' GK_V='3.0.2e'
TEMP='/var/tmp/genkernel' TEMP='/var/tmp/genkernel'
TODEBUGCACHE=1 # Until an error occurs or DEBUGFILE is fully qualified. TODEBUGCACHE=1 # Until an error occurs or DEBUGFILE is fully qualified.
@ -215,6 +215,7 @@ then
fi fi
compile_devfsd compile_devfsd
compile_udev
# Create initrd # Create initrd
create_initrd create_initrd

@ -86,3 +86,8 @@ DEVFSD_SRCTAR="${GK_SHARE}/pkg/devfsd-${DEVFSD_VER}.tar.bz2"
DEVFSD_DIR="devfsd" DEVFSD_DIR="devfsd"
DEVFSD_BINCACHE="${GK_SHARE}/pkg/%%ARCH%%/devfsd-${DEVFSD_VER}-%%ARCH%%.bz2" DEVFSD_BINCACHE="${GK_SHARE}/pkg/%%ARCH%%/devfsd-${DEVFSD_VER}-%%ARCH%%.bz2"
DEVFSD_CONF_BINCACHE="${GK_SHARE}/pkg/%%ARCH%%/devfsd-conf-${DIETLIBC_VER}-%%ARCH%%.bz2" DEVFSD_CONF_BINCACHE="${GK_SHARE}/pkg/%%ARCH%%/devfsd-conf-${DIETLIBC_VER}-%%ARCH%%.bz2"
UDEV_VER="030"
UDEV_DIR="udev-${UDEV_VER}"
UDEV_SRCTAR="${GK_SHARE}/pkg/udev-${UDEV_VER}.tar.bz2"
UDEV_BINCACHE="${GK_SHARE}/pkg/%%ARCH%%/udev-${UDEV_VER}-%%ARCH%%.tar.bz2"

Binary file not shown.
Loading…
Cancel
Save