欢迎来到天天文库
浏览记录
ID:1544948
大小:48.00 KB
页数:9页
时间:2017-11-12
《如何更新linux内核doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何更新Linux系统的内核本文面向Linux新手,尽可能详细的讲解如何更新Linux系统的内核一获取新内核的源码包我们想要更新系统内核,就先要有新内核的源码包,你可以登录[www.kernel.org]来下载你所需要的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“开头的文件。二解开内
2、核源码包先以root身份登录系统,然后将源码包文件复制到/usr/src目录下,在这个目录中可能已经有了一个linux子目录,如果是这样的话,我们应该先给这个子目录改个名字,用如下命令mvlinuxlinux-old也许你的/usr/src目录下并没有linux子目录,而是一个名为linux符号链接,这时只需把这个链接删除就可以了,如下rm-flinux进行完上面的操作,就可以开始解包了。我们下载得到的一般有两种tar包,分别以gz和bz2为文件名结尾(只用下载其中之一)。两种文件的解压方法如下tarzxvflinux-x.y.z.tar.gz(用于gz文件)tarjxvflinux-x.y.
3、z.tar.bz2(用于bz2文件,有时需要使用下面的命令catlinux-x.y.z.tar.bz2
4、bzip2-d
5、tar-xvf)这样解包操作就完成了,我们会得到一个新的linux文件夹。如果你还下载了相应的patch文件,此时你就可以给内核打补丁了(补丁文件同样要放在/usr/src目录下,并且也要解压),方法如下patch-p06、括进入/usr/src/linux并输入makeconfig。尽管makeconfig仍然有效,但最好不要尝试用这种方法配置内核,除非您喜欢在命令行回答数百个yes/no问题。(小知识:所有较新的Linux内核都支持内核模块。它们是内核的组成部分,驻留在磁盘上相对较小的二进制文件中。每当内核需要一个特定模块的功能时,就会从磁盘装入这个特定模块并自动将它与自身结合,这样便动态扩展了内核的能力。如果装入的内核模块的特性在几分钟内未被使用,则内核会自动将它与内核其余部分分离并从内存中卸装它,这被称为自动清除(autocleaning)。若没有内核模块,则需要确保运行的内核完全包含所有可能需要的功能。7、若没有模块,则需要构建一个全新内核,以将新的重要功能添加到其中。通常,用户构建一个包含所有基本功能的内核映象,然后再构建一组模块,这些模块对应着用户未来可能需要的功能。以后要使用时,则按照需要,将适当的模块装入内核。值得一提的是,不能将所有东西都放入模块中。因为模块存储于磁盘上,可引导的内核映象需要拥有对磁盘控制器、驱动器和根文件系统的内编译(compiled-in)支持。如果没有将这些基本组件编译到内核映象中,也就是说,如果试图将它们作为模块编译,那么内核将没有从磁盘装入这些模块所必需的能力,这会产生一个很令人讨厌的问题,就是不能引导系统的内核!)(小提示:如果你以前曾经编译过源码包,那么当8、你再次编译这些源码包时,最好先运行makemrproper该命令确保源代码目录下(/usr/src/linux)没有不正确的.o文件(即object文件,编译c语言时生成的,目的是下一步编译成可执行码时link之用)以及文件的互相依赖。如果我们使用的是刚下载的源程序包,本步可以省略。而如果你多次使用这些源程序编译内核,那么最好先运行一下这个命令。)(小提示2:当你使用同一内核源码多次编译后,再运行uname-a时,会发现系统记录了你编译内核的次数,表达方式是在#号后面跟了一个数字,如果我们想将它改为一该怎么办呢?你可以在最后一次编译内核前将源码目录下的.version文件删除。那它又是如何记录9、编译次数的呢?这个你可以看一下源码目录中scripts子目录下的mkversion文件中的内容。本方法应当感谢CU论坛的joint和platinum两位大侠。)好在现在有了新的配置方法,不用再输入makeconfig,新的方法是输入makemenuconfig或makexconfig来配置内核。如果输入makemenuconfig,则会得到一个基于控制台的彩色菜单系统,可以用它配置内核。如果输入m
6、括进入/usr/src/linux并输入makeconfig。尽管makeconfig仍然有效,但最好不要尝试用这种方法配置内核,除非您喜欢在命令行回答数百个yes/no问题。(小知识:所有较新的Linux内核都支持内核模块。它们是内核的组成部分,驻留在磁盘上相对较小的二进制文件中。每当内核需要一个特定模块的功能时,就会从磁盘装入这个特定模块并自动将它与自身结合,这样便动态扩展了内核的能力。如果装入的内核模块的特性在几分钟内未被使用,则内核会自动将它与内核其余部分分离并从内存中卸装它,这被称为自动清除(autocleaning)。若没有内核模块,则需要确保运行的内核完全包含所有可能需要的功能。
7、若没有模块,则需要构建一个全新内核,以将新的重要功能添加到其中。通常,用户构建一个包含所有基本功能的内核映象,然后再构建一组模块,这些模块对应着用户未来可能需要的功能。以后要使用时,则按照需要,将适当的模块装入内核。值得一提的是,不能将所有东西都放入模块中。因为模块存储于磁盘上,可引导的内核映象需要拥有对磁盘控制器、驱动器和根文件系统的内编译(compiled-in)支持。如果没有将这些基本组件编译到内核映象中,也就是说,如果试图将它们作为模块编译,那么内核将没有从磁盘装入这些模块所必需的能力,这会产生一个很令人讨厌的问题,就是不能引导系统的内核!)(小提示:如果你以前曾经编译过源码包,那么当
8、你再次编译这些源码包时,最好先运行makemrproper该命令确保源代码目录下(/usr/src/linux)没有不正确的.o文件(即object文件,编译c语言时生成的,目的是下一步编译成可执行码时link之用)以及文件的互相依赖。如果我们使用的是刚下载的源程序包,本步可以省略。而如果你多次使用这些源程序编译内核,那么最好先运行一下这个命令。)(小提示2:当你使用同一内核源码多次编译后,再运行uname-a时,会发现系统记录了你编译内核的次数,表达方式是在#号后面跟了一个数字,如果我们想将它改为一该怎么办呢?你可以在最后一次编译内核前将源码目录下的.version文件删除。那它又是如何记录
9、编译次数的呢?这个你可以看一下源码目录中scripts子目录下的mkversion文件中的内容。本方法应当感谢CU论坛的joint和platinum两位大侠。)好在现在有了新的配置方法,不用再输入makeconfig,新的方法是输入makemenuconfig或makexconfig来配置内核。如果输入makemenuconfig,则会得到一个基于控制台的彩色菜单系统,可以用它配置内核。如果输入m
此文档下载收益归作者所有