VirtualBox

儲存庫 vbox 的更動 57986


忽略:
時間撮記:
2015-10-1 下午01:05:50 (9 年 以前)
作者:
vboxsync
訊息:

Installers/linux: try to rebuild the kernel modules if they cannot be loaded.

位置:
trunk/src/VBox
檔案:
修改 5 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Additions/linux/installer/vboxadd.sh

    r57971 r57986  
    215215
    216216        $MODPROBE vboxguest >/dev/null 2>&1 || {
    217             fail "modprobe vboxguest failed"
     217            setup
     218            $MODPROBE vboxguest >/dev/null 2>&1 ||
     219                fail "modprobe vboxguest failed"
    218220        }
    219221        case "$no_udev" in 1)
  • trunk/src/VBox/Installer/linux/debian/postinst.in

    r57969 r57986  
    7878    fi
    7979  fi
    80 
    81   # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
    82   if [ "$INSTALL_NO_VBOXDRV" = "1" ]; then
    83     rm -f /lib/modules/*/misc/vboxdrv.ko
    84     rm -f /lib/modules/*/misc/vboxnetflt.ko
    85     rm -f /lib/modules/*/misc/vboxnetadp.ko
    86   fi
    87 
    8880fi # $1 = "configure"
    8981
    9082#DEBHELPER#
    9183
    92 BUILD_MODULES=0
    93 REGISTER_MODULES=1
    94 # Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
    95 if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
    96   REGISTER_MODULES=0
     84if test "${INSTALL_NO_VBOXDRV}" = 1; then
     85  POSTINST_START=
     86  # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
    9787  if [ "$1" = "configure" ]; then
    98     if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
     88    rm -f /lib/modules/*/misc/vboxdrv.ko
     89    rm -f /lib/modules/*/misc/vboxnetflt.ko
     90    rm -f /lib/modules/*/misc/vboxnetadp.ko
     91    rm -f /lib/modules/*/misc/vboxpci.ko
     92  fi
     93else
     94  POSTINST_START=--start
     95  # Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
     96  if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
     97    if [ "$1" = "configure" ]; then
    9998      db_get virtualbox/module-compilation-allowed
    10099      if [ "$RET" = "false" ]; then
     
    103102though module compilation denied by debconf setting.
    104103EOF
     104        POSTINST_START=
    105105      else
    106106        db_input low virtualbox/module-compilation-allowed || true
    107107        db_go || true
    108108        db_get virtualbox/module-compilation-allowed
    109         if [ "$RET" = "true" ]; then
    110           BUILD_MODULES=1
     109        if [ "$RET" = "false" ]; then
     110          POSTINST_START=
    111111        fi
    112112      fi
    113     fi
    114   fi # $1 = "configure"
    115 fi
    116 
    117 if [ $BUILD_MODULES -eq 1 ]; then
    118   /usr/lib/virtualbox/vboxdrv.sh setup || true
     113    fi # $1 = "configure"
     114  fi
    119115fi
    120116
    121117# Install and start the new service scripts.
    122 POSTINST_START=--start
    123 test "${INSTALL_NO_VBOXDRV}" = 1 && POSTINST_START=
    124118/usr/lib/virtualbox/prerm-common.sh || true
    125119/usr/lib/virtualbox/postinst-common.sh /usr/lib/virtualbox "${POSTINST_START}" > /dev/null || true
  • trunk/src/VBox/Installer/linux/install.sh

    r57984 r57986  
    285285    test -e $INSTALLATION_DIR/VBoxVolInfo && chmod 4511 $INSTALLATION_DIR/VBoxVolInfo
    286286
    287     # Write the configuration. Do this before we call /sbin/rcvboxdrv setup!
     287    # Write the configuration.  Needs to be done before the vboxdrv service is
     288    # started.
    288289    echo "# VirtualBox installation directory" > $CONFIG_DIR/$CONFIG
    289290    echo "INSTALL_DIR='$INSTALLATION_DIR'" >> $CONFIG_DIR/$CONFIG
     
    363364    install_device_node_setup "$VBOXDRV_GRP" "$VBOXDRV_MODE" "$INSTALLATION_DIR"
    364365
    365     # Make kernel module
    366     MODULE_FAILED="false"
    367     if [ "$BUILD_MODULE" = "true" ]
    368     then
    369         info "Building the VirtualBox kernel modules"
    370         log "Output from the module build process (the Linux kernel build system) follows:"
    371         cur=`pwd`
    372         log ""
    373         # Start VirtualBox kernel module
    374         if ! ./vboxdrv.sh setup || ! ./vboxdrv.sh start; then
    375             info "Failed to load the kernel module."
    376             MODULE_FAILED="true"
    377             RC_SCRIPT=1
    378         fi
    379         log ""
    380         log "End of the output from the Linux kernel build system."
    381         cd $cur
    382     fi
    383 
    384366    # Do post-installation common to all installer types, currently service
    385367    # script set-up.
    386     START_SERVICES=
    387     test "${BUILD_MODULE}" = "true" && test "${MODULE_FAILED}" = "false" &&
    388         START_SERVICES="--start"
     368    if test "${BUILD_MODULE}" = "true"; then
     369      START_SERVICES="--start"
     370    else
     371      START_SERVICES=
     372    fi
    389373    ./postinst-common.sh "${INSTALLATION_DIR}" "${START_SERVICES}" >> "${LOG}"
    390374
  • trunk/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec

    r57969 r57986  
    290290
    291291# Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
    292 BUILD_MODULES=0
    293 REGISTER_MODULES=1
    294 if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
    295   REGISTER_MODULES=0
    296   if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
     292if test "${INSTALL_NO_VBOXDRV}" = 1; then
     293  POSTINST_START=
     294  if lsmod | grep -q "vboxdrv[^_-]"; then
     295    /usr/lib/virtualbox/vboxdrv.sh stop || true
     296  fi
     297  # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
     298  rm -f /lib/modules/*/misc/vboxdrv.ko
     299  rm -f /lib/modules/*/misc/vboxnetflt.ko
     300  rm -f /lib/modules/*/misc/vboxnetadp.ko
     301  rm -f /lib/modules/*/misc/vboxpci.ko
     302else
     303  POSTINST_START=--start
     304  if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
    297305    # compile problem
    298306    cat << EOF
     
    301309
    302310EOF
    303     BUILD_MODULES=1
    304   fi
    305 fi
    306 # if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
    307 if [ "$INSTALL_NO_VBOXDRV" = "1" ]; then
    308   rm -f /lib/modules/*/misc/vboxdrv.ko
    309   rm -f /lib/modules/*/misc/vboxnetflt.ko
    310   rm -f /lib/modules/*/misc/vboxnetadp.ko
    311   rm -f /lib/modules/*/misc/vboxpci.ko
    312 fi
    313 if [ $BUILD_MODULES -eq 1 ]; then
    314   /usr/lib/virtualbox/vboxdrv.sh setup || true
    315 else
    316   if lsmod | grep -q "vboxdrv[^_-]"; then
    317     /usr/lib/virtualbox/vboxdrv.sh stop || true
    318311  fi
    319312fi
    320313# Install and start the new service scripts.
    321 POSTINST_START=--start
    322 test "${INSTALL_NO_VBOXDRV}" = 1 && POSTINST_START=
    323314/usr/lib/virtualbox/prerm-common.sh || true
    324315/usr/lib/virtualbox/postinst-common.sh /usr/lib/virtualbox "${POSTINST_START}" > /dev/null || true
  • trunk/src/VBox/Installer/linux/vboxdrv.sh.in

    r57971 r57986  
    104104        fi
    105105        if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
    106             failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
     106            setup
     107            if ! $MODPROBE vboxdrv > /dev/null 2>&1; then
     108                failure "modprobe vboxdrv failed. Please use 'dmesg' to find out why"
     109            fi
    107110        fi
    108111        sleep .2
     
    234237{
    235238    begin_msg "Building VirtualBox kernel modules" console
    236     stop
     239    stop >/dev/null
    237240    if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then
    238241        begin_msg "Removing old VirtualBox pci kernel module"
     
    282285    rm -f /etc/vbox/module_not_compiled
    283286    succ_msg
    284     start
    285287}
    286288
     
    335337    start
    336338    ;;
    337 setup)
    338     setup
    339     ;;
    340339status)
    341340    dmnstatus
    342341    ;;
    343342*)
    344     echo "Usage: $0 {start|stop|stop_vms|restart|force-reload|status|setup}"
     343    echo "Usage: $0 {start|stop|stop_vms|restart|force-reload|status}"
    345344    exit 1
    346345esac
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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