|
|
|
#!/bin/sh
|
|
|
|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
|
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
|
|
|
#
|
|
|
|
# Filename: package/.../mkinitramfs/files/50-kernel.sh
|
|
|
|
# Copyright (C) 2007 - 2008 The OpenSDE Project
|
|
|
|
#
|
|
|
|
# More information can be found in the files COPYING and README.
|
|
|
|
#
|
|
|
|
# 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; version 2 of the License. A copy of the
|
|
|
|
# GNU General Public License can be found in the file COPYING.
|
|
|
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
|
|
|
|
|
|
|
MODINFO=${MODINFO:-/sbin/modinfo}
|
|
|
|
DEPMOD=${DEPMOD:-/sbin/depmod}
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
if [ -n "$moddir" ]; then
|
|
|
|
|
|
|
|
# sanity checks
|
|
|
|
for tool in $MODINFO $DEPMOD; do
|
|
|
|
if [ ! -x "$tool" ]; then
|
|
|
|
echo "ERROR: $tool is no available"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ "$running" ]; then
|
|
|
|
echo "TODO: building on a running system, we can take the list of active modules."
|
|
|
|
fi
|
|
|
|
|
|
|
|
module_install() {
|
|
|
|
local module= source= target=
|
|
|
|
|
|
|
|
if [ -r "$1" ]; then
|
|
|
|
# absolute path
|
|
|
|
source="$1"
|
|
|
|
module=${source##*/}; module=${module%.ko}
|
|
|
|
else
|
|
|
|
module="$1"
|
|
|
|
source="$( find "$moddir/kernel" -name "$module.ko" | head -n 1 )"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -r "$source" ]; then
|
|
|
|
target="lib/modules/$kernelver/${source#$moddir/}"
|
|
|
|
|
|
|
|
if [ ! -f $target ]; then
|
|
|
|
echo -n " $module"
|
|
|
|
mkdir -p "${target%/*}"
|
|
|
|
cp "$source" "$target"
|
|
|
|
|
|
|
|
for dep in $( $MODINFO "$source" | grep "^depends:" | tr -s ' ' | cut -d' ' -f2 | tr ',' ' ' ); do
|
|
|
|
module_install "$dep"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
modules_missing="$modules_missing $module"
|
|
|
|
echo -n " [$module]"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
echo -n "Installing modules:"
|
|
|
|
modules_missing=
|
|
|
|
|
|
|
|
if [ -n "$MKINITRD_MODULES" ]; then
|
|
|
|
for module in $MKINITRD_MODULES; do
|
|
|
|
module_install "$module"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
|
|
|
# greedy^3
|
|
|
|
find $moddir/kernel/drivers/{block,ata,ide,ieee1394,md,scsi,cdrom,usb,message} \
|
|
|
|
$moddir/kernel/{lib,fs} \
|
|
|
|
-type f | while read file; do
|
|
|
|
module_install "$file"
|
|
|
|
done
|
|
|
|
echo
|
|
|
|
|
|
|
|
$DEPMOD -ae -b "$tmpdir" -F "$sysmap" "$kernelver"
|
|
|
|
|
|
|
|
[ -z "$modules_missing" ] || echo "Failed to find:$modules_missing"
|
|
|
|
fi
|