Difference between revisions of "RHEL5 Kernel HOWTO"

From Funtoo Linux
Jump to: navigation, search
(There is no march=amd64, mtune=generic is better choice.)
(g)
Line 1: Line 1:
This HOWTO will show you how to get a RHEL5-based openvz-sources kernel running on a Funtoo Linux system. Several steps are required including downgrading sys-fs/udev, emerging gcc-4.1.2 (which is required for building RHEL5 sources), and building and configuring the kernel. These steps are appropriate for getting any RHEL5-based 2.6.18 kernels built and running under Funtoo, not just openvz-sources.
+
== Introduction ==
  
== Steps ==
+
This HOWTO will show you how to get a RHEL5-based OpenVZ kernel running on a Funtoo Linux system. 
  
1. Downgrade udev to a version compatible with kernels previous than 2.6.27:
+
== Step 1: Downgrade udev, lvm2 ==
 +
 
 +
Downgrade udev to a version compatible with kernels previous than 2.6.27:
  
 
<pre>
 
<pre>
Line 10: Line 12:
 
</pre>
 
</pre>
  
2. This will also require a downgrade of lvm2, if you are using it. Version 2.02.68 is a good one to use:
+
This will also require a downgrade of lvm2, if you are using it. Version 2.02.68 is a good one to use:
  
 
<pre>
 
<pre>
Line 17: Line 19:
 
</pre>
 
</pre>
  
3. Mask any openvz-sources version equal or newer than 2.6.27:
+
== Step 2: Install binary kernel ==
 +
 
 +
The process for installing an RHEL5-based kernel with [[OpenVZ]] support has been drastically simplified. Simply perform the following steps:
  
 
<pre>
 
<pre>
echo ">=sys-kernel/openvz-sources-2.6.27" >> /etc/portage/package.mask
+
# emerge rhel5-openvz-binaries
 
</pre>
 
</pre>
  
4. openvz-sources-2.6.18* needs gcc-4.1.*, so you must install it prior build your future downgraded kernel. If you have newer versions than gcc-4.1.* then you must install this one. Also check your CFLAGS if you are using gcc-4.3.* or later *AND* your make.conf CFLAGS has -march=native, due previous GCC versions doesn't allow it. Check [1] and put a correct -march directive or remove it in your CFLAGS ie:
+
This will build and install a binary kernel image and initial RAM disk, and take care of installing all necessary dependencies like gcc-4.1.2. Once the binary kernel image and initrd is installed, configure <tt>/etc/boot.conf</tt> to find and boot the new kernel.
  
{{Code|/etc/make.conf|<pre>CFLAGS="-mtune=generic -O2 -pipe"</pre>}}
 
<pre>emerge =sys-devel/gcc-4.1.2</pre>
 
  
 
+
Note: you may need to temporarily modify your <tt>CFLAGS</tt> settings to ensure they are compatible with gcc-4.1 systems. In particular, <tt>-march=native</tt> is not recognized by the older gcc.
That may take a while, take a cup of your favourite beverage and wait until it is finished.
+
  
 
[1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
 
[1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
  
5. Switch to gcc-4.1* on your system:
+
== Step 3: Enable vz initscript ==
 +
 
 +
When your system boots with OpenVZ support enabled, it will require /etc/init.d/vz to run:
  
 
<pre>
 
<pre>
localhost ~ # gcc-config -l
+
# rc-update add vz default
[1] x86_64-pc-linux-gnu-4.1.2
+
</pre>
[2] x86_64-pc-linux-gnu-4.4.3 *
+
localhost ~ # gcc-config 1
+
* Switching native-compiler to x86_64-pc-linux-gnu-4.1.2...
+
>>> Regenerating /etc/ld.so.cache...                                                                                                                                                                                                    [ok]
+
  
* If you intend to use the gcc from the new profile in an already
+
== Step 4: Edit boot.conf ==
* running shell, please remember to do:
+
  
*  # source /etc/profile
+
Update /etc/boot.conf to point to your new kernel, ie:
  
localhost ~ # source /etc/profile
+
<pre>
localhost ~ # gcc --version
+
boot {
gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.3)
+
        generate grub
gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.3)
+
        default kernel-rhel5-openvz-x86_64-2.6.18-028stab079.2
Copyright (C) 2006 Free Software Foundation, Inc.
+
        timeout 3
This is free software; see the source for copying conditions.  There is NO
+
}
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
  
localhost ~ #
+
"Funtoo Linux with OpenVZ" {
 +
        kernel kernel-rhel5-openvz[-v]
 +
        initrd initramfs-rhel5-openvz[-v]
 +
        params += real_root=auto
 +
}
 
</pre>
 
</pre>
  
6. Rebuild your sources:
+
Note that you must use the <tt>params += real_root=auto</tt> option. This will automatically
<pre>
+
configure your boot loader to specify your root fileysstem as the <tt>real_root</tt> to the
cd /usr/src/linux
+
initrd.
make menuconfig
+
[do your work]
+
make
+
cp arch/x86/boot/bzImage /boot/linux-2.6.18-openvz-028.068.9
+
</pre>
+
  
7. Update /etc/boot.conf to point to your new kernel, ie:
+
== Step 5: boot-update ==
  
<pre>
+
Now, simply run <tt>boot-update</tt> as root:
vi /etc/boot.conf
+
[inside /etc/boot.conf now]
+
"Funtoo Linux" {
+
        kernel linux-2.6.18-openvz-028.068.9
+
        params root=/dev/sda3
+
}
+
</pre>
+
 
+
8. Update grub's configuration file
+
  
 
<pre>
 
<pre>
Line 85: Line 72:
 
</pre>
 
</pre>
  
9. Reboot your computer and enjoy
+
<tt>boot-update</tt> should show the new kernel as being found and display it as the default
 
+
selection for the next boot. You can now reboot your system and start using OpenVZ.
<pre>
+
reboot
+
</pre>
+
  
 
[[Category:HOWTO]]
 
[[Category:HOWTO]]

Revision as of 21:07, 29 January 2011

Contents

Introduction

This HOWTO will show you how to get a RHEL5-based OpenVZ kernel running on a Funtoo Linux system.

Step 1: Downgrade udev, lvm2

Downgrade udev to a version compatible with kernels previous than 2.6.27:

echo ">=sys-fs/udev-147" >> /etc/portage/package.mask
emerge -u udev

This will also require a downgrade of lvm2, if you are using it. Version 2.02.68 is a good one to use:

echo ">=sys-fs/lvm2-2.02.69 >> /etc/portage/package.mask
emerge -u lvm2

Step 2: Install binary kernel

The process for installing an RHEL5-based kernel with OpenVZ support has been drastically simplified. Simply perform the following steps:

# emerge rhel5-openvz-binaries

This will build and install a binary kernel image and initial RAM disk, and take care of installing all necessary dependencies like gcc-4.1.2. Once the binary kernel image and initrd is installed, configure /etc/boot.conf to find and boot the new kernel.


Note: you may need to temporarily modify your CFLAGS settings to ensure they are compatible with gcc-4.1 systems. In particular, -march=native is not recognized by the older gcc.

[1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options

Step 3: Enable vz initscript

When your system boots with OpenVZ support enabled, it will require /etc/init.d/vz to run:

# rc-update add vz default

Step 4: Edit boot.conf

Update /etc/boot.conf to point to your new kernel, ie:

boot {
        generate grub
        default kernel-rhel5-openvz-x86_64-2.6.18-028stab079.2
        timeout 3
}

"Funtoo Linux with OpenVZ" {
        kernel kernel-rhel5-openvz[-v]
        initrd initramfs-rhel5-openvz[-v]
        params += real_root=auto
}

Note that you must use the params += real_root=auto option. This will automatically configure your boot loader to specify your root fileysstem as the real_root to the initrd.

Step 5: boot-update

Now, simply run boot-update as root:

boot-update

boot-update should show the new kernel as being found and display it as the default selection for the next boot. You can now reboot your system and start using OpenVZ.

Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff