承續上一篇的新專案,為了讓第一個範例「Hello, World!」可以正常運作,根據書上的說法,我們必須打開 xen 的 debug 功能,也因此我們必須重新編譯 Xen,一般作為釋出套件的軟體,是不會開啟 debug 功能的。

首先安裝編譯 xen 所需要用到的套件:

sudo apt-get build-dep xen

再安裝一下原本的 xen ,因為我們將會需要 xen 所提供的使用者工具。而我們只會替換掉 Xen 的核心部份。

sudo apt-get install xen-hypervisor-4.2-amd64

再來下載 Ubuntu 所提供的 xen 原始碼,準備編譯 xen:

mkdir ~/src
cd ~/src
apt-get source xen

上述的步驟會將 Ubuntu 採用的 xen source 抓下來,並打上 ubuntu 自己修改過後的 patch,所以理論上編出來的版本應該是跟 apt-get 抓下來的版本是幾乎一模一樣的。

cd ~/src/xen-4.2.1

我們需要修改原本的 Config.mk 讓他編譯時開啟 debug 的功能。用你喜歡的編輯器編輯 Config.mk 在第 13 行的地方,將 debug 設成 y

<前略>

-include $(XEN_ROOT)/.config

# A debug build of Xen and tools?
debug ?= y 
debug_symbols ?= $(debug)

XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \
-e s/i86pc/x86_32/ -e s/amd64/x86_64/ -e s/arm.*/arm/)

<後略>

接著進行編譯,我們只需要編譯 xen 本身就好:

make xen -j4

接著進行安裝,因為會覆蓋系統檔案,所以需要 root 權限:

sudo make install-xen

上面的步驟會將 xen.gz 安裝到 /boot/xen-4.2.1.gz ,你可以透過 md5 確認兩者是否一樣:

md5sum xen/xen.gz /boot/xen-4.2.1.gz

如果一樣就可以準備重開了,因為我們剛安裝過原版的 xen ,原版的 xen 套件已經為我們設定好 grub 選單,我們不用再去更改他了。接著,開機到 grub 畫面時,請選擇有 Xen 的開機選項,如圖:

 01-grub  

為了方便,我是用virtualbox 抓的圖,但是經過我的實驗,Ubuntu 13.04 搭配 xen-4.2.1 在 virtualbox 無法完成開機,開到最後會出現 cpu soft lockup 的訊息。應該是個 bug...

接下來的開機流程會先載入 xen ,你會看見很多帶有 (XEN) 的開機訊息印出,接著載入 Linux kernel,這時候就跟一般開機一樣了,然後就進入了熟悉的畫面。登入之後,開啟你的終端機,試試看 xen 是不是已經起來了:

sudo xm dmesg
sudo xm list

沒有錯誤訊息出現的話,就是沒問題了。

arrow
arrow

    koukaipan 發表在 痞客邦 留言(0) 人氣()