diff options
Diffstat (limited to 'community/virtualbox/vboxdrv.sh')
-rwxr-xr-x | community/virtualbox/vboxdrv.sh | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/community/virtualbox/vboxdrv.sh b/community/virtualbox/vboxdrv.sh index 8de14b97f..5eb7ecb89 100755 --- a/community/virtualbox/vboxdrv.sh +++ b/community/virtualbox/vboxdrv.sh @@ -12,6 +12,7 @@ if [ -n "$INSTALL_DIR" ]; then BUILDVBOXDRV="$INSTALL_DIR/src/vboxdrv/build_in_tmp" BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxnetflt/build_in_tmp" BUILDVBOXNETADP="$INSTALL_DIR/src/vboxnetadp/build_in_tmp" + BUILDVBOXPCI="$INSTALL_DIR/src/vboxpci/build_in_tmp" else echo "missing vbox.cfg" exit 0 @@ -31,7 +32,7 @@ case "$1" in if [ ! -d "$p/kernel" ]; then if [ -e "$p/misc/vboxdrv.ko" ]; then stat_busy "Removing old VirtualBox kernel modules from $p" - rm -f "$p/misc/vbox"{drv,netadp,netflt}.ko 2>/dev/null + rm -f "$p/misc/vbox"{drv,netadp,netflt,pci}.ko 2>/dev/null rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null stat_done fi @@ -52,6 +53,12 @@ case "$1" in find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null stat_done fi + if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then + stat_busy "Removing old VirtualBox pci kernel module" + find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|xargs rm -f 2>/dev/null + stat_done + fi + stat_busy "Recompiling VirtualBox kernel modules" if ! $BUILDVBOXDRV \ --save-module-symvers /tmp/vboxdrv-Module.symvers \ @@ -68,6 +75,11 @@ case "$1" in --no-print-directory install >> $LOG 2>&1; then echo "Look at $LOG to find out what went wrong" fi + if ! $BUILDVBOXPCI \ + --use-module-symvers /tmp/vboxdrv-Module.symvers \ + --no-print-directory install >> $LOG 2>&1; then + echo "Look at $LOG to find out what went wrong" + fi stat_done stat_busy "Reloading VirtualBox kernel modules" for module in "${MODLIST[@]}"; do |