One of the things that anaconda uses kudzu for is determining the list
of modules to load. This patch fixes that, along with doing a variety
of other things, determined by the following logic:
- We want to move to a model where we just load modules from the
normal information and aliases exported in sysfs
- This means that we are loading (generally) by modalias, not by
- Ergo, we need to either duplicate all the alias handling, sysfs
walking, etc. in anaconda...
- Or, we use the system modprobe and udev coldplug. (That is what
- To use the system modprobe, we either need to hack it to understand
the cpio module ball...
- Or, we move to just shipping a normal tree of modules. (That is
what this implements.)
- To do so, either we need a special static version of modprobe...
- Or, we switch to a dynamic stage 1 (That is what this implements.)
The way module loading now works:
- Under normal circumstances, modules are loaded via standard udev
- Early module loading is still supported
- Passing module options on the commandline is still supported
- blacklist=<foo> is now supported, to blacklist automatic loading of
a particular module
- nofirewire, nousb, etc. are ignored. The only noXX handled is
'noprobe', which disables udev coldplug entirely.
- Manual driver selection is still allowed, if necessary.
Things not yet modified/fixed in this patchset:
- Manual driver selection is aborting in newt somewhere. May be
- Driver disks are not modified to the new tree layout. Basically,
they should now be extracted and copied to
/lib/modules/$(whatever)/updates/. Some tweaks with depmod may be
necessary to get the aliases in the right place.
Could be reduced by weaning the glib2 dependencies, not linking zlib
statically in modutils, and a couple of other things.