内核和 DKMS Virtualbox 错误

内核和 DKMS Virtualbox 错误

我已经尝试了好几个星期了。我无法运行我的 Windows XP 虚拟机,因为出现以下错误:

    Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

'/etc/init.d/vboxdrv setup'

as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.

我已经安装了正确的 3.4.0 标头和图像。但是当我运行安装命令时,我得到:

user@ChrUbuntu:~$ sudo /etc/init.d/vboxdrv setup --kernelsourcedir /d
 * Stopping VirtualBox kernel modules                                   [ OK ] 
 * Uninstalling old VirtualBox DKMS kernel modules                      [ OK ] 
 * Trying to register the VirtualBox kernel modules using DKMS                 Error! Your kernel headers for kernel 3.4.0 cannot be found.
Please install the linux-headers-3.4.0 package,
or use the --kernelsourcedir option to tell DKMS where it's located

 * Failed, trying without DKMS
 * Recompiling VirtualBox kernel modules                                       
 * Look at /var/log/vbox-install.log to find out what went wrong

我正在使用 Acer c7 Chromebook。请帮忙。

答案1

因此,我还没有太多运气来完成这项工作,但这就是我能够从 git 存储库获取适当内核源代码的方法。这需要一点反复试验,但对我来说似乎有效。我还没有能够让 virtualbox 驱动程序在安装后正确编译,所以如果有人能让他们做到这一点,我不会介意帮忙。注意:我不得不故意破坏一些参考链接来发布此内容,因为我还没有足够的代表点;我在链接开头附近留了一个空格,因此您可能需要复制/粘贴和编辑。

这是我准备更新 divx118 的 wiki 页面时使用的文本;它还没有 100% 准备好,所以有点粗糙,但应该足够清晰。对我来说,当我在周二晚上尝试这个时,HEAD~115 命中了我当前的内核版本,但现在可能已经发生了变化,因此请根据需要进行调整。

添加到 wiki 页面: https://github.com/dnschneid/crouton/wiki/Build-kernel-headers-and-install-Virtualbox-%28x86%29/_edit

接下来,我们需要确定当前运行的内核的版本。

$ uname -r

然后将内核分支 chromeos-[version] 克隆到我们的主文件夹。

$ cd ~
$ git clone https://chromium.googlesource.com/chromiumos/third_party/kernel -b chromeos-[version]

例如,[version]可能是 3.18 或其他值;请参阅上面 uname 返回的值来确定这一点。然后,我们可能需要从 git 存储库下载内核源代码的正确修订版本,如果下载的源版本与我们当前运行的版本不匹配,则通过回滚到上一个提交。首先,确定我们刚刚下载的源的内核版本:

$ cd kernel
$ ./chromeos/scripts/prepareconfig chromeos-intel-pineview
$ make oldconfig
$ make kernelrelease

如果上述命令中的版本uname与显示的版本不匹配,并且确实是较新版本,则可以执行以下操作来下载早期版本:

$ git reset --hard origin/chromeos-3.18
$ git checkout HEAD~[number of commits prior to current version]
$ ./chromeos/scripts/prepareconfig chromeos-intel-pineview
$ make oldconfig
$ make kernelrelease

可能需要多次重复上述步骤,每次增加括号中的提交编号,才能返回到内核源代码的适当版本,并且可能需要反复试验才能找到匹配的版本。检索到正确的版本后:

$ git reset --hard origin/chromeos-3.18

...我们自己清理现场。

-dirty如何在编译内核源代码时去掉该标签:

http://arago-project.org/pipermail/meta-arago/2013-January/000795.html https://groups.google.com/a/chromium.org/forum/#!msg/chromium-os-reviews/qg1i7ptQX80/AYdUWC7zGZsJ

基本上,编辑base.config并更改LOCALVERSION_AUTON

答案2

您正在指向不存在的--kernelsourcedir /d脚本。请完全省略。/d--kernelsourcedir

相关内容