FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora User

 
 
LinkBack Thread Tools
 
Old 12-15-2007, 04:39 AM
Bill Nottingham
 
Default Don't ship module balls; just ship a 'normal' /lib/modules and /lib/firmware tree.

These are actually in /modules and /firmware and symlinked, in both
the first and second stage. Don't use tools to edit modules.alias, just
run depmod on the pruned module set.

45 122 scripts/mk-images
4 0 scripts/upd-instroot
--
1.5.3.7

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 
Old 12-15-2007, 04:42 AM
Bill Nottingham
 
Default Don't ship module balls; just ship a 'normal' /lib/modules and /lib/firmware tree.

These are actually in /modules and /firmware and symlinked, in both
the first and second stage. Don't use tools to edit modules.alias, just
run depmod on the pruned module set.
---
scripts/mk-images | 167 +++++++++++++------------------------------------
scripts/upd-instroot | 4 +
2 files changed, 49 insertions(+), 122 deletions(-)

diff --git a/scripts/mk-images b/scripts/mk-images
index 2b990a8..97b4c58 100755
--- a/scripts/mk-images
+++ b/scripts/mk-images
@@ -182,76 +182,27 @@ findPackage() {
echo "cannot find package $name in path $dir" >&2
}

-findmodule () {
- if [ ! -f $CACHE ]; then
- find $KERNELROOT/lib/modules/ > $CACHE
- fi
-
- grep "/$1.ko" $CACHE
-}
-
rundepmod () {
- what=$1
- final=$2
+ where=$1

$FAKEARCH /sbin/depmod -a -F $KERNELROOT/boot/System.map-$version
- -b $KERNELROOT $version
- mv $KERNELROOT/lib/modules/$version/modules.alias $MODALIAS
-
- cat $KERNELROOT/lib/modules/$version/modules.dep | $FILTERMODDEPS > $final
-}
-
-getmoddeps () {
- what=$1
- final=$2
-
- for mod in $what ; do
- mod=$(echo $mod | sed 's/.ko */|^/g;s/.ko$//;s/.*///')
- egrep $mod $MODDEPS >> $final.foo
- done
- mv $final.foo $final
-}
-
-intcopymodules () {
- dir=$2
-
- for n in $1; do
- m=$(findmodule $n)
- if [ -z "$m" ]; then
- [ -n "$DEBUG" ] && echo "Module $n not found in kernel rpm" >&2
- else
- echo $n >> $MODULESUSED
- for o in $m ; do
- echo $n
- ver=$(echo $o |cut -d / -f 7)
- myarch=$(echo $o |cut -d / -f 4)
- if ! [ -d $dir/$ver/$myarch ] ; then mkdir -p $dir/$ver/$myarch ; fi
- if ! cp $o $dir/$ver/$myarch; then
- echo "Failed to copy $o to $dir/$ver/$myarch (for module $n)" >&2
- fi
- done
- fi
- done
+ -b $where $version
}

# This loops to make sure it resolves dependencies of dependencies of...
resdeps () {
items="$*"

- before=1
- after=2
-
- while [ $before != $after ]; do
- before=`echo $items | wc -c`
-
- if [ $? != "0" ] ; then
- kill -9 $$
- fi
- list=`$GETMODDEPS -m $MODDEPS $items`
- items=$(for n in $items $list; do echo $n; done | sort -u)
- after=`echo $items | wc -c`
+ deplist=""
+ for item in $items ; do
+ deps=$(awk -F ':' "/$item.ko: / { print gensub(".*/$item.ko: ","","g") }" $KERNELROOT/lib/modules/$version/modules.dep)
+ for dep in $deps ; do
+ depfile=${dep##*/}
+ depname=${dep%%.ko}
+ deplist="$deplist $depname"
+ done
done
-
+ items=$(for n in $items $deplist; do echo $n; done | sort -u)
echo $items
}

@@ -282,61 +233,41 @@ expandModuleSet() {
echo $SET
}

-makemoduleball() {
- unset MMB_DD
- MMB_MODINFO="module-info"
- MMB_NAME="modules.cgz"
-
- while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
- if [ "$1" = "--dd" ]; then
- MMB_DD="$2"
- shift; shift
- MMB_MODINFO="modinfo"
- continue
- elif [ "$1" = "--name" ]; then
- MMB_NAME="$2"
- shift; shift
- continue
- fi
- echo "unknown option passed to $0"
- exit 1
- done
-
+makemoduletree() {
MMB_DIR=$1
MMB_MODULESET=$(resdeps $2)

- rm -rf $MMB_DIR/modules $MMB_DIR/$MMB_NAME $MMB_DIR/modules.dep $MMB_DIR/modules.alias
- $MMB_DIR/modules.pcimap $MMB_DIR/pcitable $MMB_DIR/$MMB_MODINFO
- $MMB_DIR/pci.ids
+ mkdir -p $MMB_DIR/lib
mkdir -p $MMB_DIR/modules
-
- MMB_MODULESET=$(intcopymodules "$MMB_MODULESET" $MMB_DIR/modules)
-
- pushd $MMB_DIR/modules > /dev/null
-
+ mkdir -p $MMB_DIR/firmware
+ ln -snf ../modules $MMB_DIR/lib/modules
+ ln -snf ../firmware $MMB_DIR/lib/firmware
+
+ echo "Copying kernel modules..."
+ cp -a $KERNELROOT/lib/modules/* $MMB_DIR/lib/modules/
+ echo "Removing extraneous modules..."
+ find $MMB_DIR/lib/modules/ -name *.ko | while read module ; do
+ m=${module##*/}
+ modname=${m%%.ko}
+ echo $MMB_MODULESET | grep -wq $modname || {
+ rm -f $module
+ }
+ done
+ # clean up leftover cruft
+ find $MMB_DIR/lib/modules -type d -exec rmdir -f {} ; 2>/dev/null
$MODLIST --modinfo-file $MODINFO --ignore-missing --modinfo
- $MMB_MODULESET > ../$MMB_MODINFO
-
- getmoddeps "$(find . -name *.ko)" ../modules.dep
+ $MMB_MODULESET > $MMB_DIR/lib/modules/module-info

- # create the modules.alias file
- $TRIMMODALIAS $(find . -name *.ko -exec basename {} < $MODALIAS > ../modules.alias
+ rundepmod $MMB_DIR
+ rm -f $MMB_DIR/lib/modules/*/modules.*map
+ rm -f $MMB_DIR/lib/modules/*/{build,source}

# create the pci.ids, from modules.alias and the X driver aliases
awk '!/^( |#)/ { print ;if ($0 == "ffff Illegal Vendor ID") nextfile; }' < $PCIIDS |
$TRIMPCIIDS ../modules.alias $XDRIVERS/* > ../pci.ids
-
- if [ -n "$MMB_DD" ]; then
- echo $MMB_DD > $MMB_DIR/rhdd
- fi
-
- find . -type f | cpio --quiet -H crc -o | gzip -9 > ../$MMB_NAME
- cd ..
- rm -rf modules
- chmod 644 *
- popd > /dev/null
}

+
makeproductfile() {
root=$1

@@ -521,6 +452,7 @@ makeinitrd() {
mkdir -p $MBD_DIR/tmp
mkdir -p $MBD_DIR/etc/terminfo/{a,b,d,l,s,v,x}
mkdir -p $MBD_DIR/etc/udev/rules.d
+ mkdir -p $MBD_DIR/etc/modprobe.d
mkdir -p $MBD_DIR/var/run
mkdir -p $MBD_DIR/var/lock/rpm

@@ -540,7 +472,7 @@ makeinitrd() {

if [ -n "$INITRDMODULES" ]; then
MODSET=`expandModuleSet "$INITRDMODULES"`
- makemoduleball --name $MODULEBALLNAME $MBD_DIR/modules "$MODSET"
+ makemoduletree $MBD_DIR "$MODSET"
fi

# Copy in driver firmware we want during installation. NOTE: This isn't
@@ -552,29 +484,23 @@ makeinitrd() {
for module in $MODSET ; do
case $module in
ipw2100)
- mkdir -p $MBD_DIR/modules/firmware
- cp $KERNELROOT/lib/firmware/ipw2100* $MBD_DIR/modules/firmware
+ cp $KERNELROOT/lib/firmware/ipw2100* $MBD_DIR/firmware
;;
ipw2200)
- mkdir -p $MBD_DIR/modules/firmware
- cp $KERNELROOT/lib/firmware/ipw-2.4* $MBD_DIR/modules/firmware
- cp $KERNELROOT/lib/firmware/ipw2200* $MBD_DIR/modules/firmware
+ cp $KERNELROOT/lib/firmware/ipw-2.4* $MBD_DIR/firmware
+ cp $KERNELROOT/lib/firmware/ipw2200* $MBD_DIR/firmware
;;
iwl3945)
- mkdir -p $MBD_DIR/modules/firmware
- cp $KERNELROOT/lib/firmware/iwlwifi-3945* $MBD_DIR/modules/firmware
+ cp $KERNELROOT/lib/firmware/iwlwifi-3945* $MBD_DIR/firmware
;;
iwl4965)
- mkdir -p $MBD_DIR/modules/firmware
- cp $KERNELROOT/lib/firmware/iwlwifi-4965* $MBD_DIR/modules/firmware
+ cp $KERNELROOT/lib/firmware/iwlwifi-4965* $MBD_DIR/firmware
;;
atmel)
- mkdir -p $MBD_DIR/modules/firmware
- cp $KERNELROOT/lib/firmware/atmel_*.bin $MBD_DIR/modules/firmware
+ cp $KERNELROOT/lib/firmware/atmel_*.bin $MBD_DIR/firmware
;;
zd1211rw)
- mkdir -p $MBD_DIR/modules/firmware/zd1211
- cp $KERNELROOT/lib/firmware/zd1211/* $MBD_DIR/modules/firmware/zd1211
+ cp $KERNELROOT/lib/firmware/zd1211/* $MBD_DIR/firmware/zd1211
;;
esac
done
@@ -799,7 +725,7 @@ for KERNELARCH in $arches; do
fi

KERNELROOT=$KERNELBASE/$KERNELARCH
- mkdir -p $KERNELROOT/lib/modules/misc
+ mkdir -p $KERNELROOT

foundakernel="yes"

@@ -825,8 +751,7 @@ for KERNELARCH in $arches; do

allmods=$(find $KERNELROOT/lib/modules/$version -name *.ko)

- rundepmod "$allmods" $MODDEPS
- find $KERNELROOT/lib/modules/$version > $CACHE
+ rundepmod $KERNELROOT
$GENMODINFO $KERNELROOT/lib/modules/$version > $MODINFO

# make the boot images
@@ -840,8 +765,6 @@ doPostImages
rm -rf $INSTIMGTEMPLATE/usr/lib/anaconda-runtime $INSTIMGTEMPLATE/usr/lib/syslinux $IMGPATH/usr/lib/syslinux

if [ -n "$foundakernel" ]; then
- # make the second stage
- find $KERNELBASE/*/lib/modules/ > $CACHE
makeSecondStage
rm -rf $KERNELBASE
fi
diff --git a/scripts/upd-instroot b/scripts/upd-instroot
index 1de91d9..5b35275 100755
--- a/scripts/upd-instroot
+++ b/scripts/upd-instroot
@@ -1029,6 +1029,10 @@ rm -f $KEEPFILE $KEEPFILEGR $KEEPFILERESCUE

for p in $DEST $DESTGR; do
echo "Scrubbing trees..." "$p"
+ mkdir -p $p/lib
+ mkdir -p $p/firmware
+ ln -snf /modules $p/lib/modules
+ ln -snf /firmware $p/lib/firmware
cp $p/usr/lib/anaconda/raidstart-stub $p/usr/bin/raidstart
cp $p/usr/lib/anaconda/raidstop-stub $p/usr/bin/raidstop
cp $p/usr/lib/anaconda/losetup-stub $p/usr/bin/losetup
--
1.5.3.7

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 07:03 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org