文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>编译内核

编译内核

时间:2010-09-29  来源:生活费

     Linux相对Windows来说,最大的特点是它可以自由的定制内核。内核是一个操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux内核源程序存放在/usr/src/linux目录下,在光盘或网络上找到并安装即可。如果没有,可能是安装系统时并没有选择安装内核代码。

     初次编译内核可能会遇到多种问题,此时可以搜索网络资源求助。编译内核主要有以下几步:

(1)解压并进入内核代码目录:

#tar zxvf linux*.tar.gz

#cd linux*

首先要确保代码目录下没有不正确的.o文件以及文件的相互依赖。

#make mrproper

还要确保/usr/include/目录下的asm、linux和scsi等连接是指向要升级的内核源代码。他们分别指向计算机体系结构所需要的源代码目录下真正的include子目录。如果没有这些连接就要手工创建:

#cd /usr/include/

#rm -r asm linux scsi

#ln -s /usr/src/linux/include/asm-i386 asm

#ln -s /usr/src/linux/include/linux linux

#ln -s /usr/src/linux/include/scsi scsi

这是配置中非常重要的一部分,删除掉/usr/include下的asm、linux和scsi连接后,再建立新的连接指向新内核源代码目录下同名的目录。这些头文件目录包含着保证内核在系统上正确编译时所需要的头文件。

(2)使用下面的命令配置内核:

#make menuconfig

在编译内核时,最繁琐的就是内核的配置工作。配置时,大部分都可以使用其默认值,只有小部分需要根据用户的不同需要选择。选择的原则是:将与内核其他部分关系比较远且不经常使用的部分功能代码编译成可加载模块,不需要的功能就不要选,与内核关系紧密且经常使用的部分功能代码直接编译到内核中。

(3)配置好内核后,接下来就是编译。与编译有关的命令有下面一些:

#make dep(在2.6内核,不用执行这一步)

#make clean

#make zImage

#make bzImage

#make modules

#make modules_install

#depmod -a

第1个命令make dep实际上读取配置过程生成的配置文件。来创建对应于配置的依赖关系树,从而决定哪些需要编译而哪些不需要;第2个命令make clean完成删除前面步骤留下的文件,以避免出现一些错误。第3个命令make zImage和第4个命令make bzIamge实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,他们的区别在于使用make bzImage可以生成大一点的内核,建议使用make bzImage命令。后面3个命令是有在进行配置的过程中,在回答Enable loadable module support(CONFIG_MODULES)时选了Yes才是必要的,make modules和make modules_insatll分别生成相应的模块和把模块复制到需要的目录中。严格的说,第7个命令和编译过程并没有关系,他是生成模块间的依赖关系,这样启动内核之后,是用modprobe命令加载模块时就能正确定位模块。

(4)更新内核。现在已经得到了新版本的内核,为了使用新内核,还要作下面的改动:

#cp /usr/src/linux/System.map /boot/System.map-(版本号)

#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-(版本号)

以上这两个文件是刚才编译时新生成的。下面修改/boot下的两个连接System.map和vmlinuz,使其指向新内核的文件:

#cd /boot;rm -f System.map vmlinuz

#ln -s vmlinuz-(新内核版本号) vmlinuz

#ln -s System.map-(新内核版本号) System.map

现在应该可以使用新内核了。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载