在ubuntu上构建自己的内核

我正在尝试构建自己的内核,因为我想编写一个内核程序,我需要编译到内核中。 那我做了什么? 从kernel.org下载,解压缩,执行make menuconfig并根据需要配置所有内容,执行make,执行make modules_install,执行make install,最后执行update-grub。 结果:它根本不启动….

现在我看一下这里 ,它描述了一种编译内核的不同方式。 这可能是我的方式不起作用的原因吗? 或者是否有其他人知道为什么我的内核不起作用?

########编辑

很棒的答案,ty。 奥利奇。 但我用老式的方式试了一下,经过一个小时的编译,我得到了这样的信息:

install -p -o root -g root -m 644 ./debian/templates.master /usr/src/linux-2.6.37.3/debian/linux-image-2.6.37.3meinsmeins/DEBIAN/templates dpkg-gencontrol -DArchitecture=i386 -isp \ -plinux-image-2.6.37.3meinsmeins -P/usr/src/linux-2.6.37.3/debian/linux-image-2.6.37.3meinsmeins/ dpkg-gencontrol: error: package linux-image-2.6.37.3meinsmeins not in control info make[2]: *** [debian/stamp/binary/linux-image-2.6.37.3meinsmeins] Error 255 make[2]: Leaving directory `/usr/src/linux-2.6.37.3' make[1]: *** [debian/stamp/binary/pre-linux-image-2.6.37.3meinsmeins] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.37.3' make: *** [kernel-image] Error 2 

基于你所说的一些指示:

  • 使用make-kpkg ! 你真的不想乱用内核的make install 。 内核在包装中是你想要它们的相当大的东西,你可以快速“去除这个!” 快速“apt-get remove”。

  • 内核/编译文档中描述的“老式方法”是我知道如何使用随机(非Ubuntu特定)源(如Kernel.org)在Ubuntu上编译内核的最佳方式。

  • 跳过make localmodconfig步骤。 它可能是有用的,但更多的时候,它似乎打破了事情(对我而言)。

  • 我不建议你自己配置整个内核。 拉入Ubuntu配置的最新副本并以此为基础。 这将为你提供一个良好的理智默认,你可以削减。 当您构建下一个版本时,只需向前拉配置并执行make oldconfig以查看是否有任何新选项(在主要版本之间跳转时很常见)。

  • 如果你在Maverick上建立2.6.38,我建议你撤回Natty的配置。 您需要从packages.ubuntu.com下载软件包并从其boot文件夹中提取配置文件。 我已经问过是否有更简单的方法可以做到这一点,但似乎没有。

简而言之:只需遵循“老式方式”即可。 一旦你自己构建了一些软件包并且知道自己在做什么,就可以使用公式。

ubuntu中的Compilig内核非常简单。 几个星期前我使用了替代构建方法,它运行得很好。 我认为你应该尝试这种方法,因为它会自动为你做几件事,这意味着可以搞砸的事情少一些。

但是,您描述的方法也应该是一般的,因此您可能会遵循过时的指南或做错事。