[CentOS] recompiling kernel results in error: .../linux-2.6.18.i686/arch//Makefile: No such file or directory

Thu May 24 21:04:37 UTC 2007
Akemi Yagi <amyagi at gmail.com>

On 5/24/07, dcw <dwoody1 at charter.net> wrote:
> On Thursday 24 May 2007 1:37 pm, Akemi Yagi wrote:
> > On 5/24/07, dcw <dwoody1 at charter.net> wrote:
> > > > (1) prepare .spec by removing lines from %prep
> > > > (2) rpmbuild -bp kernel-2.6.spec
> > > > (3) go to BUILD  (where .config is)
> > > > (4) make xconfig
> > > > (5) add # i386 to .config as the first line
> > > > (6) copy this .config back to SOURCES  (using the original name
> > > > xxx.config)
> > > >(7) rpmbuild -ba kernel-2.6.spec
> > > > Or, instead of steps (5) to (7), just run:
> > >
> > > I did 5 and 6 anyway, assuming that in the worst case they were not
> > > needed and would do no harm. I then did 'rpmbuild -bc ...' as below.
>
> Does the rpmbuild -bc work only in the BUILD directory? Or does it work in
>  the SOURCE directory?

You can run it from anywhere as far as you use the full path.

> Will doing step 5 and 6 cause any problems?

No.  In fact, you do need these steps before running rpmbuild -bc.  As
I wrote earlier, you can skip these steps IF you run rpmbuild with the
--short-circuit flag.  The flag prevents rpmbuild from running the
%prep stage, therefore the .config file does not need the # i386 line
any more and there is no need to copy it back to SOURCE.

> > > It was working until gpg had a segfault. From some of the emails I have
> > > been reading this is a known problem that has not been fixed yet.
> > >

> There is sigmodules in several places in the SPEC file. The first one is set
> to '0' but the others are not.
> I prefer not setting singmodules to '0' unless I know what the risks are.

I don't really know if there are any serious cosequencies because of
this, so I cannot advise here.

> The last time I recompiled a kernel was when it was at 2.4.x. Is there a way
> to compile the kernel without using rpmbuild?

Yes, although I don't recommend it.  If you are really determined to
do it, I suggest you do a through study on kernel building.
Compilation itself could be as simple as copying the entire source
directory to a place and running a series of make commands (make, make
modules_install make install).  Depending on how you get the .config
file, you may or may not need to run a ARCH=i386 make oldconfig before
make menuconfig, etc, etc.

> > By the way, Johnny Hughes has kindly checked the above procedure and
> > said, "that's what I do."  This is a big assurance.  I agree that your
> > goal is almost there.
>
> This is good, but what does he do to avoid segfaults?

I have not seen segfaults myself.  It is possible that he has not, either.

> Thanks,
>
> David