Compiling Kernel 2.6.32

From Xen
Revision as of 03:16, 9 November 2011 by Kyl191 (talk | contribs) (Split from Fedora13Xen4Tutorial)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Download the kernel from xen.git and checkout the long-term maintained 2.6.32.x branch:

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
# cd linux-2.6-xen
# git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x

Note! If "git clone" fails, it's most probably caused by a network problem on your end. Some broken firewalls, nat-routers, and proxies cause problems with the git clone.

Example output from git:

[root@f13 kernel]# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
Cloning into linux-2.6-xen...
remote: Counting objects: 1748126, done.
remote: Compressing objects: 100% (292844/292844), done.
Receiving objects: 100% (1748126/1748126), 359.40 MiB | 34.70 MiB/s, done.
remote: Total 1748126 (delta 1452892), reused 1733298 (delta 1439822)
Resolving deltas: 100% (1452892/1452892), done.

[root@f13 kernel]# cd linux-2.6-xen/

[root@f13 linux-2.6-xen]# git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x
Branch xen/stable-2.6.32.x set up to track remote branch xen/stable-2.6.32.x from origin.
Switched to a new branch 'xen/stable-2.6.32.x'

[root@f13 linux-2.6-xen]#


Check the latest changes in the branch (git changelog):


# git log | less

Download the reference config-file for the 2.6.32.x kernel. Also run "oldconfig" to adapt the configuration to current kernel version (if it's different):


# wget -O .config http://pasik.reaktio.net/xen/pv_ops-dom0-debug/config-2.6.32.25-pvops-dom0-xen-stable-x86_64
# make oldconfig

Note the example config-file above is DEBUG-enabled possibly causing big performance hits, so don't use it for performance testing!

Then build the kernel. Replace "4" in "-j4" by the number of physical CPU cores you have, to speed up the compilation:


# make clean
# make -j4 bzImage && make -j4 modules

After successful compilation install the the kernel modules and the kernel itself. In this example we assume the kernel version is "2.6.32.25":


# make modules_install
# depmod -a 2.6.32.25
# cp -a arch/x86/boot/bzImage /boot/vmlinuz-2.6.32.25
# cp -a System.map /boot/System.map-2.6.32.25
# cp -a .config /boot/config-2.6.32.25
# cd /boot
# dracut initramfs-2.6.32.25.img 2.6.32.25

Don't worry about the warnings from dracut. Dracut might take a couple of minutes to execute. Example dracut output:


[root@f13 boot]# dracut initramfs-2.6.32.25.img 2.6.32.25
grep: /usr/share/plymouth/themes/.plymouth/.plymouth.plymouth: No such file or directory
The default plymouth plugin () doesn't exist
[root@f13 boot]#