From cea7f0ef7bfe305c2d18b2c182117105b375e4e9 Mon Sep 17 00:00:00 2001 From: Alain Kalker Date: Sun, 25 Mar 2012 16:58:39 +0200 Subject: [PATCH] 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 --- packages/initramfs/linux-initramfs/install | 39 ++++++++++++++++++++++ packages/initramfs/linux-initramfs/meta | 36 ++++++++++++++++++++ packages/initramfs/meta | 2 +- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100755 packages/initramfs/linux-initramfs/install create mode 100644 packages/initramfs/linux-initramfs/meta 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"