Installazione di VirtualBox OSE svn (1.5.51) su Ubuntu Hardy 8.04



vboxsrc05

La versione opensource di VirtualBox, Open Source Edition (OSE) Source code, può essere installata sia partendo dal tarball, rilasciato con lo stesso numero di release di quella distribuita (VirtualBox-1.5.6-2_OSE.tar.bz2), che partendo dall’albero di sviluppo svn (Subversion command line client tool).

I motivi per compilare la versione SVN possono essere diversi, partendo dalla scelta di provare nuove funzionalità introdotte per arrivare alla correzione dei bugs delle versioni rilasciate pacchettizzate, rinunciando però a funzionalità peculiari della versiona PUEL (esempio: USB).

Sul sito di VirtualBox è abbastanza chiara la procedura per la compilazione e questa non vuole essere una guida, ma una cronistoria di quanto fatto (e provato) negli ultimi giorni da me.

Il suddetto albero è visibile su http://virtualbox.org/browser/trunk, mentre le ultime modifiche sono evidenziate su http://virtualbox.org/timeline.

La prima cosa da fare (CONSIGLIATA), se vogliamo tornare al punto di partenza (E’ POSSIBILE FAR COESISTERE LE DUE VERSIONI), è quella di copiare l’albero .VirtualBox/Machines e il file ./VirtualBox/VirtualBox.xml in luogo sicuro, perché verranno modificati tutti i files XML per allinearli alla versione 1.3 (rispetto alla 1.2). Le prime righe del file xml della macchina (nuova versione) sono infatti:

<?xml version="1.0"?>
<!-- Automatically converted from version '1.3.pre-linux' -->
<!-- Automatically converted from version '1.2-linux' -->
<!-- innotek VirtualBox Machine Configuration -->
<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.3-linux">

(sperando che wordpress mantenga il codice xml)

Mentre non è necessario copiare i dischi immagine VDI.

vboxsrc03
Le librerie necessarie per la compilazione vengono riportate nella pagina delle istruzioni per linux, anche se non mi è chiaro a cosa si riferisce la versione “for VBox version >= 1.6:”
Per quanto mi riguarda ho installato oltre a quelle consigliate anche libqt4-dev:

sudo apt-get install gcc g++ bcc iasl xsltproc uuid-dev zlib1g-dev libidl-dev \
libsdl1.2-dev libxcursor-dev libqt3-headers libqt3-mt-dev \
libasound2-dev libstdc++5 libhal-dev libpulse-dev libxml2-dev \
libxslt1-dev

mentre su un’altra macchina non sono riuscito a capire la libreria GL mancante che causava errore:

kBuild: Linking VBoxSharedFolders
kBuild: Linking VBoxSharedOpenGL
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status

Iniziamo a scaricare l’albero svn:

svn co http://virtualbox.org/svn/vbox/trunk vbox

il messaggio della versione attuale verrà stampato a fine download, per ora è:

Caricamento di oggetto esterno in 'vbox/src/libs/kStuff/kStuff'
L'oggetto esterno è stato estratto alla revisione 2.
Caricamento di oggetto esterno in 'vbox/kBuild'
L'oggetto esterno è stato estratto alla revisione 1495.
Estratta revisione 8167.

Passiamo alla compilazione:

cd vbox
$ ./configure
Checking for environment: Determined build machine: linux.x86, target machine: linux.x86, OK.
Checking for kBuild: found, OK.
Checking for gcc: found version 4.2.3, OK.
Checking for as86: found version 0.16.17, OK.
Checking for bcc: found version 0.16.17, OK.
Checking for iasl: found version 20061109, OK.
Checking for xslt: found, OK.
Checking for pthread: found, OK.
Checking for libxml2: found version 2.6.31, OK.
Checking for libxslt: found version 1.1.22, OK.
Checking for libIDL: found version 0.8.10, OK.
Checking for zlib: found version 1.2.3.3, OK.
Checking for libpng: found version 1.2.15beta5, OK.
Checking for SDL: found version 1.2.12, OK.
Checking for X libraries: found, OK.
Checking for Xcursor: found, OK.
Checking for Qt3: found version 3.3.8b, OK.
Checking for Qt3 devtools: found version 3.3.8b, OK.
Checking for Qt4: found version 4.3.4, OK.
Checking for Qt4 devtools: found version 4.3.4, OK.
Checking for Qt4 uic3: found version 4.3.4, OK.
Checking for static stc++ library: found, OK.
Checking for Linux kernel sources: found version 2.6.24, OK.
Checking for ALSA: found version 1.0.15, OK.
Checking for PulseAudio: found version 0.9.10 API version 11, OK.
Checking for compiler.h: compiler.h not found, OK.

Successfully generated '/Software/vbox/AutoConfig.kmk' and '/Software/vbox/env.sh'.
Source '/Software/vbox/env.sh' once before you start to build VBox:

leggiamo il file (env.sh) delle variabili

$ source /Software/vbox/env.sh

e compiliamo con:

$ kmk
kBuild: Generating /home/Software/vbox/out/linux.x86/release/revision.kmk
/Software/vbox/kBuild/bin/linux.x86/kmk_redirect -E 'LC_ALL=C' -wo /home/Software/vbox/out/linux.x86/release/revision.kmk.ts.tmp -- svn info /home/Software/vbox
/Software/vbox/kBuild/bin/linux.x86/kmk_sed -e '/^Revision/!d' -e 's/Revision\: */export VBOX_SVN_REV=/' --output /home/Software/vbox/out/linux.x86/release/revision.kmk.ts /home/Software/vbox/out/linux.x86/release/revision.kmk.ts.tmp
/home/Software/vbox/out/linux.x86/release/revision.kmk.ts -> /home/Software/vbox/out/linux.x86/release/revision.kmk

…………..
sizeof(PCIATAState): 0xa84 (2692)
sizeof(SerialState): 0xc8 (200)
tstDeviceStructSize: SUCCESS

Una volta finita possiamo compilare il modulo per il nostro kernel:

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

Makefile:56: Using BUILD_TARGET_ARCH='x86' from the environment.
Makefile:66: Using BUILD_TYPE='release' from the environment.
make KBUILD_VERBOSE=1 -C /lib/modules/2.6.24-12-generic/build SUBDIRS=/home/Software/vbox/out/linux.x86/release/bin/src SRCROOT=/home/Software/vbox/out/linux.x86/release/bin/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-12-generic'

……………….
ld -m elf_i386 -r -m elf_i386 --build-id -o /home/Software/vbox/out/linux.x86/release/bin/src/vboxdrv.ko /home/Software/vbox/out/linux.x86/release/bin/src/vboxdrv.o /home/Software/vbox/out/linux.x86/release/bin/src/vboxdrv.mod.o
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-12-generic'

E’ chiaro che se abbiamo installato i moduli della versione PUEL oppure OSE pacchettizzati, per caricare quello appena compilato, dobbiamo rimuovere il vecchio modulo e inserire il nuovo:

$ sudo modprobe -r vboxdrv
$ sudo insmod out/linux.x86/release/bin/src/vboxdrv.ko

infatti il modulo è leggermente più grande:

prima:
$ lsmod |grep vbox
vboxdrv 61104 0

dopo:
$ lsmod |grep vbox
vboxdrv 77504 1

spostiamoci nella directory di output e eseguiamo il nostro nuovo VirtualBox:

$ cd out/linux.x86/release/bin/
LD_LIBRARY_PATH=. ./VirtualBox

oppure specifichiamo LD_LIBRARY_PATH e percorso in un unico comando:

LD_LIBRARY_PATH=/home/adoldo/vbox/out/linux.x86/release/bin/ \
/home/adoldo/vbox/out/linux.x86/release/bin/VirtualBox

Buona virtualizzazione,

Enjoy 🙂

vboxsrc04 (SVN 1.5.51)

vboxsrc02

vboxsrc06

vboxsrc07

Informazioni Antonio Doldo
www.toolinux.it - www.virtualboxes.org - adoldo.wordpress.com - Linux user & Android fan

18 Responses to Installazione di VirtualBox OSE svn (1.5.51) su Ubuntu Hardy 8.04

  1. Lazza says:

    Per carità però, cambia colore a quelle scritte verdi! 😛

  2. @Lazza
    grazie del suggerimento, avevo scelto il verde come è nel mio editor xml 😦
    Adesso ho messo il nero 🙂
    Ciao,
    Antonio

  3. telpe says:

    Eppure è installata…sai da cosa può dipendere?

    Checking for libxml2:
    ** not found!

    ciao, ottima guida

  4. telpe says:

    Mi rispondo da solo, non avevo la -dev

  5. @telpe
    OK, grazie. Forse con l’uscita di 1.6.0 dovremmo riprovare a compilare da SVN, tu lo stai facendo?
    Ciao,
    Antonio

  6. @telpe
    non ho resistito 🙂
    la versione svn si presenta come 1.6.1_OSE

    procedura come da post

  7. Stefilma says:

    Ciao sono l’amministratore di The Curser Code ti andrebbe di far scambio nelle blogroll…fammi sapere http://irves.wordpress.com/

  8. @Stefilma
    sempre se parli sempre e solo di Linux 😀
    ti aggiungo al blogroll 😉
    Ciao,
    Antonio

  9. @Stefilma
    non vedo la tua “adesione”, per ora rimuovo.

  10. Pingback: VirtualBox OSE 1.6.1~svn per Debian e Ubuntu | Yourpage live news aggregator

  11. Pingback: VirtualBox OSE 1.6.1~svn per Debian e Ubuntu | Yourpage live news aggregator

  12. cesa says:

    ciao, vedo dai tuoi screenshoot che l’interfaccia grafica di VirtualBox è piuttosto integrata col tuo ambiente desktop. Io uso gnome, ma l’interfaccia che ho non solo non si integra in gnome (non avevo certo questa pretesa), ma mi pare sia proprio un qualcosa molto old style.

    Ecco uno screenshoot che mostra la situazione.
    Secondo te da cosa può dipendere? Da qualche libreria vecchia? Ah, aggiungo che uso una Debian sid e l’ho installato direttamente dai repository.

    ciaooo

  13. cesa says:

    ops, scusate ho sbagliato a scrivere il tag del link. Ecco lo screenshoot

  14. @cesa
    devo dire che anch’io su debian sid ho una cosa simile alla tua, probabilmente qualcke libreria gtk non è aggiornata 😦
    Non mi ricordo però se la versione svn si “allinea” meglio, ma ti posso dire che l’ultima che ho provato (1.6.51_OSE da SVN, vicina alla release 1.7) mi si è aperta con le librerie qt4 e naturalmente è stata compilata usando anche libqt4-dev
    vedi:

    Ciao,
    Antonio

  15. Geeno17 says:

    Quando do il comando ./configure mi da questo errore:
    Checking for Qt4:
    ** not found!
    Che pacchetto devo installare?

  16. @Geeno17
    oltre a quelle citate nel post, nelle ultime versioni è richiesto anche
    “libqt4-dev” che è quello che il ./configure non ti trova.

    Per cui quello che sono riuscito a catalogare è questa serie di pacchetti:
    gcc g++ bcc iasl xsltproc uuid-dev zlib1g-dev libidl-dev \
    libsdl1.2-dev libxcursor-dev libqt3-headers libqt3-mt-dev \
    libasound2-dev libstdc++5 libhal-dev libpulse-dev libxml2-dev \
    libxslt1-dev libqt4-dev fakeroot debhelper subversion \
    python-qt4-dev g++-4.2 linux-headers-`uname -r` \
    build-essential python-qt4-dev

    Ciao,
    Antonio

  17. @Tuan
    brief 🙂
    Thanks to you

Lascia un commento