アットウィキロゴ
はい、ここでは先輩に作ってもらった説明書を読んでいこうと思います

読んでいくっていっても
実際に入れていきながらの確認になると思うけど

ってことで、さっそく作業を始めていきます

あっ、時間かかる作業が多いんでアニメでも用意しとくことをオススメします(*´艸`)

まずはDom0の親機での設定からいきます(=゜ω゜)ノ

Dom0での作業

必要なものについて

全般

  • linux-2.6.16.29-xenのソースフォルダ
$xensrc/linux-2.6.16.29-xen にあるはず
今回使うのは『linux-2.6.16.29-xen』を使います。

無難にいくと /root/xen-3.0.3_0-src/linux-2.6.16.29-xen な感じです

ここで注意!!

xen-3.0.3_0-srcは下手すると5GBとかいくんで
xen-3.0.3_0-src/linux-2.6.16.29-xenだけでいいです

ちなみに、/xen-3.0.3_0-src/linux-2.6.16.29-xenでも540MBとかあります

  • blcr-($version).tar.gz
今回使うのは『blcr-0.8.2』を使います

コンパイルに必要なもの

コンパイルに必要なものは下の3つ
  • gcc
  • g++
  • nptl

gccとg++については特に説明はいらんと思うので省略

nptlはあんまり有名じゃないと思うから説明を少し
「POSIXスレッドを使ったプログラムをLinuxカーネル上で効率的に動作可能とするソフトウェア機能である」
と書いてもいまいち分からんやろから
詳しく知りたい人はググレばいっぱい情報出るから
wikiなりなんなりで調べてください(*´д`)=з

ntplの導入について

/usr/lib/ntplにあるが,シンボリックリンクlibrt.soが切れていた.
/lib/tlsを指しているが,存在しない.
これを解決するために,glibcを上書きインストールする.
  1. $ wget http://ftp.riken.jp/Linux/centos/4.8/os/i386/CentOS/RPMS/glibc-2.3.4-2.43.i686.rpm
  2. # rpm -U --oldpackage --force glibc-2.3.4-2.43.i686.rpm
(これで,/lib/tlsが発生する.最初にない理由は謎)
  1. # cd /usr/lib/nptl
  2. # rm librt.so
  3. # ln -s /lib/tls/librt-2.3.4.so librt.so

工程

  1. $ tar zxvf blcr_0.8.2.orig.tar.gz
  2. $ cd blcr-0.8.2
  3. $ ./configure --with-linux=/root/xen-3.0.3_0-src/linux-2.6.16.29-xen
  4. $ make
  5. # make install
  6. # insmod /usr/local/lib/blcr/2.6.16.29-xen/blcr_imports.ko
  7. # insmod /usr/local/lib/blcr/2.6.16.29-xen/blcr.ko
ここで,insmodが失敗する場合,実行中のカーネルと,ビルドしたソースフォルダの設定が間違っている可能性がある.
  1. # make check
これで,動作テストを行う.

&color{はぃ、予定通り問題発生!!}
insmodが失敗する…

結構慎重に作業をしてきたから
そんな大きな間違いはないはず…

先輩が設定してくれた正常に動いてるPCと比べることに…

発見した問題 その1

上の画像はちゃんと修正してある版なんで参考までに

何がおかしかったっていうと
まず、/lib/module/2.6.16.29-xenの中身をまず見にいくことに

このディレクトリの中に
sourceとbuildがあるんけど、こいつが問題の1つです

正常な時はsourceとbuildに/root/xen-3.0.3_0-src/linux-2.6.16.29-xenへの
シンボリックリンクが張ってあるんけども
ファイルをディレクトリごとコピーしたりした時に
そのリンクが壊れてる可能性があるっていう…

# ln -s /root/xen-3.0.3_0-src/linux-2.6.16.29-xen source
# ln -s /root/xen-3.0.3_0-src/linux-2.6.16.29-xen build

でリンクを貼りなおしてください

これで問題の1つ目が解決








DomUでの作業

必要なもの

全般

  • linux-2.6.16.29-xenのソースフォルダ
Dom0から持ってくる
  • Dom0:/usr/local/lib/blcr/2.6.16.29-xen/*.ko
Dom0から持ってくる
  • blcr-($version).tar.gz

コンパイル

  • gcc
  • g++

工程

  1. $ tar zxvf blcr-($version).tar.gz
  2. $ cd blcr-($version)
  3. $ ./configure --with-linux=/path/to/linux-2.6.16.29-xen
  4. $ make
  5. # make install
  6. /usr/local/lib/blcrを,Dom0から持ってきたものと入れ替える
  7. # insmod /usr/local/lib/blcr/2.6.16.29-xen/blcr_imports.ko
  8. # insmod /usr/local/lib/blcr/2.6.16.29-xen/blcr.ko

動作方法

  • 環境変数 LD_LIBRARY_PATHを設定する
configureのときの--prefixで設定した値.
設定していないときは,'/usr/local/lib'
  • コンパイル
ドキュメント参照
  • 実行
  • cr_checkpoint
チェックポイントをとる.引数に,対象のプロセスIDを入れる
取ったチェックポイントは,context.($pid)というファイルになる.
  • cr_restart
プログラムを再開する.引数は,context.($pid)ファイル.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
最終更新:2010年01月24日 06:33