Opened 15 years ago
Closed 15 years ago
#4840 closed defect (worksforme)
vboxvfs module build not suitable for kernels with CONFIG_MODVERSIONS
Reported by: | Michael Kromer | Owned by: | |
---|---|---|---|
Component: | guest additions | Version: | VirtualBox 3.0.4 |
Keywords: | vboxvfs kernel module | Cc: | |
Guest type: | Linux | Host type: | Linux |
Description
Compilation of the vboxvfs module is incomplete:
# cd vboxvfs/ # make [...]
LD [M] /media/vbox.local/linux/module/vboxvfs/vboxvfs.o Building modules, stage 2. MODPOST 1 modules
WARNING: "RTSpinlockAcquireNoInts" media/vbox.local/linux/module/vboxvfs/vboxvfs.ko undefined! [...]
The problem is because there is no symbol information available in the build directory (which is vboxvfs/ in this case). The necessary information resides in ../vboxadd/ instead. The separation of vboxadd and vboxvfs therefore causes the aforementioned problem with the openSUSE 11.1 2.6.27.x kernel, or generally, as I see it, any kernel with CONFIG_MODVERSIONS=y, CONFIG_MODULE_SRCVERSION_ALL=y.
The solution is to combine the build directories, such that the toplevel Makefile invokes Kbuild once, instead of each directory (vboxadd, vboxvfs, etc.) doing it for itself.
BTW:
The 'clean' target of the vbox additions Makefiles incorrectly clean files They should be running - at least -
make -C ${kerneldir} M=$PWD clean
and _not_ remove *.o, Modules.symvers modules.order, etc. for themselves. That is, BTW, Modules.symvers is wrong - the file is called Module.symvers.
Change History (4)
comment:1 by , 15 years ago
comment:3 by , 15 years ago
ok, so if its not neccessary to merge them... we should close this one as solved, right?
comment:4 by , 15 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Right. My intension was to wait for your response before closing.
So far it was not necessary to combine these build directories. The solution for this problem is to compile the vboxadd module first, then copy the Modules.symvers file from the vboxadd directory to the vboxvfs directory and finally compile the vboxvfs directory. It will now find the required modversions. And exactly this is done when you are doing /etc/init.d/vboxdrv setup to recompile the modules.