diff --git a/packages/initramfs/linux-initramfs/install b/packages/initramfs/linux-initramfs/install new file mode 100755 index 0000000000..74893f4157 --- /dev/null +++ b/packages/initramfs/linux-initramfs/install @@ -0,0 +1,39 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +VER=`ls $BUILD/linux*/modules/lib/modules` +LINUX_MODULES_DIR=`echo $BUILD/linux*/modules/lib/modules/$VER/kernel` + +if [ -n "$INITRAMFS_MODULES" ]; then + mkdir -p $INSTALL/etc + mkdir -p $INSTALL/lib/modules + + for i in $INITRAMFS_MODULES; do + module=`find $LINUX_MODULES_DIR -name $i.ko` + if [ -n "$module" ]; then + echo $i >> $INSTALL/etc/modules + cp $module $INSTALL/lib/modules/`basename $module` + fi + done +fi diff --git a/packages/initramfs/linux-initramfs/meta b/packages/initramfs/linux-initramfs/meta new file mode 100644 index 0000000000..610d2d64d3 --- /dev/null +++ b/packages/initramfs/linux-initramfs/meta @@ -0,0 +1,36 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="linux-initramfs" +PKG_VERSION="" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.kernel.org" +PKG_URL="" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="initramfs" +PKG_SHORTDESC="linux: initramfs kernel module support" +PKG_LONGDESC="Support for loading kernel modules during early boot." +PKG_IS_ADDON="no" + +PKG_AUTORECONF="no" diff --git a/packages/initramfs/meta b/packages/initramfs/meta index f1aa3b5598..d29fe1fefc 100644 --- a/packages/initramfs/meta +++ b/packages/initramfs/meta @@ -25,7 +25,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.openelec.tv" PKG_URL="" -PKG_DEPENDS="eglibc-initramfs busybox-initramfs diskdev_cmds-initramfs" +PKG_DEPENDS="eglibc-initramfs busybox-initramfs diskdev_cmds-initramfs linux-initramfs" PKG_BUILD_DEPENDS="toolchain eglibc-initramfs busybox-initramfs" PKG_PRIORITY="optional" PKG_SECTION="initramfs" diff --git a/packages/initramfs/sysutils/busybox-initramfs/config/busybox-initramfs.conf b/packages/initramfs/sysutils/busybox-initramfs/config/busybox-initramfs.conf index 02f8f4110a..5540806c54 100644 --- a/packages/initramfs/sysutils/busybox-initramfs/config/busybox-initramfs.conf +++ b/packages/initramfs/sysutils/busybox-initramfs/config/busybox-initramfs.conf @@ -494,7 +494,7 @@ CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="" # CONFIG_MODPROBE_SMALL is not set # CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set -# CONFIG_INSMOD is not set +CONFIG_INSMOD=y # CONFIG_RMMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set diff --git a/packages/initramfs/sysutils/busybox-initramfs/scripts/init b/packages/initramfs/sysutils/busybox-initramfs/scripts/init index aba0a27e67..33a38fe117 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/scripts/init +++ b/packages/initramfs/sysutils/busybox-initramfs/scripts/init @@ -305,7 +305,7 @@ NBD_DEVS="0" [ ! -f "/etc/modules" ] && return for module in $(cat /etc/modules); do progress "Loading kernel module $module" - /bin/busybox insmod "$MODULE_DIR/$module" || \ + /bin/busybox insmod "$MODULE_DIR/$module.ko" || \ error "load_modules" "Failed to load kernel module $module" done } diff --git a/packages/linux/build b/packages/linux/build index b0a5ceb7ce..16f8097c75 100755 --- a/packages/linux/build +++ b/packages/linux/build @@ -22,13 +22,6 @@ . config/options $1 -export INSTALL=$ROOT/$BUILD/image/initramfs/root-image -$SCRIPTS/install initramfs - -cd $INSTALL - find . | cpio -H newc -ov -R 0:0 > $ROOT/$BUILD/image/initramfs.cpio -cd - - if [ "$BOOTLOADER" = "u-boot" ]; then $SCRIPTS/build u-boot KERNEL_IMAGE="uImage" @@ -49,7 +42,16 @@ make modules make INSTALL_MOD_PATH=modules DEPMOD="$ROOT/$TOOLCHAIN/bin/depmod" modules_install rm -f modules/lib/modules/*/build rm -f modules/lib/modules/*/source +cd - +export INSTALL=$ROOT/$BUILD/image/initramfs/root-image +$SCRIPTS/install initramfs + +cd $INSTALL + find . | cpio -H newc -ov -R 0:0 > $ROOT/$BUILD/image/initramfs.cpio +cd - + +cd $(kernel_path) make $KERNEL_IMAGE ( cd tools/power/cpupower