○ Xen (unstable) のビルド

*Xenを利用してバーチャルサーバを構成します
*xen-unstableソースをmercurialで取得します
*stableなkernelソースは用意されていません
*デフォルトではlinux-2.6-pvopsをビルドします
*20100522現在、linux-2.6.31.13です
*再構築には /usrを含むディレクトリの空き領域が2.0Gバイト程度必要
*再構築後は (空き容量の確保のため) 必要なファイルを残して、削除します
*make はメンテナンスマシンで行っています

*詳しい内容は Xen 4.0 release notes を参照して下さい

**以降はコメントです
*ソースの取得、削除は省略します
*エディタ、ファイラーの操作は省略します
*ソースを展開したら説明文 (英文) を読みましょう
*Enterキーを省略します

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:xen-unstable.hg (http://xenbits.xensource.com/)
:mercurial-1.5.3.tar.gz (http://www.selenic.com/)
:git-1.7.1.tar.bz2 (http://git-scm.com/)
:acpica-unix-20100428.tar.gz (http://acpica.org/downloads/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)

○インストール環境

:OS CentOS 5.5
:selinux disabled
:インストール先 
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

*メンテナンスは一般ユーザから行います



○Xenの構築に必要なパッケージ

*基本的な、LINUXの起動に必要なパッケージは省きます
*参考 xen-3.0.3-105.el5.src.rpm

○xenのmakeに必要

libidn-devel, zlib-devel, curl-devel, libX11-devel, python-devel,
ncurses-devel, gtk2-devel, libaio-devel, pciutils-devel, udev,
dev86, gettext, gnutls-devel, openssl-devel, flex, bison

○Xenの実行に必要

bridge-utils, hotpllug or udev, iproute, python, zlib, openssl

○GUI環境・ドキュメントの作成に必要

*ドキュメントを作成しない方針です

SDL-devel, transfig, texi2html, ghostscript, tetex-latex, perl

○stubdomの作成に必要

*makeの進行中にwgetでソースファイルを取得し、インストールします
*patchを当てているのでプレインストールではうまくいかないと思う
*ioemuを使わないのでstubdomを作成しない方針です

zlib, pciutils, newlib, lwip, grub, ocaml



○ソースファイルのダウンロード

*開発版をmercurialを利用してダウンロードします
*インターネットに接続できる必要があります

○mercurialのインストール

# cd /usr/src
# tar zxvf mercurial-1.5.3.tar.gz
# cd mercurial-1.5.3
# make PREFIX=/usr install

○xenソースのダウンロード

# cd /usr/src
# hg clone http://xenbits.xensource.com/xen-unstable.hg

*最新パッチを適用するには

# cd xen-unstable.hg
# hg pull -u

○gitのインストール

# cd /usr/src
# tar jxvf git-1.7.1.tar.bz2
# cd git-1.7.1
# ./configure
# make install

○kernelソースのダウンロード

*省略した場合、xenの構築中に、gitで取得します
*本来は、xen-unstable.hgの中にディレクトリが作られます
*cloneの作成には時間と空き容量が必要(700Mバイト以上必要)

# cd /usr/src
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git \
linux-2.6-pvops.git

*最新パッチを適用するには

# cd /usr/src/linux-2.6-pvops.git
# git pull -v

○iASL compilerのインストール

*"tools/firmware/hvmloader/acpi"で要求されます

# cd /usr/src
# tar zxvf acpica-unix-20100428.tar.gz
# chown -R root:root acpica-unix-20100428
# cd acpica-unix-20100428/compiler
# make
# cp iasl /usr/local/bin



○xen-4.1-unstable

*xenとkernelを別々にインストールします
*uninstallを実行するとkernel (xen用) まで削除されます
*ioemu(qemu-dm)が有効な場合は、gitコマンドでファイルを取得します

# cd /usr/src
# chown -R root:root xen-unstable.hg
# cd xen-unstable.hg

*kernelソースへのリンクを作ります

# ln -s /usr/src/linux-2.6-pvops.git linux-2.6-pvops.git

*build環境のチェック

# cd tools/check
# ./chk build

    Checking check_crypto_lib: OK
    Checking check_curl: unused, OK
    Checking check_openssl_devel: OK
    Checking check_python: OK
    Checking check_python_devel: OK
    Checking check_x11_devel: OK
    Checking check_xgettext: OK
    Checking check_xml2: unused, OK
    Checking check_zlib_devel: OK
    Checking check_zlib_lib: OK

*インストール環境のチェック

# ./chk install

    Checking check_brctl: OK
    Checking check_crypto_lib: OK
    Checking check_curl: unused, OK
    Checking check_iproute: OK
    Checking check_python: OK
    Checking check_python_xml: OK
    Checking check_udev: which: no udevadm in (/sbin)
    OK
    Checking check_xml2: unused, OK
    Checking check_zlib_lib: OK

# cd /usr/src/xen-unstable.hg

Makefileの修正 (詳細別記)

# vi Makefile
# vi config/x86_32.mk
# vi buildconfigs/src.git-clone
# vi tools/blktap2/drivers/libaio-compat.h

# make world
# cd /usr/src/xen-unstable.hg
# make uninstall
# make install



○linux-2.6.31.13

*xenとkernelを別々にインストールします
*configファイルの作成に注意してください
*initrdファイルは "make install" の作業で作成されます
*grub.confに起動設定を書き込むので、xenに合わせて修正します

# cd /usr/src
# chown -R root:root linux-2.6-pvops.git
# cd linux-2.6-pvops.git
# make mrproper

*configファイルの作成とコピー
*xenのディレクトリに戻り、configファイルを作ります

# cd /usr/src/xen-unstable
# make linux-2.6-pvops-config CONFIGMODE=menuconfig
# cd build-inux-2.6-pvops_x86_32
# cp .config /usr/src/linux-2.6-pvops.git

# make menuconfig

*Xen のモデュールは Drivers などに分散しています
*デフォルトではほとんどが静的なモデュールになっています
*次回からはこの config ファイルを使って make します

*Exit → Enterキーでセーブ画面
*セーブして終了

# make
# make modules_install
# make install

○ Copyright(c) 528p.com All Rights Reserved.