modules.dep is not the right place for these. What we need is an auto
generated module alias file. Add these lines to /etc/modules.conf, or
better still make them the default for modprobe.
if -f /etc/modules.conf.auto
include /etc/modules.conf.auto
endif
The above syntax is a modutils 2.3 feature. /etc/modules.conf.auto is
program generated from the drivers and contains lines like this
alias pci-0200-115d-0003 tulip_cb
alias pci-0200-115d-1181 serial_cb
It does not matter if the driver is a module or builtin, the aliases
are built for all pci combinations. Building for modules is easy, for
built in drivers is harder.
> o If a new device gets inserted, the kernel looks up its ID in all currently
> loaded drivers and asks them if they want to handle the device.
Not sure that is a good idea. It requires extra table comparison code
in every driver and we already have the external mapping from pci codes
to module. It would be better to add an ioctl to every driver which
kmod or modprobe could call to say "you are registered for device c-v-d
and it just got inserted/deleted".
> o If no driver is found and kmod is enabled, modprobe gets called to find
> a driver corresponding to the device ID according to modules.dep and load
> the appropriate module.
Call modprobe for all insert or deletes. It will load the module if
not already loaded using the auto generated aliases then call the
"device inserted" ioctl. If already loaded or builtin (the latter is
the tricky bit), just call the ioctl.
Whatever happens, we need a consistent interface. It must work for
modules (easy) and builtin (how do we identify them?) drivers. And it
must be able to cope with two or more copies of the same module loaded
under different names (messy).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/