李斯特 发表于 2015-10-11 14:49:13

编译xen

安装平台:ubuntu11.04、ubuntu11.10
安装版本:xen3.4.4、xen4.1.2
在以上两个ubuntu版本中都成功编译安装了上述xen的两个版本。
安装依赖:
sudo apt-get install build-essential binutils python-dev zlib1g-dev libncurses5-devxorg-dev uuid-dev bridge-util bison flex udev gettext bin86 bcc iasl libgcrypt-dev libssl-dev gcc-multilib textinfo libcurl4-openssl-dev hgsvn gawk

编译:
下载xen的源代码,并解压。进入源代码根目录:
sudo make xen tools stubdom
sudo make install-xen
sudo make install-tools PYTHON_PREFIX_ARG=    #注意不过不加后面参数,启动xend时会出现错误。
sudo make install-stubdom

成功执行上面命令后,在/boot/下就有相应的xen可执行文件
$ls /boot/
.....
-rw-r--r-- 1 root root    729218 2012-06-14 19:08 xen-4.1.2.gz lrwxrwxrwx 1 root root      12 2012-06-14 19:08 xen-4.1.gz -> xen-4.1.2.gz
lrwxrwxrwx 1 root root      12 2012-06-14 19:08 xen-4.gz -> xen-4.1.2.gz
lrwxrwxrwx 1 root root      12 2012-06-14 19:08 xen.gz -> xen-4.1.2.gz

如果系统内核支持dom0的话,只需在/boot/grub/grub.cfg里加上如下内容即可:
menuentry 'Ubuntu GNU/Linux, with Xen 4.1.2 and Linux 3.4.2' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos8)'
    search --no-floppy --fs-uuid --set=root 8e5b7344-107c-4024-8497-758362eb39c5
    echo    'Loading Xen 4.1.2 ...'
    multiboot       /boot/xen-4.1.2.gz placeholder
    echo    'Loading Linux 3.4.2 ...'
    module/boot/vmlinuz-3.4.2 placeholder root=UUID=8e5b7344-107c-4024-8497-758362eb39c5 roquiet splash
    echo    'Loading initial ramdisk ...'
    module/boot/initrd.img-3.4.2
}

Troubleshooting
编译过程有可能出错,如以下情况:
1.
bit/predef.h: No such file or directory:
安装gcc-mutilib即可解决问题:
sudo apt-get install gcc-mutilib
版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: 编译xen