2009.07.20 15:12

Kubuntu에서 VirtualBox OSE 3.0.2 build 하기

무료 가상 PC 환경으로 유명한 VirtualBox가 최근 3.0.2 버젼까지 release되었다.

** 링크 : VirtualBox Home Page

VirtualBox Homepage에는 WIndows 환경을 비롯해서 MacOSX나 리눅스 환경용으로 생성된 Binary가 있으므로 이를 받아서 설치하면 된다. 그런데 지금 사용하고 있는 Kunbutu 용 버젼은 없다.

Ubuntu 버젼도 있는데 -_-; 게다가 Kubuntu의 Synaptic S/W Manager에서 제공하는 version은 VirtualBox OSE 2.1.4 가 끝으로 더 이상의 update도 안된다.

해서, 목마른 사람이 우물은 판다고 OSE 3.0.2 Source를 내려 받아 Build 해 보기로 했다.


1. 소스 다운로드
SVN을 이용하여 받거나 VirtualBox Home에서 소스 코드를 내려 받을 수 있다.

링크 : http://download.virtualbox.org/virtualbox/3.0.2/VirtualBox-3.0.2-OSE.tar.bz2

2. 압축 해제

tar와 bzip2으로 압축되어 있는 모듈은 다음과 같이 해제 할 수 있다.

$ tar xjvf ./VirtualBox-3.0.2-OSE.tar.bz2

압축이 해제되면 VirtualBox-3.0.2_OSE 란 폴더가 생성된다.

3. 환경 설정

VirtualBox를 Build하기 위해선 다양한 Package 가 필요하다. Kubuntu에서는 다음과 같은 Package를 설치한다.

$ cd VirtualBox-3.0.2_OSE

$ sudo apt-get install gcc g++ bcc iasl xsltproc uuid-dev zlib1g-dev libidl-dev \

libsdl1.2-dev libxcursor-dev libasound2-dev libstdc++5 \

libhal-dev libpulse-dev libxml2-dev libxslt1-dev \

python2.5-dev libqt4-dev qt4-dev-tools libcap-dev \

libxmu-dev mesa-common-dev libglu1-mesa-dev


그리고 리눅스 커널 헤더를 설치해야 하는데 시스템마다 설치된 version이 다를 수 있으므로

$ sudo apt-get install linux-kernel-headers-$(uname -r)

그리고 64 bit system의 경우는 별도 패키지를 더 설치해야 한다. 자세한 것은 Home page의 Linux Host Build Instruction 을 참고하기 바란다.

4. 빌드

Build를 진행하면서 설치 및 시스템 정보 처리도 같이 진행하므로 root 권한으로 user를 전환한다.

$ sudo su
#

만약 전환이 되지 않을 경우 해당 계정이 admin 에 포함되지 않은 것이므로 이를 해결 해주고 진행 해야한다.

빌드 환경 설정을 한다. 이 때 hardening option은 build 한 binary를 배포할 경우 필요한 옵션이므로 hardening을 비활성화 한다.

# ./configure --disable-hardening

정상적인 configuration이 끝나면 다음과 같이 진행에 대한 정보를 알려준다.

Successfully generated '/home/mc500/Downloads/VirtualBox-3.0.2_OSE/AutoConfig.kmk' and '/home/mc500/Downloads/VirtualBox-3.0.2_OSE/env.sh'.

Source '/home/mc500/Downloads/VirtualBox-3.0.2_OSE/env.sh' once before you start to build VBox:

source /home/mc500/Downloads/VirtualBox-3.0.2_OSE/env.sh

kmk

To compile the kernel modules, do:

cd ./out/linux.x86/release/bin/src

make



이제 compile에 필요한 환경을 로딩하고 Build를 시작한다.

# source env.sh
# kmk


다른 리눅스 프로그램들이 그렇듯 별 다른 오류 메시지가 없다면 정상적으로 빌드가 된 것이다. 빌드된 Binary는 out/linux.x86/release/bin/ 폴더에 생성되어 있다.


5. 실행 준비

여기서 약간 중요한 것이 만약 VirtualBox를 처음 Build 해 보는 것이라면 실행에 앞서 몇 가지 설정을 해 주어야 한다.

먼저 다음과 같은 방법으로 VirtualBox Kernel Module을 생성 및 설치 해 주어야 한다.
* Note. 여기서 VBOX_SRC_ROOT는 download 받은 소스를 풀어 놓은 폴더를 말한다.

# cd $VBOX_SRC_ROOT/out/linux.x86/release/bin/src
# make
# make install
# cd ..
 
 그 다음은 아래와 같이 vboxdrv를 활성화 한다.

# modprobe vboxdrv
# chmod 777 /dev/vboxdrv

그리고 사용자 group을 vboxusers 그룹에 추가해 주어야 한다.

# vi /etc/group
...
vboxusers:x:200:user_id

아니면 groups user_id 명령을 이용해 user_id가 속한 group 정보를 얻고 useradd -g -G 옵션 등을 이용하여 vboxusers 그룹을 추가하는 방법을 이용한다.


마지막으로 다음과 같이 VBox Kernel을 다시 세팅 해 준다.

# /etc/init.d/vboxdrv setup

그러면 기존 VIrtualbox Kernel을 중지하고 커널 컴파일하여 다시 설정해 준다. 나의 경우는 여기서 약간 문제가 되었던 것이 Kernel Recompile 시 에러가 발생했다. /var/log/vbox-install.log를 확인 했더니 스크립드에서 참고하는 $INSTALL_DIR 값이 없어서 오류가 발생했던 것이었다.  이 값은 Build가 끝났을 때의 폴더인 bin이므로 다음과 같이 설정해 주고 실행해 보니 정상적으로 recompile이 되었다.

# export INSTALL_DIR=$VBOX_SRC_ROOT/out/linux.x86/release/bin

약간 좀 이상한 것은 vboxdrv라는 스크립트가 내 Kubuntu 에서는 없었다. 대신 virtualbox-ose 라는 파일이 있었는데 기능상 vboxdrv와 동일한 것 같다.


6. 실행

이제 일반 사용자로 전환 후 INSTALL_DIR 폴더에 있는 VirtualBox 파일을 실행하면 정상적으로 실행이 될 것이다.

# exit
$ cd $INSTALL_DIR
$ ./VirtualBox &



참고 : http://www.virtualbox.org/wiki/Linux%20build%20instructions
Trackback 0 Comment 0