Compiling FC3 kernel.

Satish Balay balay at fastmail.fm
Fri Dec 3 01:15:11 UTC 2004


On Thu, 2 Dec 2004, Juan Pablo Claude wrote:

> Yes, the tape drive modules are disabled in the default config. And the
> problem is that the source tree from the current SRPM is not compiling clean
> for me. All ftape rpm's and source code are dated and will not compile for
> Fedora Core.

Ok - Most of this info in in the URL's I've pointed to earler. And some
in the FC3 release notes (give them a read)

1. Build a non-root rpm build enviornment
(from http://www.fedoranews.org/tchung/rpmbuild)
$ cd ~
cp -a /usr/src/redhat/ rpmbuild
echo '%_topdir %(echo $HOME)/rpmbuild' >> .rpmmacros

2. Now obtain the kerne.src.rpm (perhaps using wget or something)

<digression>
2.1 If you were to just recompile the kernel you would do the following.
rpmbuild --rebuild --target=i686 kernel.src.rpm
the built kernel would be in ~/rpmbuild/RPMS/i686
<end digression>

3. unpack the .src.rpm (caution: this is done as 'user' - not 'root')
rpm -ivh kernel...src.rpm

Now you will find the following:
- The spec file is in ~/rpmbuild/SPECS
- the sources & patches are in ~/rpmbuild/SOURCES

4. Now to get the patched-source tree - you do the following:
<from FC3 release notes>
rpmbuild -bp --target=i686  ~/rpmbuild/SPECS/kernel-2.6.spec

Now the patched source tree is in ~/rpmbuild/BUILD

5. Now go to this location and modify the .config file - and build
your modified kernel.

I guess there are a bunch of ways to do this. 

 - make modification - & compile - as you woud have done with the
   old kernel-source.rpm package

 - or modify the .config file as necessary - and replace the original
   with the modified one. i.e:
cd ~/rpmbuild/BUILD/kernel-2.6.9/linux-2.6.9
make menuconfig
<make necessary changes - save & quit>
diff .config ~/rpmbuild/SOURCES/kernel-2.6.9-i686.config
cp .config ~/rpmbuild/SOURCES/kernel-2.6.9-i686.config

And now rebuild the kernel
rpmbuild -ba --target=i686  ~/rpmbuild/SPECS/kernel-2.6.spec

Satish

----
Notes: Ideally you'll have patches for ALL changes - and apply these patches
from the spec file - this way its easy to do it again with a kernel
upgrade.

Also disable the build of the smp kernel - in the .spec file
i.e chnage:
%define buildsmp 1
to
%define buildsmp 0







More information about the fedora-list mailing list