ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kubuntu에서 VirtualBox OSE 3.0.2 build 하기
    기술 관련/etc 2009. 7. 20. 15:12
    무료 가상 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
Designed by Tistory.