VirtualBox

Changeset 87742 in vbox for trunk/src/VBox/HostDrivers/linux


Ignore:
Timestamp:
Feb 12, 2021 4:38:55 PM (4 years ago)
Author:
vboxsync
Message:

HostDrivers/linux: More (mostly) wrapper related tweaks. Automatically use sudo when invoking insmod/rmmod if we're not root. bugref:9937

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/linux/Makefile

    r87728 r87742  
    4343
    4444# convenience Makefile without KERNELRELEASE
     45
     46ifndef SUDO
     47 ifneq ($(shell id -u),0)
     48SUDO := $(firstword $(wildcard /usr/bin/sudo /bin/sudo /usr/sbin/sudo))
     49 else
     50SUDO :=
     51 endif
     52endif
    4553
    4654KBUILD_VERBOSE ?=
     
    122130  define wrapper_template
    123131$(wrapper): $(subst $(wrapper),,vbox_vmmr0)
    124         $$(MAKE) KBUILD_VERBOSE=$$(KBUILD_VERBOSE) -C $(wrapper)/
    125 
    126 load-$(wrapper): $(if $(eq $(wrapper),vbox_vmmr0),,load-vbox_vmmr0)
     132        +$$(MAKE) KBUILD_VERBOSE=$$(KBUILD_VERBOSE) -C $(wrapper)/
     133
     134load-$(wrapper): $(subst load-$(wrapper),,load-vbox_vmmr0)
    127135        @if ! grep -q "^$(wrapper) " /proc/modules; then \
    128136        echo "Loading $(wrapper)..."; \
    129                 /sbin/insmod $(wrapper)/$(wrapper).ko; \
     137                $(SUDO) /sbin/insmod $(wrapper)/$(wrapper).ko; \
    130138        else \
    131139        echo "Skipping loading $(wrapper) module (already loaded)."; \
     
    135143        @if grep -q "^$(wrapper) " /proc/modules; then \
    136144        echo "Unloading $(wrapper)..."; \
    137                 /sbin/rmmod $(wrapper)/$(wrapper).ko; \
     145                $(SUDO) /sbin/rmmod $(wrapper)/$(wrapper).ko; \
    138146        fi
    139147  endef
     
    141149
    142150wrappers:       $(VBOX_WRAPPER_DIRS)
    143 load-wrappers: $(addprefix load-,$(VBOX_WRAPPER_DIRS))
    144 unload-wrappers:
     151wrappers-load: $(addprefix load-,$(VBOX_WRAPPER_DIRS))
     152wrappers-unload:
    145153        @for module in $(filter-out vbox_vmmr0,$(VBOX_WRAPPER_DIRS)) $(filter vbox_vmmr0,$(VBOX_WRAPPER_DIRS)); \
    146154        do \
    147155                if grep -q "^$${module} " /proc/modules; then \
    148156                        echo "Unloading $${module}..."; \
    149                 if \
    150         done
     157                        $(SUDO) /sbin/rmmod "$${module}"; \
     158                fi \
     159        done
     160wrappers-reload: wrappers-unload
     161        +$(MAKE) -f $(lastword $(MAKEFILE_LIST)) --no-print-directory wrappers-load
    151162
    152163buildid:
     
    158169                        ln -sfn -- "$(CURDIR)/$${module}" ~/.debug/.build-id/$${buildid}; \
    159170                else \
    160                         echo "warning: No build ID for $${module}}"; \
     171                        echo "warning: No build ID for $${module}"; \
    161172                fi \
    162173        done
    163174
    164 .PHONY: wrappers load-wrappers unload-wrappers buildid $(VBOX_WRAPPER_DIRS) \
     175.PHONY: wrappers wrappers-load wrappers-unload buildid $(VBOX_WRAPPER_DIRS) \
    165176        $(addprefix load-,$(VBOX_WRAPPER_DIRS)) $(addprefix unload-,$(VBOX_WRAPPER_DIRS))
    166177
     
    175186install:
    176187wrappers:
    177 load-wrappers:
    178 unload-wrappers:
    179 buildid-wrappers:
     188wrappers-load:
     189wrappers-unload:
     190buildid:
    180191
    181192 endif
     
    212223                if grep "^$$module " /proc/modules >/dev/null; then \
    213224                        echo "Removing previously installed $$module module"; \
    214                         /sbin/rmmod $$module; \
     225                        $(SUDO) /sbin/rmmod $$module; \
    215226                fi; \
    216227        done
     
    220231                if test -f $$module.ko; then \
    221232                        echo "Installing $$module module"; \
    222                         /sbin/insmod $$module.ko; \
     233                        $(SUDO) /sbin/insmod $$module.ko; \
    223234                fi; \
    224235        done
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