[CentOS] Building a new 2.6 kernel

Tue Jul 11 23:57:49 UTC 2006
Jim Perrin <jperrin at gmail.com>

On 7/11/06, John Warren <jwarren at prudentrx.com> wrote:
>
> I needed more serial ports that the basic CentOS Version 4 system is built to
> use so I'm using the following kernel build instructions to build the new 2.6
> kernel:
>
> http://www.hylafax.org/content/Handbook:Basic_Server_Configuration:Modem-speci
> fic_Guidance

I disagree with a fair amount of their method.


> I believe the procedure is correct but the kernel is not building.

Because the procedure isn't really correct.

> I used the "kernel-2.6.9-34.EL.src.rpm file that I found on one of the CentOS
> mirrors.

You should get the source from the most updated kernel so you're
running code that doesn't have known holes.
http://mirror.centos.org/centos-4/4/updates/SRPMS/

> Here are the problems that I've had so far.
>
> 1) The correct architecture to use. Does anyone know which architecture should
> be used for the Dell 2650 Dual Xeon processor? I thought the correct
> configuration file would have been "kernel-2.6.9-i686-smp.config". I've also
> tried "kernel-2.6.9-i586-smp.config" and run into the same problems.

probably i686(smp) however newer xeons(EM64T) are also x86_64(smp)
capable. Up to you to figure out which one you have and match your
distro accordingly. Safe money says i686.

> 2) When it built the rpm it was named "kernel-2.6.934.ELcustom-1.i386.rpm" but
> I would have expected it to be named "kernel-2.6.9-34.ELcustom-1.i386.rpm".
> Was it build using the correct name or might something be misconfigured.

Sounds like you edited the '%define release' statement in the spec file.

> 3) When I entered the following command:
> "rpm -i /usr/src/redhat/RPMS/i386/kernel-2.6.934.ELcustom-1.i386.rpm"
>
> I get the following error:
> "error: Failed dependencies: kernel >= 2.6.10 conflicts with
> lksctp-tools-1.0.2-6.4E.1.i386"

yes, 934 is greater than 10, so this is to be expected :-P


> The "kernel >= 2.6.10" does not make sense but I was wondering if it had
> anything to do with the file being named kernel-2.6.934.... or is there some
> other problem I should be looking for?

Nope that's the money right there.

What you should do. (Rough steps, but close enough)

Prerequirement http://www.rpm.org/hintskinks/buildtree/
There are loads of people saying 'do not build as root'. There's good
reason for this, so either create a user to build as or use your own,
so long as you're not building as root.

1. Get the kernel source rpm from the url above. and make sure you
have all the deps installed.
2. cd to buildroot/SPECS, and do 'rpmbuild -bp kernel.spec'  This will
create and patch the kernel tree.
3. Copy the buildroot/SOURCES/kernel-2.6.9-i686-smp.config to
buildroot/BUILD/kernel/linux-version/.config
4. Configure your kernel how you see fit. make menuconfig etc.
5. Copy the .config back to buildroot/SOURCES/kernel-2.6.9-i686-smp.config
6. run rpmbuild --target=i686 -bs buildroot/SPECS/kernel.spec
7. run rpmbuild --rebuild --target=i686 buildroot/SRPMS/kernel-version.src.rpm

This will build a kernel of the same version and release with your new
options. I'd recommend incrementing the release value defined in the
line I mentioned earlier.

These are rough steps, but should point you in the right direction.


> **Notice of Confidentiality**
> Please note that the information contained in this message may be privileged
> and confidential and protected from disclosure under the law, including the
> Health Insurance Portability and Accountability Act (HIPAA). If the reader of
> this message is not the intended recipient, or an employee or agent
> responsible for delivering this message to the intended recipient, you are
> hereby notified that any dissemination, distribution or copying of this
> communication is strictly prohibited and may subject you to criminal or civil
> penalties. If you have received this communication in error, please notify the
> sender by replying to the message and delete the material from any computer.

Useless in mailing lists. It's going to be distributed, it's going to
be copied, archived, shared with others and referenced repeatedly...
and all of that is before google gets to it.



-- 
During times of universal deceit, telling the truth becomes a revolutionary act.
George Orwell