***本記事にはプロモーションが含まれています。***
Fedora Core 4ホストでVirtualBoxをビルドしてみました。その時のメモです。
ビルドに必要なものは、こちらに書いてあります。1つづつ確認していきます。
http://www.virtualbox.org/wiki/Linux%20build%20instructions
dev86は、rpmfindで探してきました。Fedora Core 5用のしか無かったのですが、それをインストールしました。
http://linuxsoft.cern.ch/fedora/linux/core/5/i386/os/repodata/repoview/dev86-0-0.16.17-2.1.html
rpm -ivh dev86-0.16.17-2.1.i386.rpm
次のrpmをインストールしました。
yum install uuid
yum install uuid-c++
yum install uuid-devel
yum install qt-devel
SDLとSDL-develは、QEMUを動かすときにインストール済みなので省略。もっと必要だったかもしれませんがメモし忘れてしまいました。
Intelのサイトからiaslを持ってきます。acpica-unix-20061109.tar.gzをダウンロードします。
http://www.intel.com/technology/iapc/acpi/downloads.htm
tar zxvf acpica-unix-20061109.tar.gz
cd acpica-unix-20061109/compile
make
cp iasl /usr/local/bin
Xerces-cは、FC4用のrpmが無いので自分でコンパイル、インストールします。
http://xml.apache.org/xerces-c/
tar zxvf xerces-c-current.tar.gz
export XERCESCROOT=/home/kazu/xerces-c-src_2_7_0
cd $XERCESCROOT
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread
gmake
make install
Xalan-cも同様に自分でコンパイル、インストールしました。
http://xml.apache.org/xalan-c/
tar zxvf Xalan-C_1_10_0-src.tar.gz
export XERCESCROOT=/home/kazu/xerces-c-src_2_7_0
export XALANCROOT=/home/kazu/xml-xalan
./runConfigure -p linux -c gcc -x g++
make clean
make
make install
XercesとXalanは、/usr/local/libにインストールされるので、そのライブラリのロードパスを指定します。
/etc/ld.so.conf.d/libxalan.confと言うファイルをつくって、次の内容を書きます。ファイルの名前は、拡張子が.confであればなんでもいいです。
/usr/local/lib
そして、設定を反映させます。
su
/sbin/ldconfig
exit
これで、開発環境の整備は終わりです。VirtualBoxのconfigureで環境のチェックをしているので、何か無いと言われたらインストールしてください。
次に、VirtualBoxのソースをコンパイルしました。
svn co http://virutalbox.org/src/vbox/trunk vbox
cd vbox
ここで、configureスクリプトで環境のチェックをするのですが、-lXcursorがリンクできなくて止まってしまいます。LIBRARY_PATHで、X Windowのライブラリのパスを指定しないといけないです。
また、QTの位置を指定しないといけないです。
LIBRARY_PATH=/usr/X11R6/lib ./configure --with-qt-dir=/usr/lib/qt-3.3
正常に終了すれば、env.shというファイルができます。
source ./env.sh
プログラムをビルドします。
kvm all
できたら、カーネルドライバをビルドします。
cd out/linux.x86/release/bin/src
make
ここで、ドライバをロードし、属性を指定します。オープンソースでないバイナリは、/etc/groupにvboxusersを作って、そのグループだけ動作するようにしているようですが、とりあえずこうしないと動きませんでした。
su
/sbin/insmod ./vboxdrv.ko
chmod a+rw /dev/vboxdrv
exit
一般ユーザになってプログラムを起動します。
cd ..
LD_LIBRARY_PATH=. ./VBoxSVC &
LD_LIBRARY_PATH=. ./VirtualBox
VirtualBoxの画面が出てくると思います。ドライバが使えないと言うエラーが出たら、ちゃんとロードして/dev/vboxdrvがあり、属性が指定してあるか確認してください。
VirtualBoxのサイトでは、DebianとGentooについての記述があって、Fedora Coreでの作成は考慮されていないようなので、けっこう手間がかかりました。