summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/update-modules/update-modules-1.0/update-modules
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/update-modules/update-modules-1.0/update-modules')
-rwxr-xr-xmeta/recipes-kernel/update-modules/update-modules-1.0/update-modules197
1 files changed, 197 insertions, 0 deletions
diff --git a/meta/recipes-kernel/update-modules/update-modules-1.0/update-modules b/meta/recipes-kernel/update-modules/update-modules-1.0/update-modules
new file mode 100755
index 0000000000..636fe1c0d4
--- /dev/null
+++ b/meta/recipes-kernel/update-modules/update-modules-1.0/update-modules
@@ -0,0 +1,197 @@
1#!/bin/sh
2#
3# This is the update-modules script for Debian GNU/Linux.
4# Copyright 1998-2001 Wichert Akkerman <wakkerma@debian.org>
5# Licensed under the GNU GPL, version 2
6#
7
8MODCONFFILE=/etc/modules.conf
9MODCONFTMPFILE="${MODCONFFILE}.$$"
10MODULESFILE=/etc/modules
11MODULESTMPFILE="${MODULESFILE}.$$"
12
13ARCHDIR=/etc/modutils/arch
14CPUDIR=/etc/modutils/cpu
15HEADER="### This file is automatically generated by update-modules"
16
17set -e
18
19if [ "$1" = "force" ] ; then
20 force=1
21else
22 force=
23fi
24
25# Reset the sorting order since we depend on it
26LC_COLLATE=C
27export LC_COLLATE
28
29depdir()
30{
31 dep=`grep '[[:space:]]*depfile' "${MODCONFFILE}" | tail -n 1 | sed -e 's/depfile=//' -e 's,/[^/]*$,,'`
32 if [ -z "$dep" ] ; then
33 dep="/lib/modules/`uname -r`"
34 fi
35
36 echo $dep
37}
38
39arch() {
40 local model=`uname -m`
41 case $model in
42 i[0-9]86) model=i386; ;;
43 sun4u) model=sparc64; ;;
44 arm*) model=arm; ;;
45 ppc) model=powerpc; ;;
46 esac
47 echo $model
48}
49
50archmodel() {
51 local arch=`arch`
52 local model=""
53 if [ $arch = "m68k" ]; then
54 if [ -f /proc/hardware ]; then
55 model=`sed -ne 's/^Model:[[:space:]]*//p' /proc/hardware`
56 case $model in
57 Atari*) model="atari"; ;;
58 Amiga*) model="amiga"; ;;
59 Macintosh*) model="mac"; ;;
60 Motorola*) model="MVME"; ;;
61 *) model="generic"; ;;
62 esac
63 model=".${model}"
64 else
65 echo "/proc/hardware does not exist, assuming general m68k system"
66 model=".generic"
67 fi
68 elif [ $arch = "powerpc" ]; then
69 if [ -f /proc/cpuinfo ]; then
70 model=`sed -ne 's/^machine[[:space:]]*:[[:space:]]*//p' /proc/cpuinfo`
71 case $model in
72 Amiga*) model="apus"; ;;
73 Power*) model="pmac"; ;;
74 *) model="generic"; ;;
75 esac
76 model=".${model}"
77 else
78 echo "/proc/cpuinfo does not exist, assuming general powerpc system"
79 model=".generic"
80 fi
81 fi
82 echo "${arch}${model}"
83}
84
85checkoverwrite() {
86 local cfgfile="$1"
87
88 if [ -f "$cfgfile" ]; then
89 if ! sed -ne 1p "$cfgfile" | grep -q "^$HEADER" ; then
90 echo "Error: the current $cfgfile is not automatically generated." >&2
91 if [ -z "$force" ]; then
92 echo "Use \"update-modules force\" to force (re)generation."
93 exit 1
94 else
95 echo "force specified, (re)generating file anyway."
96 fi
97 fi
98 fi
99}
100
101createfile() {
102 cat <<EOF > "$1"
103$HEADER"
104#
105# Please do not edit this file directly. If you want to change or add
106# anything please take a look at the files in /etc/modutils and read
107# the manpage for update-modules.
108#
109EOF
110}
111
112addfile() {
113 local src="$1"
114 local tgt="$2"
115
116 echo "### update-modules: start processing $src" >> "$tgt"
117 if [ -x "$src" ]; then
118 if ! "$src" >> "$tgt" ; then
119 echo "Error while executing $src, aborting" >&2
120 exit 1
121 fi
122 else
123 cat "$src" >> "$tgt"
124 fi
125 cat <<EOF >> "$tgt"
126
127### update-modules: end processing $cfg
128
129EOF
130}
131
132
133checkoverwrite "$MODCONFFILE"
134
135if [ 0 -ne "`id -u`" ]; then
136 echo "You have to be root to do this." >&2
137 exit 2
138fi
139
140model=`archmodel`
141oldmodel=$model
142
143while [ ! -f "${ARCHDIR}/${model}" ]; do
144 oldmodel=$model
145 model=`echo $oldmodel | sed -e 's/\.[^.]\+//'`
146 if [ "$model" = "$oldmodel" ]; then
147 break
148 fi
149 echo "Configuration for $oldmodel not found, trying $model"
150done
151
152CONF="${ARCHDIR}/${model}"
153
154if [ ! -f "$CONF" ]; then
155 ## echo "Architecture-specific modutils configuration not found, using defaults"
156 CONF="${ARCHDIR}/generic"
157fi
158
159[ -e "$MODCONFFILE" ] && cp -f "$MODCONFFILE" "${MODCONFFILE}.old"
160
161createfile "$MODCONFTMPFILE"
162createfile "$MODULESTMPFILE"
163
164for cfg in /etc/modutils/* $CONF ; do
165 if [ -f "$cfg" ]; then # this check is necesarry to skip /etc/modutils/archs
166 if echo $cfg | grep -q '\.dpkg-[a-z]*\|~$' ; then
167 true
168 elif echo $cfg | grep -q '\.conf$' ; then
169 addfile "$cfg" "$MODCONFTMPFILE"
170 else
171 addfile "$cfg" "$MODULESTMPFILE"
172 fi
173 fi
174done
175
176first_time=0
177if [ ! -f $MODULESFILE ]; then
178 first_time=1
179fi
180
181mv "$MODCONFTMPFILE" "$MODCONFFILE"
182mv "$MODULESTMPFILE" "$MODULESFILE"
183
184if [ $first_time -eq 1 ]; then
185 /etc/init.d/modutils.sh || true
186fi
187
188# We also call depmod here to stop insmod from complaining that modules.conf
189# is more recent then modules.dep
190#
191if [ -d "`depdir`" -a -f /proc/modules ]
192then
193 depmod -A || true
194fi
195
196exit 0
197