我倾向于运行比大多数人更新的内核,部分是为了好玩,部分是为了测试错误,部分是为了满足自虐欲望。几天前我安装了2.6.38-rc1
VirtualBox 的 DKMS 模块,但它无法再编译。
我对 VirtualBox 在内核实验中抛出障碍并不陌生,但是有没有什么办法可以让它编译?
答案1
新内核已linux/autoconf.h
移至generated/autoconf.h
(暗示)。我不太清楚这其中的技术原因,但 VirtualBox 主机模块源中包含该内容的任何内容都需要编辑。
值得庆幸的是,只需更换字符串即可修复此问题:
sudo find /usr/share/virtualbox/src/vboxhost -name '*.h' -exec perl -pi -w -e 's/linux\/autoconf/generated\/autoconf/g;' {} \;
sudo /etc/init.d/vboxdrv setup
当然,这种变化在 Linux 内核中可能不是永久的。事情可能会回到原点,这会影响你未来的编译能力,所以如果你将来需要做相反的事情,请看这里:
sudo find /usr/share/virtualbox/src/vboxhost -name '*.h' -exec perl -pi -w -e 's/generated\/autoconf/linux\/autoconf/g;' {} \;
sudo /etc/init.d/vboxdrv setup