diff options
author | Richard Purdie <richard@openedhand.com> | 2005-08-31 10:45:47 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2005-08-31 10:45:47 +0000 |
commit | 4b46c1f6e891b1ddd5968536440b888661fade3e (patch) | |
tree | e0ba2c1f56f61b868bf746da5c4feabb25b800b2 /openembedded/packages/update-modules | |
download | openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.gz openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.bz2 openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.tar.xz openembedded-core-4b46c1f6e891b1ddd5968536440b888661fade3e.zip |
Initial population
git-svn-id: https://svn.o-hand.com/repos/poky@1 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'openembedded/packages/update-modules')
3 files changed, 211 insertions, 0 deletions
diff --git a/openembedded/packages/update-modules/update-modules-1.0/openmn/update-modules b/openembedded/packages/update-modules/update-modules-1.0/openmn/update-modules new file mode 100755 index 000000000..976161f14 --- /dev/null +++ b/openembedded/packages/update-modules/update-modules-1.0/openmn/update-modules @@ -0,0 +1,3 @@ +#!/bin/sh +depmod -ae +exit 0 diff --git a/openembedded/packages/update-modules/update-modules-1.0/update-modules b/openembedded/packages/update-modules/update-modules-1.0/update-modules new file mode 100755 index 000000000..2f817c5ee --- /dev/null +++ b/openembedded/packages/update-modules/update-modules-1.0/update-modules @@ -0,0 +1,188 @@ +#!/bin/sh +# +# This is the update-modules script for Debian GNU/Linux. +# Copyright 1998-2001 Wichert Akkerman <wakkerma@debian.org> +# Licensed under the GNU GPL, version 2 +# + +MODCONFFILE=/etc/modules.conf +MODCONFTMPFILE="${MODCONFFILE}.$$" +MODULESFILE=/etc/modules +MODULESTMPFILE="${MODULESFILE}.$$" + +ARCHDIR=/etc/modutils/arch +CPUDIR=/etc/modutils/cpu +HEADER="### This file is automatically generated by update-modules" + +set -e + +if [ "$1" = "force" ] ; then + force=1 +else + force= +fi + +# Reset the sorting order since we depend on it +LC_COLLATE=C +export LC_COLLATE + +depdir() +{ + dep=`grep '[[:space:]]*depfile' "${MODCONFFILE}" | tail -n 1 | sed -e 's/depfile=//' -e 's,/[^/]*$,,'` + if [ -z "$dep" ] ; then + dep="/lib/modules/`uname -r`" + fi + + echo $dep +} + +arch() { + local model=`uname -m` + case $model in + i[0-9]86) model=i386; ;; + sun4u) model=sparc64; ;; + arm*) model=arm; ;; + ppc) model=powerpc; ;; + esac + echo $model +} + +archmodel() { + local arch=`arch` + local model="" + if [ $arch = "m68k" ]; then + if [ -f /proc/hardware ]; then + model=`sed -ne 's/^Model:[[:space:]]*//p' /proc/hardware` + case $model in + Atari*) model="atari"; ;; + Amiga*) model="amiga"; ;; + Macintosh*) model="mac"; ;; + Motorola*) model="MVME"; ;; + *) model="generic"; ;; + esac + model=".${model}" + else + echo "/proc/hardware does not exist, assuming general m68k system" + model=".generic" + fi + elif [ $arch = "powerpc" ]; then + if [ -f /proc/cpuinfo ]; then + model=`sed -ne 's/^machine[[:space:]]*:[[:space:]]*//p' /proc/cpuinfo` + case $model in + Amiga*) model="apus"; ;; + Power*) model="pmac"; ;; + *) model="generic"; ;; + esac + model=".${model}" + else + echo "/proc/cpuinfo does not exist, assuming general powerpc system" + model=".generic" + fi + fi + echo "${arch}${model}" +} + +checkoverwrite() { + local cfgfile="$1" + + if [ -f "$cfgfile" ]; then + if ! sed -ne 1p "$cfgfile" | grep -q "^$HEADER" ; then + echo "Error: the current $cfgfile is not automatically generated." >&2 + if [ -z "$force" ]; then + echo "Use \"update-modules force\" to force (re)generation." + exit 1 + else + echo "force specified, (re)generating file anyway." + fi + fi + fi +} + +createfile() { + cat <<EOF > "$1" +$HEADER" +# +# Please do not edit this file directly. If you want to change or add +# anything please take a look at the files in /etc/modutils and read +# the manpage for update-modules. +# +EOF +} + +addfile() { + local src="$1" + local tgt="$2" + + echo "### update-modules: start processing $src" >> "$tgt" + if [ -x "$src" ]; then + if ! "$src" >> "$tgt" ; then + echo "Error while executing $src, aborting" >&2 + exit 1 + fi + else + cat "$src" >> "$tgt" + fi + cat <<EOF >> "$tgt" + +### update-modules: end processing $cfg + +EOF +} + + +checkoverwrite "$MODCONFFILE" + +if [ 0 -ne "`id -u`" ]; then + echo "You have to be root to do this." >&2 + exit 2 +fi + +model=`archmodel` +oldmodel=$model + +while [ ! -f "${ARCHDIR}/${model}" ]; do + oldmodel=$model + model=`echo $oldmodel | sed -e 's/\.[^.]\+//'` + if [ "$model" = "$oldmodel" ]; then + break + fi + echo "Configuration for $oldmodel not found, trying $model" +done + +CONF="${ARCHDIR}/${model}" + +if [ ! -f "$CONF" ]; then + ## echo "Architecture-specific modutils configuration not found, using defaults" + CONF="${ARCHDIR}/generic" +fi + +[ -e "$MODCONFFILE" ] && cp -f "$MODCONFFILE" "${MODCONFFILE}.old" + +createfile "$MODCONFTMPFILE" +createfile "$MODULESTMPFILE" + +for cfg in /etc/modutils/* $CONF ; do + if [ -f "$cfg" ]; then # this check is necesarry to skip /etc/modutils/archs + if echo $cfg | grep -q '\.dpkg-[a-z]*\|~$' ; then + true + elif echo $cfg | grep -q '\.conf$' ; then + addfile "$cfg" "$MODCONFTMPFILE" + else + addfile "$cfg" "$MODULESTMPFILE" + fi + fi +done + +mv "$MODCONFTMPFILE" "$MODCONFFILE" +mv "$MODULESTMPFILE" "$MODULESFILE" + +# We also call depmod here to stop insmod from complaining that modules.conf +# is more recent then modules.dep +# +if [ -d "`depdir`" -a -f /proc/modules ] +then + depmod -a || true +fi + +exit 0 + diff --git a/openembedded/packages/update-modules/update-modules_1.0.bb b/openembedded/packages/update-modules/update-modules_1.0.bb new file mode 100644 index 000000000..297b1bf7b --- /dev/null +++ b/openembedded/packages/update-modules/update-modules_1.0.bb @@ -0,0 +1,20 @@ +SECTION = "base" +DESCRIPTION = "Script to manage module configuration files" +LICENSE = "GPLv2" +PACKAGE_ARCH = "all" +PR = "r3" + +SRC_URI = "file://update-modules" + +pkg_postinst() { +if [ "x$D" != "x" ]; then + exit 1 +fi +update-modules +/etc/init.d/modutils.sh +} + +do_install() { + install -d ${D}${sbindir} + install ${WORKDIR}/update-modules ${D}${sbindir} +} |