問題描述
嘗試安裝 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