个人工具

“UbuntuHelp:Kernel/Compile/zh”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
免责声明
第5行: 第5行:
 
===免责声明===
 
===免责声明===
 
'''生成和使用一个定制的kernel很难为你的系统获得支持。<br>
 
'''生成和使用一个定制的kernel很难为你的系统获得支持。<br>
'''尽管编译你自己的内核(kernel)是一个学习的过程,但是你不会得到支持在定制内核上(即使你提出了自己的问题,他们也会毫无理由的拒绝回答。)<br>
+
'''尽管编译你自己的内核(kernel)是一个学习的过程,但是在定制内核上你不会得到支持(即使你提出了自己的问题,他们也会毫无理由的拒绝回答。)<br>
 
如果你有一个与Ubuntu/Canonical签订的商业支持合同,像这种支持也是无效的。<br>
 
如果你有一个与Ubuntu/Canonical签订的商业支持合同,像这种支持也是无效的。<br>
 
还应该注意到这个网页介绍的是the Edgy (2.6.17) 及以上内核如何来操作!直到这个内核源之前,我们没有任何到位的机制来使人们容易的编译他们自己的内核。我们是有意为之。<br>
 
还应该注意到这个网页介绍的是the Edgy (2.6.17) 及以上内核如何来操作!直到这个内核源之前,我们没有任何到位的机制来使人们容易的编译他们自己的内核。我们是有意为之。<br>
这篇文章并'''没有'''介绍如何[[UbuntuWiki:forum/software/CustomKernel|生成原始内核]],这种内核来源于kernel.org。这篇文章只是说明如何重建当前的Ubuntu 内核源。
+
这篇文章并'''没有'''介绍如何[[UbuntuWiki:forum/software/CustomKernel|编译原始内核]],这种内核来源于kernel.org。这篇文章只是说明如何重建当前的Ubuntu 内核源。
  
 
===编译内核的原因===
 
===编译内核的原因===

2008年5月19日 (一) 21:34的版本

//*^*本人只是个自由软件爱好者,是个菜鸟,译错莫怪。

免责声明

生成和使用一个定制的kernel很难为你的系统获得支持。
尽管编译你自己的内核(kernel)是一个学习的过程,但是在定制内核上你不会得到支持(即使你提出了自己的问题,他们也会毫无理由的拒绝回答。)
如果你有一个与Ubuntu/Canonical签订的商业支持合同,像这种支持也是无效的。
还应该注意到这个网页介绍的是the Edgy (2.6.17) 及以上内核如何来操作!直到这个内核源之前,我们没有任何到位的机制来使人们容易的编译他们自己的内核。我们是有意为之。
这篇文章并没有介绍如何编译原始内核,这种内核来源于kernel.org。这篇文章只是说明如何重建当前的Ubuntu 内核源。

编译内核的原因

  • 你是一个内核开发者。
  • 你需要内核编译成一种特殊的方式,而官方内核并没有这样做(例如,使能一些实验功能)。
  • 你正试图调试一个关于原Ubuntu内核你已经提交或即将提交的问题。
  • 你有的硬件原Ubuntu的内核不支持。

不建议编译内核的情况

  • 你只需要编译一个特殊的驱动。对于这种情况,你只需要安装linux-headers包。
  • 你不知道在做什么,和你损坏了某一部分,你需要帮助修复它。依据你的错误情况,也许你最终需要重新安装你的系统。
  • 你偶然接触到这篇文章,但是因为看上去有趣而被迷住。相信我,这一点都没趣。:)

如果你想要安装一个新的不需要编译的内核,你能使用Synaptic,,搜索你想要安装的linux-image和内核版本。
一个更容易的方法是点击System > Administration > Update Manager >点击Check按钮>接受包括kernel在内的所有更新。

你需要的工具

一开始,你需要安装一些新的包。

sudo apt-get install linux-kernel-devel fakeroot build-essential

这会安装与编译器有关的包和内核打包工具。它也安装这git-core包,它是与Ubuntu 内核源最好的交互方式。

获得内核源

这儿有几种获得内核源的方法:

  1. 使用git(你能找到详细说明在Kernel Git Guide) -这会使你总是保持与最新的Ubuntu内核源同步。
  2. 下载源文件存档-对于那些想要重建包括额外补丁的标准Ubuntu包的人,这是最简单和有用的,注意这几乎总是滞后于最新开发源,如果你需要带最新补丁的内核源,你应该使用git(选项1)。下载源文件的操作:
  3. sudo apt-get build-dep linux-source
    apt-get source linux-source
    

    对于Hardy (8.04)版本,命令变为:

    sudo apt-get build-dep linux-image-$(uname -r)
    apt-get source linux-image-$(uname -r)
    
  4. 下载源码包(进一步的详细说明在这页下面AltBuildMethod Alternate Build Method: The Old-Fashioned Debian Way)-请注意这跟选项2不一样

修改你所需的内核源文件

对大多数人来说,简单的修改一下配置configs已经足够。如果你需要安装内核补丁,请阅读此补丁提供者的说明,已确定如何使用。 原Ubuntu configs是被安装在(debian/config/ARCH/)-ARCH目录是你刚刚建立的。在这个目录下有很多文件。这"config"文件是其架构中所有对象的基础。这儿有几个针对特定目标的config.FLAVOUR(config.xxx)。例如,下面是2.6.20,i386的文件:

ls -l debian/config/i386/
total 108
-rw-r--r-- 1 root src  73962 2007-08-13 01:29 config
-rw-r--r-- 1 root root  1369 2007-08-13 01:29 config.386
-rw-r--r-- 1 root root  1330 2007-08-13 01:29 config.generic
-rw-r--r-- 1 root root  1395 2007-08-13 01:29 config.server
-rw-r--r-- 1 root root  1756 2007-08-13 01:29 config.server-bigiron
-rw-r--r-- 1 root root     8 2007-08-13 01:25 lowlatency
-rw-r--r-- 1 root root   194 2007-08-13 01:25 vars.386
-rw-r--r-- 1 root root   218 2007-08-13 01:25 vars.server-bigiron

如果你在debian/config中没有找到config配置文件,你会在/boot目录中找到它们,例如,/boot/config-2.6.22-14-generic。 如果你需要改变某一个配置选项,简单的修改包括这选项的文件。如果你修改"config"文件,会影响这结构中的所有对象。如果你修改其中一个对象配置,它仅仅影响此对象。 当你打了一个补丁,或者调整了配置之后,最好去重新生成配置文件以确保他们是一致的。 去重新生成所有的配置,请运行:

debian/rules updateconfigs

如果你仅仅想要更新一个配置,请运行:

debian/scripts/misc/oldconfig ARCH

占位目录

占位目录

占位目录