环境:ubuntu 10.10,内核版本2.6.35.30, gcc 4.5
1. 首先,如果想使用最新版的xen,需要先安装mercurial这个源代码管理工具,然后用下面的命令hg -v --time clone http://xenbits.xen.org/hg/xen-unstable.hg
hg -v --time clone http://xenbits.xen.org/hg/xen-unstable.hg
2. 官网http://xen.org/products/xen_source.html下载4.1.2版的Xen源码似乎不能用:qemu部分(tools/ioemu-qemu-xen)里面的slirp库有一些网络协议的定义,和机器自己的冲突,总是编译不过。
3. 编译的时候请使用这样的命令行:
make xen
make tools
make stubdom
sudo make install-xen
sudo make install-tools
sudo make install-stubdom
直接make是没法通过的,想把所有构建目标都达成几乎是不可能的。
人参掉了一地
make world会把所有的东西clean掉,然后再make一遍——杀伤力过于强大。所以,在弄清功能前请不要使用make world(make clean + make dist)
编译的时候会出现xen的字符画~
__ __ _ _ _ ____
\ \/ /___ _ __ | || | / | |___ \
\ // _ \ '_ \ | || |_ | | __) |
/ \ __/ | | | |__ _|| |_ / __/
/_/\_\___|_| |_| |_|(_)_(_)_____|
4. 在编译前 可以运行tools/check/make看看依赖库装了木有。渣机器 缺这么多,敢情dev包原来都木有装的
libssl-dev
libcurl4-openssl-dev (maybe)
uuid-dev
libx11-dev
gettext (在check里面是叫做xgettext,实际上软件包名叫gettext)
zlib1g-dev
libvncserver-dev
以及……
libncurses5-dev
bcc
iasl
python-all-dev
texinfo
bridge-utils
编译好以后,xen的文件会出现在/boot里面。这里会有4.1.2的核心文件,和4.0,4.1两个链接。可以把那两个链接删掉。