我需要构建一些具有特定内核版本的旧驱动程序。
需要内核2.6.31-20-generic
。我尝试在 Ubuntu 12.04 和新版 14.04 上构建它,但没有成功。唯一有效的是2.6.31-20
,当我询问如何构建它时,我得到了这样的答案。
如何用该版本的内核进行 chroot?
答案1
chroot
只使用您当前的内核。这就是它的工作原理。如果您需要更改封装内核,您将需要虚拟化(通过类似kvm
或 VirtualBox 的东西)...或者将您的内核回滚到 chroot 使用的版本(尽管这对于我们正在讨论的版本来说听起来很痛苦)。
我个人会考虑为正确的脚本进行构建。如果您为此使用 DKMS,那么只需告诉它要为哪个内核和 arch 进行构建就相当简单了:
sudo dkms install nvidia-337 -k 2.6.31-20-generic
所有子命令dkms {remove,build,install,uninstall,status,...}
都带有-k
指定内核和 arch 的选项。请参阅man dkms
了解更多信息。
对于已安装内核的列表,ls /lib/modules
应该可以让你找到正确的方向,尽管它可能包含不再安装的内核。如果你想要一个更详细的列表,你可以使用我之前的回答:
dpkg -l | awk '/^.i +linux-(im|he)/ && $2~/[0-9]/ {print $2}'