On Sat, 15 Dec 2001 07:41:04 -0500, Neil Marjoram
>I have gone through all the normal config instructions, and tried all
>the documentation I can, my problem is not building the kernel, but
>loading the configuration to start with. I need to know how to display
>or load into make xconfig the current working configuration, the
>configuration that loads when you start xconfig is not that of the
>running kernel - I've tried compiling without changing anything, the
>system fails on reboot, mainly because it fails to detect my dual PII. I
>am missing something fundamental (a brain), or perhaps my 6/7 years in
>commercial Unix admin has been a total waste of time!
>I know of the .config file, but initially this does not contain the
>kernel setup of my system.
>I think it's chicken or egg - to get it to work I need a working config
>for my system - to do that I need to get it to work!!
Part of this depends on whether or not you are using: 1) the
distribution's supplied kernel source; 2) a updated kernel source from
the distribution makers; or 3) just a plain Linus kernel source, as
gotten from kernel.org.
Assuming (1) or (2) for the moment, if you are wanted to build the
kernel from this source for the first time, the ".config" file is a
base working configuration that you can start from. And yes, you
probably don't want to just use this file as your initial kernel
configuration, especially if you have particular requirements like SMP
support. So the first thing you do is to make a copy of this file,
like "cp .config /usr/src/<hostname>-kernel.conf", then do a "make
mrproper". This make statement will erase ".config". Then when you
do "make xconfig", you load up the alternate configuration file
"<hostname>-kernel.conf" using the button "Load Configuration from
File", and then make your initial changes to the configuration, either
to include and exclude certain kernel features (see below). When you
are done, save the changes either to the same file, using the button
"Save Configuration to File", or to a different file--probably a
better method use--like "<hostname>-kernel.conf-<yyyymmddvv>", where
<yyyymmddvv> is similar to zone file versioning, if you're familiar
with DNS administration.
If you are using (3), you can start by using a configuration file,
like ".config", obtained from either (1) or (2) if you have them on
your system, making a copy of it as "/usr/src/<hostname>-kernel.conf".
Note that this configuration file assumes many features that will be
missing from a Linus kernel, so when you load it up during "make
xconfig", only some of the original settings will be available and
selected accordingly. But it get you at least a starting point.
However, if you do not have any prior configuration file on your
system, and you starting from scratch with a Linus kernel, then at the
point you can only try to ensure on building a kernel that will get
the system to at least boot up into single-user mode. That's you're
target. The extra features needed for the system to properly boot up
into run-level 3 or 5 can be dealt during another pass-through the
kernel configuration and building phrase.
In any case, when you do "make xconfig", and load up a configuration
file if you have one, you will need to go through all the options to
make sure you have the necessary features either built into the kernel
or as a module that you want. Again, to be able to get the system to
boot up into at least single-user mode, pay particular attention to
including driver support for devices like SCSI adapters, ReiserFS, and
so on. It's been my habit to have the all absolute necessities built
into the kernel, not as modules. I don't like maintaining initial RAM
disks (initrd), as I feel it to be a clumsy requirement for proper