安裝xen使用的源碼管理工具Mercurial,用它下載較穩定的源碼。
hg clone http://xenbits.xen.org/hg/xen-4.1-testing.hg/
檢測依賴性
cd tools/checkmake
安裝缺失的包
libssl-devuuid-devbcciasltexinfobridge-utilspython-dev
編譯
make xenmake toolsmake stubdom
問題:make stubdom時編譯錯誤,找不到bits/predefs.h
我的系統是64位的,stubdom裡面需要用到的newlib是32位的,所以需要32位的libc
解決:下載32位的gcc和libc
gcc-multilib
安裝
sudo make install-xensudo make install-tools PYTHON_PREFIX_ARG="--install-layout=deb"可選:sudo make install-stubdom
把/boot目錄下,產生的連結xen*.gz都刪掉,只留下xen-4.1.3-pre.gz
然後再使用grub2-mkconfig產生新的啟動菜單。
最後手動編輯一下/boot/grub2/grub.cfg 把常用的“linux mint 12 with kernel 3.2.6 and xen 4.1.3-rc1-pre”移到前面。
Troubleshooting
1.在ubuntu下安裝xen需要注意:在install-tools時要加上
PYTHON_PREFIX_ARG="--install-layout=deb"
否則
xen的python工具(如xm)的安裝路徑有誤,不能正確運行
此時運行xm會提示
viktor@viktor-mint / $ xmTraceback (most recent call last): File "/usr/sbin/xm", line 5, in <module> from xen.xm import mainImportError: No module named xen.xm
2.重啟進Xen Dom0以後,運行xm提示xencommons should be run first
在/etc/rc.local裡面(或者.profile)加入
service xencommons startservice xend start
3. 運行xl(XenLight)工具時提示找不到連結庫so
ImportError: libxenctrl.so.4.0: cannot open shared object file: No such file or directory
檢查ldconfig:
viktor@viktor-mint ~/src/xen-4.1-testing.hg $ ldconfig -p |grep xen libxenstore.so.3.0 (libc6,x86-64) => /usr/lib/libxenstore.so.3.0
發現該so檔案並沒有在ldconfig裡面註冊。原來是沒有把/lib64加入尋找路徑中。
解決:在/etc/ld.so.conf.d/裡面加入對/lib64的引用,然後更新ld的資料。
4.使用過程中系統不穩定,panic時呼叫堆疊裡有pte(頁表)相關函數。
也許和版本有關……?期待更新