Hi all,

I want to point out a question, and might even get an answer. Even if
not, whoever regularly compile their own kernels and try different
configs, pay attention.

I noticed this a few days ago, on Fedora Core 1. Since I currently
do not have access to such a machine, I did not try it on such, but
on RedHat 7.3. But - with Fedora's kernel sources, and gcc 3.2.0
(which shouldn't make a difference - I only ran menuconfig, which is
hopefully a trivial program, independent of a specific compiler. I
did this since make menuconfig wanted gcc32, and that's the closest
I had arround - they have a patched 3.2.2, IIRC).

I copied configs/kernel-2.4.22-i686.config to .config, ran 'make
menuconfig', immediately selected exit, yes for save. diff between
the original conf and the new .config is 2241 lines. Bad enough, you
say? Well, now I ran again menuconfig, now entered the first submenu
("Code maturity level options"), immediately exit, exit, yes for
save. There is a diff (although small) between .config between the
first run and the second!

Now, one might explain that since RedHat (Fedora?) has tons of patches
to the kernel, also the possible options are different, and although
I am _not_ doing this on vanilla kernel (which will probably be
different in what features it has), but on Fedora's, there might be
something I am missing which explains this. But why would there be
a diff between after the first run and after the second run is beyond
me.

Now, I do not want to spread smoke (is this how you say it in English?),
but I am pretty certain that on the real Fedora, for some weird reason,
it was even worse - there were actual, real, noticable differences
between the configs, that I could see. I did not go over this 2200 lines
diff, but I do see signs of such things - e.g.
configs/kernel-2.4.22-i686.config has *twice* this line
CONFIG_HIGHMEM4G=y
while the output .config has it once, and also has
CONFIG_HIGHMEM=y
which does not appear at all in configs/kernel-2.4.22-i686.config.
I do not see immediately how this specific diff can cause real changes
in the kernel, but it's also not at all obvious that it doesn't.

Any idea?

Anyway, all of this will hopefully be better in 2.6, where (so I
heard, I did not read it myself) the kernel config system was heavily
patched (somewhat rewritten? I do know ESR's CML2 didn't make it in).

For the record - while I do not pretend to know deeply how all this
config stuff works, and do not give any guarantees to the following,
I will say how I work.

At home, I have a quite-tuned config - I once skimmed over the entire
menuconfig, carefully chosen what I want (and the hardware I have),
and since then I copy over the config to every new version I compile,
adding features and drivers as I need/want. But I know that the base
was "good", and the changes are incremental. When I started working
here (in tau), 3+ years ago, I intended to do mostly the same, but
did not know what hardware there is, and also did not want to compile
a new kernel (or driver) every few weeks. So I started with RedHat's
config on a vanilla kernel, and continued the same as at home since
then - not following RedHat but using the last good config. So I got a
base config of many drivers, which take around twice+ to compile with
all those modules, and am mostly happy.

After this experience with Fedora a few days ago, I can't anymore
recommend their config whole-heartedly. I also stopped treating it
as passive, trivial data. Unless someone here will have a good
explanation. I will personally continue using my configs, and do not
mind posting them if anybody wants them.
-- 
Didi

On Tue, Mar 09, 2004 at 07:08:39PM +0200, Gilad Ben-Yossef wrote:
> On Tuesday 09 March 2004 15:31, Shachar Shemesh wrote:
> > Gilad Ben-Yossef wrote:
> > >Install the RedHat kernel source RPM (no, not SRPM, there's an RPM of the
> > >kernel sources), then go to /usr/src/linux-version/configs and you'll find
> > >the configuration files used to compile the RedHat supplied kernel.
> > >
> > >There are several config files suitable for SMP/UP, BIGMEM, no BIGMEM etc
> > >etc., so just cp the right one as .config and there you go.
> >
> > Wouldn't he rather get the SRPM and run rpmbuild?
> 
> Since what he wants to do is build a vanilla kernel, but use the same 
> configuration file as RedHat used to save time and hassle (I do it it myself 
> quite often :-), then no - he wants the kernel source RPM which holds those 
> config files.
> 
> > What is in the kernel source RPM anyways? I was under the impression it
> > contained an almost vanilla kernel (as opposed to the SRPM, which is
> > heavilly patched).
> 
> No, it's a /usr/src/linux-version that contain a Redhat patched version of the 
> kernel. Usefull if you want to debug the kernel, build some (mostly badly 
> written) modules that require kernel sources to build etc.
> 
> >
> > Where is the SRPM for the kernel source rpm? :-)
> 
> A single SRPM can generate several RPMs. In this case the relvant SRPM 
> generates both the kernel RPM, the kernel headers RPM and the kernel source 
> RPM. 
> 
> Gilad
> 

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to