- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样更新linux内核doc
如何更新Linux系统的内核
本文面向Linux新手,尽可能详细的讲解如何更新Linux系统的内核
一 获取新内核的源码包
我们想要更新系统内核,就先要有新内核的源码包,你可以登录 [] 来下载你所需要的Kernel源码包。
在这里,您会发现内核源代码文件被标为 linux-x.y.z.tar.gz 和 linux- x.y.z.tar.bz2 的形式,这些文件是 Linux 内核源代码 tar 包。您还会看到标为 patch-x.y.z.gz 和 patch-x.y.z.bz2 的文件,这些文件是补丁程序,用来更新完整内核源代码的较早版本。如果要编译新的内核,则要下载以“linux“开头的文件。
二 解开内核源码包
先以root身份登录系统,然后将源码包文件复制到/usr/src目录下,在这个目录中可能已经有了一个 linux 子目录,如果是这样的话,我们应该先给这个子目录改个名字,用如下命令
mv linux linux-old
也许你的/usr/src目录下并没有linux子目录,而是一个名为linux符号链接,这时只需把这个链接删除就可以了,如下
rm -f linux
进行完上面的操作,就可以开始解包了。我们下载得到的一般有两种 tar 包,分别以 gz 和 bz2 为文件名结尾(只用下载其中之一)。两种文件的解压方法如下
tar zxvf linux-x.y.z.tar.gz(用于 gz 文件)
tar jxvf linux-x.y.z.tar.bz2(用于 bz2 文件,有时需要使用下面的命令
cat linux-x.y.z.tar.bz2 | bzip2 -d | tar -xvf)
这样解包操作就完成了,我们会得到一个新的linux文件夹。
如果你还下载了相应的patch文件,此时你就可以给内核打补丁了(补丁文件同样要放在/usr/src目录下,并且也要解压),方法如下
patch -p0 patch-x.y.z
三 配置内核
编译内核以前,需要先配置它。用配置来精确控制在新内核中启用(禁用)哪些内核特性。还可以控制将哪些部分编译到内核二进制映象(将在引导时装入)中,而将哪些部分编译到“按需装入”的内核模块文件中。
老式的配置内核的方法是非常痛苦的,包括进入 /usr/src/linux 并输入 make config。尽管 make config 仍然有效,但最好不要尝试用这种方法配置内核,除非您喜欢在命令行回答数百个 yes/no 问题。
(小知识:所有较新的 Linux 内核都支持内核模块。它们是内核的组成部分,驻留在磁盘上相对较小的二进制文件中。每当内核需要一个特定模块的功能时,就会从磁盘装入这个特定模块并自动将它与自身结合,这样便动态扩展了内核的能力。
如果装入的内核模块的特性在几分钟内未被使用,则内核会自动将它与内核其余部分分离并从内存中卸装它,这被称为自动清除(autocleaning)。若没有内核模块,则需要确保运行的内核完全包含所有可能需要的功能。若没有模块,则需要构建一个全新内核,以将新的重要功能添加到其中。
通常,用户构建一个包含所有基本功能的内核映象,然后再构建一组模块,这些模块对应着用户未来可能需要的功能。以后要使用时,则按照需要,将适当的模块装入内核。值得一提的是,不能将所有东西都放入模块中。因为模块存储于磁盘上,可引导的内核映象需要拥有对磁盘控制器、驱动器和根文件系统的内编译(compiled-in)支持。如果没有将这些基本组件编译到内核映象中,也就是说,如果试图将它们作为模块编译,那么内核将没有从磁盘装入这些模块所必需的能力,这会产生一个很令人讨厌的问题,就是不能引导系统的内核!)
(小提示:如果你以前曾经编译过源码包,那么当你再次编译这些源码包时,最好先运行
make mrproper
该命令确保源代码目录下(/usr/src/linux)没有不正确的.o文件(即object文件,编译c语言时生成的,目的是下一步编译成可执行码时link之用)以及文件的互相依赖。如果我们使用的是刚下载的源程序包,本步可以省略。而如果你多次使用这些源程序编译内核,那么最好先运行一下这个命令。)
(小提示2:当你使用同一内核源码多次编译后,再运行
uname -a
时,会发现系统记录了你编译内核的次数,表达方式是在 # 号后面跟了一个数字,如果我们想将它改为一该怎么办呢?你可以在最后一次编译内核前将源码目录下的 .version 文件删除。那它又是如何记录编译次数的呢?这个你可以看一下源码目录中scripts子目录下的mkversion文件中的内容。
本方法应当感谢CU论坛的joint和platinum两位大侠。)
好在现在有了新的配置
文档评论(0)