3 # Simple depmod, use to generate modprobe.conf
5 # Copyright (C) 2008 by Vladimir Dronnikov <dronnikov@gmail.com>
7 # Licensed under GPLv2, see file LICENSE in this source tree.
10 local BASE="${1:-/usr/lib/modules}"
12 find "$BASE" -name '*.ko.gz' | while read I ; do
13 N=`basename "$I" '.ko.gz'`
15 zcat "$I" | strings | grep '^depends=' | sed -e 's/^depends=$//' -e 's/^depends=/,/' -e 's/,/ @/g'
18 # modules which has no dependencies are resolved
19 if ( NF == 1 ) { res[$1] = ""; next }
20 # others have to be resolved based on those which already resolved
21 i = $1; $1 = ""; deps[i] = $0; ++ndeps
24 # resolve implicit dependencies
25 while ( ndeps ) for (mod in deps) {
26 if ( index(deps[mod], "@") > 0 ) {
28 for ( i=1; i<=NF; ++i ) {
29 if ( substr($i,1,1) == "@" ) {
31 $i = res[$i] " " substr($i,2)
43 # output dependencies in modules.dep format
48 for ( i=1; i<=NF; ++i ) {
54 print "," substr(mod,2) ":" s
57 ' | sort | sed -r -e "s!,([^,: ]*)!/usr/lib/modules/\\1.ko.gz!g"