VirtualBox

Changeset 58271 in vbox for trunk/src/VBox/Installer


Ignore:
Timestamp:
Oct 15, 2015 7:21:25 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
103461
Message:

Installer/linux (host): check the version and support driver version of currently installed kernel modules.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/linux/vboxdrv.sh

    r58261 r58271  
    6868    DEVICE_MODE=0660
    6969fi
     70VERSION=`cat "${MODULE_SRC}/vboxdrv/version-generated.h" \
     71       | sed -n 's/#define\s*VBOX_VERSION_STRING\s*"\(.*\)"/\1/p'`
     72IOC_VERSION=`cat "${MODULE_SRC}/vboxdrv/SUPDrvIOC.h" \
     73           | sed -n 's/#define\s*SUPDRV_IOC_VERSION\s*\(.*\)/\1/p'`
     74MODINFO_VERSION=`modinfo vboxdrv 2>/dev/null | grep "^version:"`
     75if expr "${MODINFO_VERSION}" : ".*${IOC_VERSION}" > /dev/null; then
     76    MODULE_BUILT=yes
     77else
     78    MODULE_BUILT=
     79fi
    7080
    7181[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
     
    103113    lsmod | grep -q "$1[^_-]"
    104114}
     115
     116test -z "${MODINFO_VERSION}" || expr "${MODINFO_VERSION}" : ".*${VERSION}" > /dev/null || \
     117    failure "Different version of VirtualBox services running. Please uninstall and try again"
    105118
    106119## Output the vboxdrv part of our udev rule.  This is redirected to the right file.
     
    230243start()
    231244{
     245    if test -z "${MODULE_BUILT}"; then
     246        test -z "${MODINFO_VERSION}" || stop || \
     247            failure "Cannot stop incompatible services version"
     248        setup
     249    fi
    232250    begin_msg "Starting VirtualBox services" console
    233251    # Create udev rule and USB device nodes.
     
    242260    fi
    243261    if ! running vboxdrv; then
    244         if ! rm -f $DEVICE; then
    245             failure "Cannot remove $DEVICE"
    246         fi
    247         if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
    248             setup
    249             if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
    250                 failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
    251             fi
    252         fi
     262        rm -f $DEVICE || failure "Cannot remove $DEVICE"
     263        $MODPROBE vboxdrv > /dev/null 2>&1 || \
     264            failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
    253265        sleep .2
    254266    fi
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette