这个 amd64 下的内核模块问题以前搞过,忘了。如今升级内核又要重新弄,又被我想起来了,于是决定写下来,以后忘了有地方查,顺便别的朋友也可以参考一下。
Debian amd64 的源里提供了 virtualbox-ose 以及 virtualbox-ose-guest-utils 二进制包,但并没有提供 virtualbox-ose-modules,也就是 VirtualBox OSE 内核模块。没有内核模块 VirtualBox 是无法运行起来的。虽然 Debian 并没有提供 amd64 版的内核模块,但是我们可以自己编译。
我们可以通过 virtualbox-ose-source 来编译内核模块。查看 /usr/share/doc/virtualbox-ose-source/README.Debian,里面说:
The Debian virtualbox-ose-source package can be used in several ways,
- Using module-assistant(1) commands provided by the module-assistant Debian
package:# module-assistant prepare virtualbox-ose
# module-assistant auto-install virtualbox-ose- Using the make-kpkg(1) command provided by the kernel-package Debian
package. See the "modules_image" section of the make-kpkg(1) man page.- Unpacking /usr/src/virtualbox-*.tar.bz2 and installing the module on your own.
上面那一串 E 文是在说 virtualbox-ose-source 有三种使用方法。我们就使用第一种来编译内核模块,因为此种方法最简单。呵呵,方法就是上面那两个命令了,再单独列一下也无妨:
# module-assistant prepare virtualbox-ose
# module-assistant auto-install virtualbox-ose
当然,首先你得先装上 virtualbox-ose。这两条命令过后,会在内核源代码目录生成相应版本的内核模块 deb 包,名字叫 virtualbox-ose-modules-内核版本号_amd64.deb。应该是内核源代码目录,因为我用的是自己编译的内核,我生成的 deb 包在我专门用来存放内核源代码的目录下。如果你用的是源里的内核,到底 deb 包在什么位置我也不知道。不过没关系的,编译好直接就会安装的,所以无须知道 deb 包的具体位置。
要使用 VirtualBox OSE,首先加载内核模块:# modprobe vboxdrv
,然后就能用了。