linux-initramfs: new package, adds support for loading kernel modules

This package adds support for loading kernel modules during early boot.

The list of modules to be loaded can be specified in projects/*/options in the
variable INITRAMFS_MODULES .

The list of modules to load will be stored in initramfs /etc/modules , the
modules themselves in /lib/modules .
No subdirectories are used to ease and speed up module loading in init.
Only modules which were actually built will be added to the initramfs.

Signed-off-by: Alain Kalker <a.c.kalker@gmail.com>
This commit is contained in:
Alain Kalker 2012-03-25 16:58:39 +02:00
parent 2bc354bc51
commit cea7f0ef7b
3 changed files with 76 additions and 1 deletions

View File

@ -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

View File

@ -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"

View File

@ -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"