我是新手,我正在尝试使用 Debian Squeeze 升级/编译内核,以解决我在使用 Linux-Vserver 时遇到的问题。我尝试使用的说明以“apt-get installlinux-source-2.6.32”和“apt-get build-dep linux-source-2.6.32”开头。Vserver 人员建议我使用 3.2.42。
问:我是否应该在我的说明中用“3.2.42”替换“2.6.32”(不起作用),或者我是否应该使用“2.6.32”作为基准,然后下载较新的内核,将其解压等。稍后再执行我的步骤?
我认为这里的部分目标是不使用库存的 .config,而是使用适合我的硬件的 .config。
谢谢!
答案1
这不是专业人士轻易采取的一步,但这是可以做到的。
一般步骤如下:
- 获取正确的包裹。
- 配置它。
- 编译它。
- 打包。
Debian 软件包包括您已经知道的软件包fakeroot
,以及 、 和make-kpkg
。3.2 系列源代码位于 squeeze-backports 仓库中,因此启用该 repo 然后执行您已经知道的语法来获取它。
您现在有了正确的包裹。
对于配置,您有几个选项。最安全的是make oldconfig
在新的源代码树中执行并采用默认设置。
不太安全,但听起来像你正在寻找的是make localmodconfig
关闭所有不安全的模块当前已加载,理论上它将创建一个与您的硬件完全匹配的配置。只需确保在运行此命令之前加载您将使用的所有模块,或者手动编辑生成的 .config 文件以启用您想要的模块。
您现在已有配置。
编译和打包很容易,debian 提供了工具。
fakeroot make-kpkg clean
fakeroot make-kpkg
这将为您留下一个可以通过 dpkg 安装的 Debian 内核包。
此时,您将拥有一个新内核!它甚至可能在第一次尝试时就成功。如果不行,请返回 2(配置它)并重试。重复操作,直到成功。
但有一些注意事项:
- 我们无法告诉您具体需要哪些内核模块。我们对您的系统了解不够,也不知道它需要告诉您什么。
- 不管你如何努力破解内核,你都完全有可能最终无法得到可启动的内核。这种情况会发生,这就是我们的学习方式。
- 现在就看你是否及时了解内核补丁了。我注意到反向移植的 3.2 内核比最新的补丁集少了几个补丁集(你想要的是 .42,但它有 .39),所以我不知道 Debian 更新这些补丁的频率是多少。