Hi,
If you know the scope of the machines then a list of drivers necessary would be the best choice. By placing everything in the kernel you are not necessarily doing yourself any favors let alone the systems. Just do a inventory for the machines that are going to be used then compile for each. Look at '
Drivers - Linux Kernel Newbies' tutorial for aid installing or developing Drivers. Don't forget;
You will find other usable material at '
Linux Kernel Newbies' for some helpful information.
By inclusion of everything into the kernel you will be opening doors that may create problems. Size of the kernel created is not the problem unless you are changing a current Gnu/Linux distribution then size may be restricted because of media size! Some Gnu/Linux are at the fringe of the media limitations. Rebuild limitations for the ISO will be dependent on the media type.
Kernel distribution method will be dependent on the hardware to be used. Network or storage media? Don't forget that you will need to get the source for newer hardware to compile for said hardware. Some newer hardware drivers will/may still be in development stage.
For the network or storage media you can create build trees for each machine type that is to be serviced. Each build will be for a specific machine's hardware class. Much easier than to build huge kernel to service multiple machine environments. Especially changing machine environments.
Kernel modules have strengths and utility to allow one to modify. You should learn to use whenever possible. You will not see any monumental gains for built in.
Your wish to have a 'huge' kernel to suit multiple machine type environments is doable but not the best choice. If you have the same family for a hardware class with just minor differences then modules are the way to utility the service for hardware.
If your needs are for different processor architecture or families then you have different suite of problems for the machines in question. Then 'builds' to suit each is the best choice. Therefore the kernel can be customized for each architecture install.
Don't forget that some Gnu/Linux do provide different architecture support. You could then hopefully provide specific module drivers for any hardware not supported by that Gnu/Linux.
"Knowledge is of two kinds. We Know a subject ourselves, or we know where we can find information upon it."- Samuel Johnson
