我在 Ubuntu 12.04 下安装了 3.5 内核。安装 virtualbox 时出现以下错误。
Setting up virtualbox (4.1.12-dfsg-2ubuntu0.2) ...
* Stopping VirtualBox kernel modules [ OK ]
* Starting VirtualBox kernel modules
* No suitable module for running kernel found
[fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.
Processing triggers for python-central ...
Setting up virtualbox-dkms (4.1.12-dfsg-2ubuntu0.2) ...
Loading new virtualbox-4.1.12 DKMS files...
First Installation: checking all kernels...
Building only for 3.5.0-18-generic
Building initial module for 3.5.0-18-generic
Error! Bad return status for module build on kernel: 3.5.0-18-generic (x86_64)
Consult /var/lib/dkms/virtualbox/4.1.12/build/make.log for more information.
* Stopping VirtualBox kernel modules [ OK ]
* Starting VirtualBox kernel modules
* No suitable module for running kernel found
[fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.
Setting up virtualbox-qt (4.1.12-dfsg-2ubuntu0.2) ...
有人知道我该如何解决这个问题吗?
编辑-- 这是 make.log
DKMS make.log for virtualbox-4.1.12 for kernel 3.5.0-18-generic (x86_64)
Mon Nov 19 12:12:23 EST 2012
make: Entering directory `/usr/src/linux-headers-3.5.0-18-generic'
LD /var/lib/dkms/virtualbox/4.1.12/build/built-in.o
LD /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/built-in.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/linux/SUPDrv-linux.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/SUPDrv.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/SUPDrvSem.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/alloc-r0drv.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/initterm-r0drv.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/memobj-r0drv.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/mpnotification-r0drv.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/powernotification-r0drv.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjLinuxDoMmap’:
/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1150:9: error: implicit declaration of function ‘do_mmap’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[2]: *** [/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[1]: *** [/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv] Error 2
make: *** [_module_/var/lib/dkms/virtualbox/4.1.12/build] Error 2
make: Leaving directory `/usr/src/linux-headers-3.5.0-18-generic'
答案1
这是一个已知的漏洞在 VirtualBox 中:添加内容无法与 3.5 内核编译。您需要将 VirtualBox 至少更新到 4.1.20 版本,此问题已解决。
VB 论坛中的一些人报告说在 4.1.18 VirtualBox 上成功运行了 4.1.20 附加功能,但在我看来,这是一个相当冒险且未经测试的想法。
答案2
尝试使用这个 repo:
sudo add-apt-repository ppa:debfx/virtualbox &&\
sudo apt-get update &&\
sudo apt-get install virtualbox
这为我解决了这个问题。