> I am not sure why they can be built as modules if they then can't be
> loaded?
It is usually not worth the trouble making modules of something
you need before the root fs is mounted. (There are special cases,
but generally - don't do it!)
About the only thing you need to mount root is harddisk support
and a driver for whatever kind of adapter (scsi, ide,...) that the
root fs disk is connected to.
If it isn't connected to the adaptec (perhaps you have an IDE disk?)
then something else is wrong. Maybe the root device isn't set
right in the kernel image you are booting. Check your lilo.conf
(or whatever kernel loader you use)
The general rules for modules:
Stuff you need almost all the time is compiled in. Stuff you use
only occationally makes sense as modules. Developers often
use modules for drivers they work on - so they can recompile
and reload without a reboot. Modules also makes sense for
buggy drivers - you can force re-initialization by
unloading and reloading the module.
There are a couple of reasons for not modularizing everything. First,
you get a complicated setup for loading the right modules.
Second, there is a memory overhead of half a page per module. (But of
course you save memory for modules when they aren't loaded.)
Third, compiled-in stuff goes in the single big "kernel page" for
those systems that support big pages. Pentiums do. This
gives a performance enhancement as the cpu looks up less
page table entries. That could be important if the driver is
a high-performance thing like a network or disk controller.
Helge Hafting
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/