现在的位置: 首页 > 综合 > 正文

编译Xen 3.4 Dom0 using Linux Kernel 2.6.31 on Ubuntu 9.10 (Karmic)

2019年05月05日 ⁄ 综合 ⁄ 共 2714字 ⁄ 字号 评论关闭
10月28日,Ubuntu 9.10正式发布,我的镜像是昨天下好的,昨天晚上装上机器,开始做配置。以下操作都是使用root账户进行的,非root账户请使用sudo。


一、编译 Xen 和 内核

  1.准备工作

      首先,系统没有的包要先打上,如果你是教育网用中科大的更新源很快的。我主要补充的是下面几个包:

  1. apt-get install fakeroot build-essential  
  2. apt-get install crash kexec-tools makedumpfile  
  3. apt-get build-dep linux  
  4. apt-get install git-core libncurses5 libncurses5-dev  

 

       然后,准备源码:

          Xen 3.4.1: http://bits.xensource.com/oss-xen/release/3.4.1/xen-3.4.1.tar.gz

          Linux Kernel 2.6.31.5: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.5.tar.gz

       因为没用Xen提供的2.6.18的内核源码,还要下一个源码补丁:

          xen-patches-2.6.31-7: http://gentoo-xen-kernel.googlecode.com/files/xen-patches-2.6.31-7.tar.bz2

       展开各个包:

 

  1. tar zxvf linux-2.6.31.5.tar.gz  
  2. mv linux-2.6.31.5 linux-2.6.31.5-xen  
  3. tar zxvf xen-3.4.1.tar.gz  
  4. mkdir xen-patches  
  5. cd xen-patches  
  6. tar jxvf xen-patches-2.6.31-7.tar.bz2  

 

       进到linux-2.6.31.5-xen的目录,给代码打上补丁:

 

  1. cat ../xen-patches/*.patch1 | patch -p1  

 

  2.编译内核

       准备一个编译配置,我直接copy了之前的 linux-image-2.6.26-2-xen-686_2.6.26-15_i386.deb 的配置,这个包可以在这这里找到:
          Kernel: http://packages.debian.org/lenny/i386/linux-image-2.6.26-2-xen-686/download
          Modules: http://packages.debian.org/lenny/i386/linux-modules-2.6.26-2-xen-686/download

       不过这个配置有点老,所以直接make会有一些配置问题提出来。之前 make menuconfig 一下比较好。然后就可以编译了:

 

  1. make  
  2. make vmlinuz  
  3. make modules_install  

 

      基本上应该不会报什么错误,不过提醒一下想用 make-kpkg 直接生成 deb 包的同学,想偷懒是不行的哦,make-kpkg 可是会报错的,原因还没有看。第一次编译还是很久的,所以扫雷吧。………………编译好了以后把生成的 vmlinuz 拷贝到 /boot 下面

,另起个名字叫 vmlinuz-2.6.31.5-xen。生成initrd:

 

  1. mkinitramfs -o /boot/initrd.img-2.6.31.5-xen 2.6.31.5  

 

  3.编译 Xen

        建议先用 xen-3.4.1/tools/check/chk build 和 chk install 检查一下有没有需要的软件包是否齐备,这里需要注意的是 chk install 的时候会报找不到 udevinfo,这个是因为 udevinfo 已经被 udevadm 取代了,创建一个符号链接就好了:

 

  1. ln -s /sbin/udevadm /sbin/udevinfo  

 

       check pass 的话就可以编译了,直接 make world 是可以的,不过这个会重新编译一个2.6.18的kernel出来,会耗很多时间,所以这里可以用 make xen 来只生成 xen 的 image。生成的文件在 xen-3.4.1/dist/install/boot 下面,把 xen-3.4.1.gz 复制到 /boot 下面。

二、安装

    1.糟糕,Grub 升级了!

       这是我折腾了一上午的悲剧。Ubuntu 9.10 使用了1.97版本的Grub,也就是Grub2,新版本虽然又很多有点啊,不过在这里可真是一丑遮百俊了。根据 maillist 里面反应的情况,Grub2 和 Xen 不兼容,引导的时候一定会报“Early fatal page fault at ...”然后死掉,而且目前没有补丁可以解决,于是需要降版本回 GRUB。具体的操作可以参见: http://ubuntuforums.org/showpost.php?p=8071880&postcount=18

    2.配置启动项

 

  1. title Xen 3.4.1 / Linux 2.6.31.5  
  2.     kernel /boot/xen-3.4.1.gz console=vga  
  3.     module /boot/vmlinuz-2.6.31.5-xen root=<root-location> ro console=tty0  
  4.     module /boot/initrd.img-2.6.31.5-xen  

 

 

    3.重启

       不出什么差错的话这个时候应该就可以看看xen起了没有:

 

  1. ps -ef | grep xend  
  2. xm list  

 

 

       启动了的话是可以看到xend的进程的。xm list也会显示dom0。至此就搞定了~

抱歉!评论已关闭.