VirtualBox

Changeset 17068 in vbox for trunk/src/VBox/Installer/solaris


Ignore:
Timestamp:
Feb 24, 2009 1:46:21 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
43292
Message:

Solaris/Installer: USB bits.

Location:
trunk/src/VBox/Installer/solaris
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/solaris/Makefile.kmk

    r17060 r17068  
    126126        $(if $(VBOX_WITH_QTGUI),VirtualBox,) \
    127127        VBoxManage \
    128         $(if $(VBOX_WITH_VBOXBFE),VBoxBFE) \
     128        $(if $(VBOX_WITH_VBOXBFE),VBoxBFE,) \
    129129        $(if $(VBOX_WITH_VBOXSDL),VBoxSDL,) \
     130        $(if $(VBOX_WITH_USB),VBoxUSBHelper,) \
    130131        VBoxSVC \
    131132        VBoxXPCOMIPCD \
     
    135136SOLARIS_STRIP_BINS = \
    136137        vboxdrv \
    137         $(if $(VBOX_WITH_NETFLT),vboxflt) \
     138        $(if $(VBOX_WITH_NETFLT),vboxflt,) \
     139        $(if $(VBOX_WITH_USB),vboxusb,) \
    138140        VBoxDD.so \
    139141        VBoxDD2.so \
     
    163165ifdef VBOX_WITH_HARDENING
    164166SOLARIS_STRIP_BINS += \
    165         $(if $(VBOX_WITH_VBOXBFE),VBoxBFE.so) \
     167        $(if $(VBOX_WITH_VBOXBFE),VBoxBFE.so,) \
    166168        $(if $(VBOX_WITH_VBOXSDL),VBoxSDL.so,) \
    167169        $(if $(VBOX_WITH_QTGUI),VirtualBox.so,)
     
    200202        autoresponse \
    201203        vboxdrv.conf \
    202         $(if $(VBOX_WITH_NETFLT),vboxflt.conf) \
     204        $(if $(VBOX_WITH_NETFLT),vboxflt.conf,) \
     205        $(if $(VBOX_WITH_USB),vboxusb.conf,) \
    203206        vboxdrv.sh \
    204207        VBox.sh \
     
    377380                $(if $(and $(VBOX_LICENSE_BINS),$(VBOX_WITH_QTGUI)),$(VBOX_LICENSE_BINS),) \
    378381                $(PATH_ROOT)/src/VBox/HostDrivers/Support/solaris/vboxdrv.conf \
    379                 $(if $(VBOX_WITH_NETFLT),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetFlt/solaris/vboxflt.conf) \
     382                $(if $(VBOX_WITH_NETFLT),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetFlt/solaris/vboxflt.conf,) \
     383                $(if $(VBOX_WITH_USB),$(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/solaris/vboxusb.conf,) \
    380384                $(if $(not $(VBOX_WITH_NETFLT))$(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicinit_solaris.sh,) \
    381385                $(if $(not $(VBOX_WITH_NETFLT))$(PATH_ROOT)/src/VBox/Devices/Network/solaris/vnicterm_solaris.sh,) \
     
    398402                $(VBOX_PATH_SOL_INST_SRC)/vbox.pkginfo
    399403        $(QUIET)$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/HostDrivers/Support/solaris/vboxdrv.conf               $(SOLARIS_INST_DIR)/vboxdrv.conf
    400         $(QUIET)$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetFlt/solaris/vboxflt.conf            $(SOLARIS_INST_DIR)/vboxflt.conf
     404        $(QUIET)$(if $(VBOX_WITH_NETFLT),$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxNetFlt/solaris/vboxflt.conf         $(SOLARIS_INST_DIR)/vboxflt.conf,)
     405        $(QUIET)$(if $(VBOX_WITH_USB),$(INSTALL) -m 0644 $(PATH_ROOT)/src/VBox/HostDrivers/VBoxUSB/solaris/vboxusb.conf               $(SOLARIS_INST_DIR)/vboxusb.conf,)
    401406        $(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(PATH_BIN)/LICENSE                                        $(SOLARIS_INST_DIR)/LICENSE)
    402407        $(QUIET)$(if $(VBOX_OSE),,$(INSTALL) -m 0644 $(PATH_BIN)/LICENSE                                        $(SOLARIS_INST_DIR)/vbox.copyright)
  • trunk/src/VBox/Installer/solaris/makepackage.sh

    r16713 r17068  
    134134filelist_fixup prototype '$3 == "opt/VirtualBox/amd64/vboxdrv=amd64/vboxdrv"'                           '$3 = "platform/i86pc/kernel/drv/amd64/vboxdrv=amd64/vboxdrv"; $6 = "sys"'
    135135
     136# NetFilter vboxflt
    136137filelist_fixup prototype '$3 == "opt/VirtualBox/i386/vboxflt=i386/vboxflt"'                             '$3 = "platform/i86pc/kernel/drv/vboxflt=i386/vboxflt"; $6 = "sys"'
    137138filelist_fixup prototype '$3 == "opt/VirtualBox/amd64/vboxflt=amd64/vboxflt"'                           '$3 = "platform/i86pc/kernel/drv/amd64/vboxflt=amd64/vboxflt"; $6 = "sys"'
    138139
     140# USB vboxusb
     141filelist_fixup prototype '$3 == "opt/VirtualBox/i386/vboxusb=i386/vboxusb"'                             '$3 = "platform/i86pc/kernel/drv/vboxusb=i386/vboxusb"; $6 = "sys"'
     142filelist_fixup prototype '$3 == "opt/VirtualBox/amd64/vboxusb=amd64/vboxusb"'                           '$3 = "platform/i86pc/kernel/drv/amd64/vboxusb=amd64/vboxusb"; $6 = "sys"'
     143
     144# All the driver conf files
    139145filelist_fixup prototype '$3 == "opt/VirtualBox/vboxdrv.conf=vboxdrv.conf"'                             '$3 = "platform/i86pc/kernel/drv/vboxdrv.conf=vboxdrv.conf"'
    140146filelist_fixup prototype '$3 == "opt/VirtualBox/vboxflt.conf=vboxflt.conf"'                             '$3 = "platform/i86pc/kernel/drv/vboxflt.conf=vboxflt.conf"'
     147filelist_fixup prototype '$3 == "opt/VirtualBox/vboxusb.conf=vboxusb.conf"'                             '$3 = "platform/i86pc/kernel/drv/vboxusb.conf=vboxusb.conf"'
    141148
    142149# hardening requires some executables to be marked setuid.
     
    158165fi
    159166
     167# VBoxUSBHelper needs to be marked setuid.
     168if test -f $VBOX_INSTALLED_DIR/amd64/VBoxUSBHelper || test -f $VBOX_INSTALLED_DIR/i386/VBoxUSBHelper; then
     169    $VBOX_AWK 'NF == 6 \
     170        && (    $3 == "opt/VirtualBox/amd64/VBoxUSBHelper=amd64/VBoxUSBHelper" \
     171            ||  $3 == "opt/VirtualBox/i386/VBoxUSBHelper=i386/VBoxUSBHelper" \
     172            ) \
     173       { $4 = "4755" } { print }' prototype > prototype2
     174    mv -f prototype2 prototype       
     175fi
     176
    160177# desktop links and icons
    161178filelist_fixup prototype '$3 == "opt/VirtualBox/virtualbox.desktop=virtualbox.desktop"'                 '$3 = "usr/share/applications/virtualbox.desktop=virtualbox.desktop"'
  • trunk/src/VBox/Installer/solaris/postinstall.sh

    r16159 r17068  
    3939            if test -f /platform/i86pc/kernel/drv/vboxflt.conf; then
    4040                /opt/VirtualBox/vboxdrv.sh fltstart
    41                 rc=$?           
     41                rc=$?
     42            fi
     43            if test -f /platform/i86pc/kernel/drv/vboxusb.conf; then
     44                /opt/VirtualBox/vboxdrv.sh usbstart
     45                rc=$?
     46                if test "$rc" -eq 0; then
     47                    # add vboxusb to the devlink.tab
     48                    sed -e '
     49                    /name=vboxusb/d' /etc/devlink.tab > /etc/devlink.vbox
     50                    echo "type=ddi_pseudo;name=vboxusb  \D" >> /etc/devlink.vbox
     51                    mv -f /etc/devlink.vbox /etc/devlink.tab
     52                fi
    4253            fi
    4354        fi
  • trunk/src/VBox/Installer/solaris/preremove.sh

    r13501 r17068  
    3838
    3939    # vboxdrv.sh would've been installed, we just need to call it.
     40    /opt/VirtualBox/vboxdrv.sh usbstop alwaysremdrv
    4041    /opt/VirtualBox/vboxdrv.sh fltstop alwaysremdrv
    4142    /opt/VirtualBox/vboxdrv.sh stop alwaysremdrv
     
    4647    mv -f /etc/devlink.vbox /etc/devlink.tab
    4748
    48     # remove the link
     49    # remove devlink.tab entry for vboxusb
     50    sed -e '
     51/name=vboxusb/d' /etc/devlink.tab > /etc/devlink.vbox
     52    mv -f /etc/devlink.vbox /etc/devlink.tab
     53
     54    # remove the devlinks
    4955    if test -h "/dev/vboxdrv" || test -f "/dev/vboxdrv"; then
    5056        rm -f /dev/vboxdrv
     57    fi
     58    if test -h "/dev/vboxusb" || test -f "/dev/vboxusb"; then
     59        rm -f /dev/vboxusb
    5160    fi
    5261fi
  • trunk/src/VBox/Installer/solaris/vboxdrv.sh

    r15912 r17068  
    2525VBIMODNAME="vbi"
    2626FLTMODNAME="vboxflt"
     27USBMODNAME="vboxusb"
    2728MODDIR32="/platform/i86pc/kernel/drv"
    2829MODDIR64=$MODDIR32/amd64
     
    119120{
    120121    module_added $FLTMODNAME
     122    return $?
     123}
     124
     125vboxusb_added()
     126{
     127    module_added $USBMODNAME
     128    return $?
     129}
     130
     131vboxusb_loaded()
     132{
     133    module_loaded $USBMODNAME
    121134    return $?
    122135}
     
    239252}
    240253
     254
     255start_vboxusb()
     256{
     257    if vboxusb_loaded; then
     258        info "VirtualBox USB kernel module already loaded."
     259    else
     260        /usr/sbin/add_drv -m'* 0600 root sys' $USBMODNAME || abort "Failed to add VirtualBox USB Kernel module."
     261        /usr/sbin/modload -p drv/$USBMODNAME
     262        if test ! vboxusb_loaded; then
     263            abort "Failed to load VirtualBox USB kernel module."
     264        else
     265            info "VirtualBox USB kernel module loaded."
     266        fi
     267    fi
     268}
     269
     270stop_vboxusb()
     271{
     272    if vboxusb_loaded; then
     273        vboxusb_mod_id=`/usr/sbin/modinfo | grep $USBMODNAME | cut -f 1 -d ' '`
     274        if test -n "$vboxusb_mod_id"; then
     275            /usr/sbin/modunload -i $vboxusb_mod_id
     276
     277            # see stop_vboxdrv() for why we have "alwaysremdrv".
     278            if test -n "$ALWAYSREMDRV"; then
     279                /usr/sbin/rem_drv $USBMODNAME
     280            else
     281                if test "$?" -eq 0; then
     282                    /usr/sbin/rem_drv $USBMODNAME || abort "Unloaded VirtualBox USB kernel module, but failed to remove it!"
     283                else
     284                    abort "Failed to unload VirtualBox USB kernel module. Old one still active!!"
     285                fi
     286            fi
     287
     288            info "VirtualBox USB kernel module unloaded."
     289        fi
     290    elif vboxusb_added; then
     291        /usr/sbin/rem_drv $USBMODNAME || abort "Unloaded VirtualBox USB kernel module, but failed to remove it!"
     292        info "VirtualBox USB kernel module unloaded."
     293    elif test -z "$SILENTUNLOAD"; then
     294        info "VirtualBox USB kernel module not loaded."
     295    fi
     296}
     297
    241298status_vboxdrv()
    242299{
     
    252309stop_all_modules()
    253310{
     311    stop_vboxusb
    254312    stop_vboxflt
    255313    stop_module
     
    260318    start_module
    261319    start_vboxflt
     320    start_vboxusb
    262321}
    263322
     
    299358    stop_vboxflt
    300359    ;;
     360usbstart)
     361    start_vboxusb
     362    ;;
     363usbstop)
     364    stop_vboxusb
     365    ;;
    301366*)
    302     echo "Usage: $0 {start|stop|status|fltstart|fltstop|stopall|startall}"
     367    echo "Usage: $0 {start|stop|status|fltstart|fltstop|usbstart|usbstop|stopall|startall}"
    303368    exit 1
    304369esac
Note: See TracChangeset for help on using the changeset viewer.

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