Virtualbox OSE 1.5.4 telepítése Debian rendszer alá forrásból

Noh.. Eddig elkezdett virtualizációs projectemet nem adtam fel, és mint ahogy igértem mentem is tovább a VirtualBox-OSE ( Open Source Edition ) irányába a XEN után.. Íme 1-2 tapasztalat amit a telepítés során sikerült megtapasztalnom, és egy kisebb HOWTO a forrásból való telepítés végrehajtásához ( A használat közben szerzett tapasztalatokról majd ha hoszabb ideje lesz szerencsém használni a progit fogok beszámolni ):

Első nekifutásra - használjuk a disztribúció által kínált csomagot:

    Első próbálkozásom alkalmával gondoltam megpróbálom felrakni csomagból a virtualbox-ot, és az milyen jó is lesz, és legalább ha van új csomag akkor a frissítéseket is gyorsan be tudom szerezni.. Aztán ugyan abba a problémába öütköztem nagy hírtelenjében, mint XEN-nél - nevezetesen, hogy a VirtualBOX-nak is szüksége van egy bizonyos szintű kernel támogatásra, illetve saját kis kernel modulkára, hogy képes legyen működni, amihez a kedves fejlesztők természetesen elérhetővé bocsájtottak a userek számára egy initrd-s megoldást a sima standard disztró kernel alapján, amibe ezt a modult belepakolták.. csakhogy ezzel 3 gond is akadt nálam:
    - Az OS-em olyan jellemzőkkel bír amely révén a gyári disztró kernel nem elég az összes eszköz tökéletes használatához a gépemben
    - A jól belőtt kis kernelemet nem akarom lecserélni másra, főleg hogy amúgy is kéne újat forgassak ismét.
    - Utálom az initrd-s kerneleket..

Szóval ezek után rá kelett eszméljek, hogy ez az útvonal nem járható, így aztán muszály lesz ismét ( ugyan úgy mint XEN-nél ) forrásból felpakolni az egész hóbelebancot, hogy minden szépen működjön.[/]

Második nekifutás - telepítsük forrásból:

    Na tehát akkor nézzük hogy is volt ez elkövetve:

    1x is a forrásfile-ok leszedése elött kelleni fog 1-2 dependency ( ez azért van csomagból is:) ).

    klotild:/#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 xalan libxalan110 libxalan110-dev
    #Mondjuk a hivatalos leírástól eltérően azt kiemelném, hogy ott nem közlik a libxalan110-dev függőséget, holott szintén kell :)

    Aztán ha ezek megvannak akkor SZedhetjük us le a program forrását ( én most első körben megkockáztattam a stabil verziót, bátrabbak ugorjanak neki az sv-n nek :))

    Ha ez megvan akkor tömörítsük ki az arcívumot, majd a kitömörített mappában futassuk bátran a ./configure-t.
    huncraft@klotild:/usr/src/VirtualBox-1.5.4_OSE$ ./configure

    Ha ez végzett akkor jöhet a következő 2 lépés egyben is:
    huncraft@klotild:/usr/src/VirtualBox-1.5.4_OSE$ source env.sh && kmk

    Na itt van az a rész, hogy dőljünk hátra, és élvezzük a fordítást :) ( Ergó az előre bekészített hidegélelmet el lehet kezdeni fogyasztani, vagy ha épp van más dolga is az embernek akkor épp azt.. Ez nálam egy közel 20-25 percet vett igénybe.. ( Azért ha még is néznénk mi történik épp, akkor jópár warning-on ne lepődjünk meg.. )

    Ha lefordult minden, akkor jön a következő játék: Csináljuk meg hőn szeretett kernelünkhöz a kernel modult ( ehez persze kelleni fog egy kernel forrás is ). Szóval lépjünk bele a modul forrásának könyvtárába, és nyomban rendezzük is le a játékot egy szuszra:
    huncraft@klotild:/usr/src/VirtualBox-1.5.4_OSE$cd ./out/linux.x86/release/bin/src && make && sudo make install

    Ha ez is megvan akkor nézzük meg, hogy minden ok e. Első körben az új modulunkat töltsük be, majd ha ez sikeres lett, akkor létre kelett jönnie a /dev alatt egy új "device"-nak is.
    huncraft@klotild:/usr/src/VirtualBox-1.5.4_OSE$ sudo modprobe vboxdrv
    huncraft@klotild:/usr/src/VirtualBox-1.5.4_OSE$ ls -ld /dev/vboxdrv
    crw-rw---- 1 root vboxusers 10, 61 2008-01-12 22:08 /dev/vboxdrv

Ezzel lényegében a telepítés kész is. Egyetlen hibája, hogy a program ebből a mappából futtatható, mivel nem pakolja be magát sehova se a szabvány mappák közül.
De ha már itt tartunk kövesünk el még 1-2 dolgot:

    - Mivel a VirtualBox Userspace-ből fut X-en keresztül, így a mappánk jogait állítsuk úgy, hogy mi halandó kis userek is tudjuk minimum olvasni a mappát.
    - Tegyünk ki egy kedves kis parancsikont az asztalra, vagy valahova, merthogy a program futtatása sajna nem olyan egyszerű, mint ahogy azt megszoktuk más programok esetében ( kell neki az LD_LIBRARY_PATH változó beállított értéke is a futtatáshoz, ami alapból nem jön létre ( hacsak nem veszük fel alapból a változók listájára ).A parancsikonunk a következőhöz hasonló sort tartalmazza ( útvonalak persze legyenek jól belőve ):
    LD_LIBRARY_PATH=/usr/src/VirtualBox-1.5.4_OSE/out/linux.x86/release/bin /usr/src/VirtualBox-1.5.4_OSE/out/linux.x86/release/bin/VirtualBox

Ha ez is megvan akkor a programot futtatva el is kezdhetünk virtuális gépeket felpakolni. :)

Hozzászólások

Installációs segítség:
vbox.cfg


INSTALL_DIR=/opt/VirtualBox

interfaces


# This file is for registering VirtualBox permanent host networking interfaces
# and optionally adding them to network bridges on the host.
# Each line should be of the format <interface name> <user name> [<bridge>].

VBbox.sh


#!/bin/sh
#
# innotek VirtualBox
#
#  Copyright (C) 2006-2007 innotek GmbH
#
#  This file is part of VirtualBox Open Source Edition (OSE), as
#  available from http://www.virtualbox.org. This file is free software;
#  you can redistribute it and/or modify it under the terms of the GNU
#  General Public License as published by the Free Software Foundation,
#  in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
#  distribution. VirtualBox OSE is distributed in the hope that it will
#  be useful, but WITHOUT ANY WARRANTY of any kind.

PATH="/usr/bin:/bin:/usr/sbin:/sbin"
CONFIG="/etc/vbox/vbox.cfg"

if [ ! -r "$CONFIG" ]; then
    echo "Could not find VirtualBox installation. Please reinstall."
    exit 1
fi

. "$CONFIG"

# Note: This script must not fail if the module was not successfully installed
#       because the user might not want to run a VM but only change VM params!

if [ "$1" = "shutdown" ]; then
    SHUTDOWN="true"
elif [ ! -e /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
        cat << EOF
WARNING: There is no module available for the current kernel (`uname -r`).
         Please recompile the kernel module and install it by:

         sudo emerge -1 app-emulation/virtualbox-modules

         You will not be able to start VMs until this problem is fixed.
EOF
elif ! lsmod|grep -q vboxdrv; then
    cat << EOF
WARNING: The vboxdrv kernel module is not loaded.
         Please load the kernel module by:

           sudo modprobe vboxdrv

         You will not be able to start VMs until this problem is fixed.
EOF
elif [ ! -c /dev/vboxdrv ]; then
    cat << EOF
WARNING: The character device /dev/vboxdrv does not exist.
         Please try to reload the kernel module by:

           sudo rmmod vboxdrv; sleep 2; sudo modprobe vboxdrv

         and if that is not successful, try to re-install the package by:

           sudo emerge -1 app-emulation/virtualbox-modules

         You will not be able to start VMs until this problem is fixed.
EOF
elif [ ! -w /dev/vboxdrv ]; then
    if [ "`id | grep vboxusers`" = "" ]; then
        cat << EOF
WARNING: You are not a member of the "vboxusers" group.
         Please add yourself to this group before starting VirtualBox.

         You will not be able to start VMs until this problem is fixed.
EOF
    else
        cat << EOF
WARNING: /dev/vboxdrv not writable for some reason.
         If you recently added the current user to the "vboxusers" group
         then you have to logout and re-login to take the change effect.

         You will not be able to start VMs until this problem is fixed.
EOF
    fi
elif [ ! -e /usr/lib/libhal.so ]; then
        cat << EOF
WARNING: libhal was not found on this system.
         This can create several side effects thus problems,
         when accessing host resources (eg: Cd/Dvd readers).

         The use of "hal" is still recommended, please install it
         to meet this requirement by:

                sudo apt-get install hal libhal
EOF
fi

export LD_LIBRARY_PATH="$INSTALL_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
if [ -z "$SERVER_PID" ]; then
    # Server not running yet/anymore, cleanup socket path.
    # See IPC_GetDefaultSocketPath()!
    if [ -n "$LOGNAME" ]; then
        rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1
    else
        rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1
    fi
fi

if [ "$SHUTDOWN" = "true" ]; then
    if [ -n "$SERVER_PID" ]; then
        kill -TERM $SERVER_PID
        sleep 2
    fi
    exit 0
fi

APP=`which $0`
APP=${APP##/*/}
case "$APP" in
  VirtualBox)
    exec "$INSTALL_DIR/VirtualBox" "$@"
  ;;
  VBoxManage)
    exec "$INSTALL_DIR/VBoxManage" "$@"
  ;;
  VBoxSDL)
    exec "$INSTALL_DIR/VBoxSDL" "$@"
  ;;
  *)
    echo "Unknown application - $APP"
  ;;
esac

Install parancsok:


cd ./out/linux.x86/release/bin
mkdir /etc/vbox
mkdir /opt/VirtualBox
cp /tmp/vbox.cfg /etc/vbox
cp /tmp/interfaces /etc/vbox # itt nyilvan a picit feljebb levo filekra hivatkozom.
rm -rf sdk src tst* testcase xpidl SUPInstall SUPUninstall
cp -rf * /opt/VirtualBox
install -m 755 /tmp/VBox.sh /opt/VirtualBox
install -m 755 ../../../..//src/VBox/Installer/linux/VBoxAddIF.sh /opt/VirtualBox
for x in VirtualBox VBoxManage VBoxSDL; do ln -s /opt/VirtualBox/VBox.sh /usr/bin/${x}; done
ln -s /opt/VirtualBox/VBoxTunctl /usr/bin/VBoxTunctl
ln -s /opt/VirtualBox/VBoxAddIF.sh /usr/bin/VBoxAddIF
ln -s /opt/VirtualBox/VBoxAddIF.sh /usr/bin/VBoxDeleteIFxManage

Tömören ennyi. Gentoo alatt kicsit ennél bonyibb a kérdés, mert külön csoport van hozzá, de elvben minden jogot átszámoltam Debianhoz. Az asztal ikon készítése a leg egyszerűbb, külön talán nem is mondanám el.
Érdemesebb egyébként a LD_LIBRARY_PATH helyett a /etc/ld.so.conf mappába beletenni a virtualbox install mappáját (esetünkben /opt/VirtualBox) mert akkor nem kell külön workaroundolni

Van mar VirtualBoxhoz Debian csomag.

Az más, ha a kernel modulhoz van debian csomag.. ezt sajna nem tudtam.. Viszont ha végigolvastad akkor láthatod, hogy a irtualbox csomagot próbáltam 1x..
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Üllj le és kuss legyen!"..

Áruljátok már el, hogy miért olyan nagy baj, ha így rakom fel?? Örülök, hogy írtál install script-et, de speciel nekem ez így is szépen megfelel.. úgy is csak tesztelési fázisban van a progi nálam, és még az is csak az elején..
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Üllj le és kuss legyen!"..