Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46353
  • 博文数量: 37
  • 博客积分: 2421
  • 博客等级: 大尉
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 16:04
文章分类

全部博文(37)

文章存档

2010年(37)

分类: LINUX

2010-08-01 00:16:48

安装准备:
因为编译时需要从internet上下载一些补丁,所以先从外网下载。
hg clone
注:在下载之前需要先安装mercurial工具,这个是分布式版本控制软件,类似于svn,目前安装的是mercurial-1.3.1.tar.gz



tar zxf xen-3.4.2.tar.gz -C /usr
cp -r linux-2.6.18-xen.hg/ /usr/xen-3.4.2/

#studom是xen中的一个补丁集,可以增加性能,网上有说可以把这块去掉(具体步骤可以到网上去找),因为性能的原因这里还是没有去,在编译时会需要去下载一些文件:
grub-0.97.tar.gz 
lwip-1.3.0.tar.gz 
newlib-1.16.0.tar.gz 
pciutils-2.2.9.tar.bz2 
zlib-1.2.3.tar.gz

这里要提前下载,并把它放到/usr/xen-3.4.2/stubdom/下,就可以跳过这一步
cp stubdom/* /usr/xen-3.4.2/stubdom/

2、修改配置文件
vi buildconfigs/src.hg-clone
去掉从网上更新补丁的代码,最后的示例如下:
# Mercurial 
HG ?= hg 
LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg 
# Repository to clone. 
XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH)) 
# Set XEN_LINUX_HGREV to update to a particlar revision. XEN_LINUX_HGREV ?= tip $(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE) 
        set -e ; \ 
        touch $@

3、编译
make dist
make install
mkinitrd -v -f initrd-2.6.18.8-xen.img 2.6.18.8-xen
mv initrd-2.6.18.8-xen.img /boot/

4、修改grub
cat /boot/grub/grub.conf
default=2 
fallback=0 
timeout=5 
splashimage=(hd0,0)/grub/splash.xpm.gz 
hiddenmenu 
title Red Hat Enterprise Linux Server (2.6.18-164.el5xen) 
        root (hd0,0) 
        kernel /xen.gz-2.6.18-164.el5 
        module /vmlinuz-2.6.18-164.el5xen ro root=/dev/VolGroup01/LogVol00 rhgb quiet 
        module /initrd-2.6.18-164.el5xen.img 
title Red Hat Enterprise Linux Server-base (2.6.18-164.el5) 
        root (hd0,0) 
        kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup01/LogVol00 rhgb quiet 
        initrd /initrd-2.6.18-164.el5.img 
title Xen 3.4.2 (2.6.18-8) / XenLinux 2.6 
        root (hd0,0) 
        kernel /xen-3.4.2.gz 
        module /vmlinuz-2.6.18.8-xen ro root=/dev/VolGroup01/LogVol00 rhgb quiet 
        module /initrd-2.6.18.8-xen.img

注:root这段需要跟前面的设置成一样,有的是root=LABEL=/,也有的是root=/dev/VolGroup01/LogVol00,如果不一致,会导致系统起不了
5、重启系统
reboot

6、现在可以用xm dmesg看下当前的版本,如果是3.4.2,说明编译成功




附:
1、编译前检查系统是否已经必需的软件包.
2、网上有些文档在编译时使用make world,进入Makefile可以发现,make world是由make clean,make kdelete 和make dist三个命令组成,前两个命令进行编译的回滚。而负责安装编译的命令是make dist,这里推荐使用make dist这个命令,因为这样不会删除拷进来的linux-2.6.18-xen.hg文件夹。
3、在编译过程中需要选择模块,如果想在编译前进行配置,可以使用命令:
make linux-2.6-xen-config CONFIGMENU=menuconfig
执行命令时系统会读取buildconfig目录中以mk开头的配置文件,请保证linux-2.6-xen-config的前面两段(linux-2.6)与buildconfig目录中的文件名一致。也可以直接修改源代码目录中的build-linux-2.6.18-xen_x86_64/.config文件
4、这篇文档只在redhat5版本下进行测试,其他的系统可能方法会有小的差别
5、rpm的安装方式请参见xen的rpm安装

阅读(542) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~