/lib/modules/$(uname -r)/modules.* [was Re: Who decides what drivers go on the install disk?]
Bill Nottingham
notting at redhat.com
Fri Jul 27 21:24:42 UTC 2007
Bill Nottingham (notting at redhat.com) said:
> > I mean, I guess I can just do manual twiddling to rule out things that
> > aren't under drivers/ata with the livecd. I'm not _that_ tied to having
> > the two separated out if that's the real kicker here
>
> OK. I'll tweak the stuff in the spec and send it here for comments.
Here you go; sorts them into two piles (networking and block), and expands
the symbol list to catch some of the missing modules such as ahci and
some of the wireless drivers.
Bill
-------------- next part --------------
Index: kernel.spec
===================================================================
RCS file: /cvs/extras/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.34
diff -u -r1.34 kernel.spec
--- kernel.spec 27 Jul 2007 17:58:01 -0000 1.34
+++ kernel.spec 27 Jul 2007 21:23:41 -0000
@@ -1425,40 +1425,28 @@
cat modnames | xargs chmod u+x
# Generate a list of modules for SCSI, sata/pata, and networking.
- touch $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.scsi
- touch $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.libata
+ touch $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.block
touch $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.networking
- for i in `cat modnames | grep drivers | grep -v drivers\/ata`
- do
- if [ $(nm $i |grep --count scsi_add_host) -ne 0 ];
- then
- basename `echo $i` >> $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.scsi
- fi
- done
- for i in `cat modnames | grep drivers | grep -v drivers\/scsi`
- do
- if [ $(nm $i |grep --count blk_init_queue) -ne 0 ];
- then
- basename `echo $i` >> $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.scsi
- fi
- done
- for i in `cat modnames | grep drivers\/ata`
- do
- if [ $(nm $i |grep --count ata_device_add) -ne 0 -o $(nm $i |grep --count ata_pci_init_one) -ne 0 ];
- then
- basename `echo $i` >> $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.libata
- fi
- done
+ drivers=$(grep drivers modnames)
- for i in `cat modnames |grep drivers`
- do
- if [ $(nm $i |grep --count register_netdev) -ne 0 ];
- then
- basename `echo $i` >> $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.networking
- fi
- done
+ # networking
+ netsyms="register_netdev ieee80211_register_hw usbnet_probe"
+ for i in $drivers ; do
+ for symbol in $netsyms ; do
+ nm -u $i | grep -q $symbol && echo ${i##*/}
+ done
+ done | sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.networking
+
+ # block
+ blocksyms="ata_scsi_ioctl scsi_add_host blk_init_queue"
+ for i in $drivers ; do
+ for symbol in $blocksyms ; do
+ nm -u $i | grep -q $symbol && echo ${i##*/}
+ done
+ done | sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.block
+
# detect missing or incorrect license tags
for i in `cat modnames`
do
More information about the Fedora-kernel-list
mailing list