![]() |
LINUX |
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.xen.org/hg/) |
| :mercurial-1.6.4.tar.gz | (http://www.selenic.com/) |
| :git-1.7.3.2.tar.bz2 | (http://git-scm.com/) |
| :acpica-unix-20100428.tar.gz | (http://acpica.org/downloads/) |
参照ファイル
インストール環境| :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
[root@earth:/usr/src]
# tar zxvf mercurial-1.6.4.tar.gz
# cd mercurial-1.6.4
# make PREFIX=/usr install
xenソースのダウンロード
# cd /usr/src
[root@earth:/usr/src]
# hg clone http://xenbits.xen.org/hg/xen-unstable.hg
・最新パッチを適用するには
# cd xen-unstable.hg
[root@earth:/usr/src/xen-unstable.hg]
# hg pull -u
gitのインストール
# cd /usr/src
[root@earth:/usr/src]
# tar jxvf git-1.7.3.2.tar.bz2
# cd git-1.7.3.2
# ./configure
# make
# make install
kernelソースのダウンロード・省略した場合、xenの構築中に、gitで取得します
・本来は、xen-unstable.hgの中にディレクトリが作られます
・cloneの作成には時間と空き容量が必要(700Mバイト以上必要)
# cd /usr/src
[root@earth:/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
[root@earth:/usr/src/linux-2.6-pvops.git]
# git pull -v
iASL compilerのインストール・"tools/firmware/hvmloader/acpi"で要求されます
# cd /usr/src [root@earth:/usr/src] # tar zxvf acpica-unix-20100428.tar.gz # chown -R root:root acpica-unix-20100428 # cd acpica-unix-20100428/compiler [root@earth:/usr/src/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 [root@earth:/usr/src] # chown -R root:root xen-unstable.hg # cd xen-unstable.hg [root@earth:/usr/src/xen-unstable.hg]
・kernelソースへのリンクを作ります
# ln -s /usr/src/linux-2.6-pvops.git linux-2.6-pvops.git
・build環境のチェック
# cd tools/check
[root@earth:/usr/src/xen-unstable.hg/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
・インストール環境のチェック
[root@earth:/usr/src/xen-unstable.hg/tools/check]
# ./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
[root@earth:/usr/src/xen-unstable.hg]
# 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 [root@earth:/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 [root@earth:/usr/src] # chown -R root:root linux-2.6-pvops.git # cd linux-2.6-pvops.git [root@earth:/usr/src/linux-2.6-pvops.git] # make mrproper
・configファイルの作成とコピー
・xenのディレクトリに戻り、configファイルを作ります
# cd /usr/src/xen-unstable [root@earth:/usr/src/xen-unstable] # make linux-2.6-pvops-config CONFIGMODE=menuconfig # cd build-linux-2.6-pvops_x86_32 [root@earth:/usr/src/xen-unstable/build-linux-2.6-pvops_x86_32] # cp .config /usr/src/linux-2.6-pvops.git
# cd /usr/src/linux-2.6-pvops.git
[root@earth:/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. |

