这就是我已经走了多远:
echo "deb http://download.virtualbox.org/virtualbox/debian jessie contrib" | tee -a /etc/apt/sources.list
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -
apt-get update
apt-get install -y linux-headers-amd64 virtualbox-5.1
dpkg-reconfigure virtualbox-5.1
但我收到一条错误消息
dpkg-query: no path found matching pattern /lib/modules/4.7.3-coreos-r2/kernel
vboxdrv.sh: failed: Look at /var/log/vbox-install.log to find out what went wrong.
dpkg-query: no path found matching pattern /lib/modules/4.7.3-coreos-r2/kernel
This system is not currently set up to build kernel modules (system extensions).
Running the following commands should set the system up correctly:
apt-get install -headers-4.7.3-coreos-r2
(The last command may fail if your system is not fully updated.)
apt-get install -headers-r2
屏幕上的说明不正确,因为-headers-4.7.3-coreos-r2
不存在。也没有linux-headers-4.7.3-coreos-r2
。我也尝试过,linux-headers-$(uname-r)
它确实扩展到linux-headers-4.7.3-coreos-r2
并且linux-headers-generic
说它没有安装候选者。
答案1
我认为需求不是针对内核标头,而是针对内核开发包。 kernel-devel 包将为您提供 .ko 模块。看看对内核开发包进行 apt-get install 是否对您有帮助?
答案2
我解决了基本问题,但在不同的内核上。
基本问题是,只有当您拥有通用内核时,
kernel-develop
在 RHEL 或debian 上才有用。linux-headers-generic
这里的 CoreOS 使用的是自定义内核。我无法找到如何获得与
linux-headers-generic
CoreOS 等效的工作。我确信有足够的互联网考古知识是可能的,因为它是 GPL 的。首先尝试在 Docker 中的 GitLabs CoreOS 上执行此操作也是毫无意义的,因为 VirtualBox 需要将内核模块加载到我无权访问的 Docker 主机上。 (据我收集)
将内核切换到通用内核也不总是可能的。
相反,我去找了一位专门的主人。反过来,它有一个具有相同基本问题的自定义内核。
答案实际上是找到对内核所做的修改并将其准备/usr/src
如下:
https://github.com/scaleway/kernel-tools#how-to-build-a-custom-kernel-module