install.sh revision 09ed5ee011f3a6cd9d4742216ad3bb7dbf855641
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Oracle VM VirtualBox
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VirtualBox linux installation script
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Copyright (C) 2007-2011 Oracle Corporation
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# available from http://www.virtualbox.org. This file is free software;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# you can redistribute it and/or modify it under the terms of the GNU
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# General Public License (GPL) as published by the Free Software
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Include routines and utilities needed by the installer
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncif [ -n "$HARDENED" ]; then
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync##############################################################################
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Helper routines #
af8d59d05d72f134aeea62712f1286b369807d52vboxsync##############################################################################
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# This routine makes sure that there is no previous installation of
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# VirtualBox other than one installed using this install script or a
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# compatible method. We do this by checking for any of the VirtualBox
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# applications in /usr/bin. If these exist and are not symlinks into
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# the installation directory, then we assume that they are from an
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# incompatible previous installation.
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## Helper routine: test for a particular VirtualBox binary and see if it
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## is a link into a previous installation directory
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## Arguments: 1) the binary to search for and
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## 2) the installation directory (if any)
af8d59d05d72f134aeea62712f1286b369807d52vboxsync## Returns: false if an incompatible version was detected, true otherwise
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync test ! -e $binary 2>&1 > /dev/null ||
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync readlink $binary 2>/dev/null | grep "$install_dir" > /dev/null
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync## Main routine
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## Argument: the directory where the previous installation should be
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## located. If this is empty, then we will assume that any
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## installation of VirtualBox found is incompatible with this one.
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync## Returns: false if an incompatible installation was found, true otherwise
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # These should all be symlinks into the installation folder
af8d59d05d72f134aeea62712f1286b369807d52vboxsync check_binary "/usr/bin/VirtualBox" "$install_dir" &&
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync check_binary "/usr/bin/VBoxManage" "$install_dir" &&
e761514762c8705557b347266d54ade68888537cvboxsync check_binary "/usr/bin/VBoxHeadless" "$install_dir" &&
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync check_binary "/usr/bin/VBoxBalloonCtrl" "$install_dir" &&
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync##############################################################################
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Main script #
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync##############################################################################
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncinfo "VirtualBox Version $VERSION r$SVNREV ($BUILD) installer"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Make sure that we were invoked as root...
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Set up logging before anything else
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Now stop the ballon control service otherwise it will keep VBoxSVC running
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Now stop the web service otherwise it will keep VBoxSVC running
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Now check if no VBoxSVC daemon is running
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsynclog "VirtualBox $VERSION r$SVNREV installer, built $BUILD."
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync# Sanity check: figure out whether build arch matches uname arch
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Check that the system is setup correctly for the installation
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynchave_bzip2="`check_bzip2; echo $?`" # Do we have bzip2?
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynchave_gmake="`check_gmake; echo $?`" # Do we have GNU make?
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynchave_ksource="`check_ksource; echo $?`" # Can we find the kernel source?
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsyncif [ $have_bzip2 -eq 1 -o $have_gmake -eq 1 -o $have_ksource -eq 1 \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync info "Problems were found which would prevent VirtualBox from installing."
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync info "Please correct these problems and try again."
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log "Giving up due to the problems mentioned above."
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync# Sensible default actions
af8d59d05d72f134aeea62712f1286b369807d52vboxsync # Legacy option
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync info "Specifying an installation path is not allowed -- using /opt/VirtualBox!"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Find previous installation
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "You appear to have a version of VirtualBox on your system which was installed"
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "from a different source or using a different type of installer (or a damaged"
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "installation of VirtualBox). We strongly recommend that you remove it before"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync if ! expr "$reply" : [yY] && ! expr "$reply" : [yY][eE][sS]
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log "User requested cancellation of the installation"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Terminate Server and VBoxNetDHCP if running
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # Remove previous installation
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync if [ -n "$PREV_INSTALLATION" -a -z "$FORCE_UPGRADE" -a ! "$VERSION" = "$INSTALL_VER" ] &&
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "If you are upgrading from VirtualBox 1.5 or older and if some of your virtual"
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "machines have saved states, then the saved state information will be lost"
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "after the upgrade and will have to be discarded. If you do not want this then"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync if ! expr "$reply" : [yY] && ! expr "$reply" : [yY][eE][sS]
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log "User requested cancellation of the installation"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if [ ! "$VERSION" = "$INSTALL_VER" -a ! "$BUILD_MODULE" = "true" -a -n "$DKMS" ]
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Not doing this can confuse dkms
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync info "Rebuilding the kernel module after version change"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync if [ -n "$PREV_INSTALLATION" ]; then
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync [ -n "$INSTALL_REV" ] && INSTALL_REV=" r$INSTALL_REV"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync info "Removing previous installation of VirtualBox $INSTALL_VER$INSTALL_REV from $PREV_INSTALLATION"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log "Removing previous installation of VirtualBox $INSTALL_VER$INSTALL_REV from $PREV_INSTALLATION"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync $DKMS remove -m vboxhost -v $INSTALL_VER --all > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync $DKMS remove -m vboxdrv -v $INSTALL_VER --all > /dev/null 2>&1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $DKMS remove -m vboxnetflt -v $INSTALL_VER --all > /dev/null 2>&1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync $DKMS remove -m vboxnetadp -v $INSTALL_VER --all > /dev/null 2>&1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # OSE doesn't always have the initscript
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync info "Warning: could not stop VirtualBox kernel module."
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync info "Please restart your system to apply changes."
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log "Unable to remove the old VirtualBox kernel module."
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log " An old version of VirtualBox may be running."
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Verify the archive
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync bzip2 -d -c VirtualBox.tar.bz2 | tar -tf - > $CONFIG_DIR/$CONFIG_FILES
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync log 'Error running "bzip2 -d -c VirtualBox.tar.bz2 | tar -tf - > '"$CONFIG_DIR/$CONFIG_FILES"'".'
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync abort "Error installing VirtualBox. Installation aborted"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Create installation directory and install
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync bzip2 -d -c VirtualBox.tar.bz2 | tar -xf - -C $INSTALLATION_DIR
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync log 'Error running "bzip2 -d -c VirtualBox.tar.bz2 | tar -xf - -C '"$INSTALLATION_DIR"'".'
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync abort "Error installing VirtualBox. Installation aborted"
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # XXX SELinux: allow text relocation entries
af8d59d05d72f134aeea62712f1286b369807d52vboxsync chcon -t texrel_shlib_t $INSTALLATION_DIR/VBox* > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t texrel_shlib_t $INSTALLATION_DIR/VBoxAuth.so > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t texrel_shlib_t $INSTALLATION_DIR/VirtualBox.so > /dev/null 2>&1
af8d59d05d72f134aeea62712f1286b369807d52vboxsync chcon -t texrel_shlib_t $INSTALLATION_DIR/components/VBox*.so > /dev/null 2>&1
e761514762c8705557b347266d54ade68888537cvboxsync chcon -t java_exec_t $INSTALLATION_DIR/VirtualBox > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t java_exec_t $INSTALLATION_DIR/VBoxSDL > /dev/null 2>&1
af8d59d05d72f134aeea62712f1286b369807d52vboxsync chcon -t java_exec_t $INSTALLATION_DIR/VBoxHeadless > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t java_exec_t $INSTALLATION_DIR/VBoxNetDHCP > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t java_exec_t $INSTALLATION_DIR/VBoxExtPackHelperApp > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t java_exec_t $INSTALLATION_DIR/vboxwebsrv > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync chcon -t java_exec_t $INSTALLATION_DIR/webtest > /dev/null 2>&1
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Hardened build: Mark selected binaries set-user-ID-on-execution,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # create symlinks for working around unsupported $ORIGIN/.. in VBoxC.so (setuid),
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # and finally make sure the directory is only writable by the user (paranoid).
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync if [ -n "$HARDENED" ]; then
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync test -e $INSTALLATION_DIR/VirtualBox && chmod 4511 $INSTALLATION_DIR/VirtualBox
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync test -e $INSTALLATION_DIR/VBoxSDL && chmod 4511 $INSTALLATION_DIR/VBoxSDL
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync test -e $INSTALLATION_DIR/VBoxHeadless && chmod 4511 $INSTALLATION_DIR/VBoxHeadless
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync test -e $INSTALLATION_DIR/VBoxNetDHCP && chmod 4511 $INSTALLATION_DIR/VBoxNetDHCP
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/VBoxVMM.so $INSTALLATION_DIR/components/VBoxVMM.so
af8d59d05d72f134aeea62712f1286b369807d52vboxsync ln -sf $INSTALLATION_DIR/VBoxREM.so $INSTALLATION_DIR/components/VBoxREM.so
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/VBoxRT.so $INSTALLATION_DIR/components/VBoxRT.so
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/VBoxDDU.so $INSTALLATION_DIR/components/VBoxDDU.so
af8d59d05d72f134aeea62712f1286b369807d52vboxsync ln -sf $INSTALLATION_DIR/VBoxXPCOM.so $INSTALLATION_DIR/components/VBoxXPCOM.so
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # This binary needs to be suid root in any case, even if not hardened
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync test -e $INSTALLATION_DIR/VBoxNetAdpCtl && chmod 4511 $INSTALLATION_DIR/VBoxNetAdpCtl
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Install runlevel scripts
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync install_init_script vboxballoonctrl-service.sh vboxballoonctrl-service
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync install_init_script vboxweb-service.sh vboxweb-service
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync addrunlevel vboxdrv 20 80 # This may produce useful output
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync delrunlevel vboxballoonctrl-service > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync addrunlevel vboxballoonctrl-service 25 75 # This may produce useful output
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync addrunlevel vboxweb-service 25 75 # This may produce useful output
af8d59d05d72f134aeea62712f1286b369807d52vboxsync # Create users group
af8d59d05d72f134aeea62712f1286b369807d52vboxsync # Create symlinks to start binaries
e761514762c8705557b347266d54ade68888537cvboxsync ln -sf $INSTALLATION_DIR/VBox.sh /usr/bin/VirtualBox
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/VBox.sh /usr/bin/VBoxManage
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/VBox.sh /usr/bin/VBoxHeadless
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/VBox.sh /usr/bin/VBoxBalloonCtrl
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync ln -sf $INSTALLATION_DIR/VBox.sh /usr/bin/vboxwebsrv
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync ln -sf $INSTALLATION_DIR/VBox.png /usr/share/pixmaps/VBox.png
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Unity and Nautilus seem to look here for their icons
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync ln -sf $INSTALLATION_DIR/icons/128x128/virtualbox.png /usr/share/pixmaps/virtualbox.png
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync ln -sf $INSTALLATION_DIR/virtualbox.desktop /usr/share/applications/virtualbox.desktop
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/virtualbox.xml /usr/share/mime/packages/virtualbox.xml
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/rdesktop-vrdp /usr/bin/rdesktop-vrdp
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf $INSTALLATION_DIR/src/vboxhost /usr/src/vboxhost-_VERSION_
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # Convenience symlinks. The creation fails if the FS is not case sensitive
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf VirtualBox /usr/bin/virtualbox > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf VBoxManage /usr/bin/vboxmanage > /dev/null 2>&1
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync ln -sf VBoxHeadless /usr/bin/vboxheadless > /dev/null 2>&1
af8d59d05d72f134aeea62712f1286b369807d52vboxsync for i in *; do
af8d59d05d72f134aeea62712f1286b369807d52vboxsync for j in *; do
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync ln -s $INSTALLATION_DIR/icons/$i/$j /usr/share/icons/hicolor/$i/$dst/$j
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync echo /usr/share/icons/hicolor/$i/$dst/$j >> $CONFIG_DIR/$CONFIG_FILES
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # Update the MIME database
af8d59d05d72f134aeea62712f1286b369807d52vboxsync # Update the desktop database
af8d59d05d72f134aeea62712f1286b369807d52vboxsync # If Python is available, install Python bindings
e761514762c8705557b347266d54ade68888537cvboxsync if [ -n "$PYTHON" ]; then
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync maybe_run_python_bindings_installer $INSTALLATION_DIR
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # Create udev description file
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync install_udev_run "$VBOXDRV_GRP" "$VBOXDRV_MODE" "$INSTALLATION_DIR" \
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync # Build our device tree
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if test -r "$i/dev"; then
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync sh "$INSTALLATION_DIR/VBoxCreateUSBNode.sh" "$major" "$minor" "$class" 2>/dev/null
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # Write the configuration. Do this before we call /etc/init.d/vboxdrv setup!
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync echo "# VirtualBox installation directory" > $CONFIG_DIR/$CONFIG
af8d59d05d72f134aeea62712f1286b369807d52vboxsync echo "INSTALL_DIR='$INSTALLATION_DIR'" >> $CONFIG_DIR/$CONFIG
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync echo "INSTALL_VER='$VERSION'" >> $CONFIG_DIR/$CONFIG
af8d59d05d72f134aeea62712f1286b369807d52vboxsync echo "INSTALL_REV='$SVNREV'" >> $CONFIG_DIR/$CONFIG
ea230ec5b9bf57b741bbb8743ec37b436a9c1245vboxsync # Make kernel module
af8d59d05d72f134aeea62712f1286b369807d52vboxsync log "Output from the module build process (the Linux kernel build system) follows:"
af8d59d05d72f134aeea62712f1286b369807d52vboxsync # Start VirtualBox kernel module
af8d59d05d72f134aeea62712f1286b369807d52vboxsync if [ $RETVAL -eq 0 ] && ! start_init_script vboxdrv; then
af8d59d05d72f134aeea62712f1286b369807d52vboxsync log "End of the output from the Linux kernel build system."
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "VirtualBox has been installed successfully, but the kernel module could not"
af8d59d05d72f134aeea62712f1286b369807d52vboxsync info "be built. When you have fixed the problems preventing this, execute"
. ./uninstall.sh
exit $RC_SCRIPT