问题描述
尝试安装 VirtualBox 内核模块时出现以下错误:
------------------------------
Deleting module version: 4.1.18
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.1.18 DKMS files...
Building only for 3.5.0-17-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
我已经尝试安装 linux-source 包,但我不确定 Ubuntu 如何处理内核源代码和标头。
关于如何从 Ubuntu 的角度做到这一点的任何想法?
最佳思路
我的 Virtual Box 告诉我内核驱动程序没有安装。我跑了
sudo apt-get remove virtualbox-dkms
删除驱动程序,然后 re-installed 它们
sudo apt-get install virtualbox-dkms
它重建了驱动程序,我能够毫无问题地运行 virtualbox
次佳思路
其他方式:
apt-get install linux-headers-`uname -r`
dpkg-reconfigure virtualbox-dkms
正常方式:
/etc/init.d/vboxdrv setup
第三种思路
您还需要内核头文件。根据您的输出, sudo apt-get install kernel-headers-3.5.0-17-generic 应该这样做。在来宾 VM 上,自动运行 ISO 映像或从 shell 提示符运行 sudo sh ./VBoxLinuxAdditions.run
应该可以。看来这是最新 12.10 版本的一个已知问题。
第四种思路
这是由于内核头文件不可用造成的。这些标头通常不是必需的,但可以帮助其他应用程序需要它们来构建内核模块以与您的发行版和您使用的版本保持同步。
您可以安装特定的标头,也可以安装 ‘generic’ 或 ‘current’:
sudo apt install linux-headers-generic
这将确保当您接收新内核时,这些内核的头文件也会被安装。当您更新内核时,VirtualBox 将能够使用最新的匹配标头更新自身。有时,这些可以在其他发行版中以其他名称找到,例如 linux-headers-amd64
。
获得标头后,您可以清除/re-install VirtualBox,或让 VirtualBox 重建模块并完成设置:
sudo dpkg-reconfigure virtualbox-dkms
sudo modprobe vboxdrv