Linux编译内核

Linux编译内核
-
准备工作
通常要运行的第一个命令是:
#cd /usr/src/linux;make mrproper
该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖
配置
??接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下一些主要的且经常用到的选项的设置。
??配置内核可以根据需要与爱好使用下面命令中的一个:
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
??这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,那么就推荐你使用这个命令.

在繁杂的配置工作完成以后,下面你就可以自己到杯茶耐心等候了。与编译有关的命令有如下几个:
#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules_install
#depmod -a
??第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;
第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;
第三个命令make zImage和第四个命令make bzImage实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,
它们的区别在于使用make bzImage可以生成大一点的内核,比如在编译2.4.0版本的内核时如果使用make zImage命令,那么就会出现system too big的错误提示。
建议大家使用make bzImage命令。
??后面三个命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时选了"Yes"才是必要的,
make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。
??严格说来,第七个命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。

更新
??经过以上的步骤,我们终于得到了新版本的内核。为了能够使用新版本的内核,我们还需要做一些改动:
#cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8
??以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:
#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.0test8 vmlinuz
#ln -s System.map-2.4.0test8 System.map
#shutdown -r now
正常启动.您的机器现在就使用你的新内核了.
下面是RH 推荐的编译方式. 注意edit Makefile
老话新说,RedHat 公司 推荐编译内核方法
本文部分取自于RH300(RHCE Rapid Track Course)课本.
本文假定你用的是Redhat 7.2,用grub 管理启动.准备编译7.2 自带的内核
cd /usr/src/linux-2.4
make mrproper
edit Makefile 文件
把EXTRAVERSION= 改成有你特色的文字, 比如:
EXTRAVERSION=-10me
make menuconfig or make xconfig
make dep
make bzImage
make modules
make modules_install
cp System.map /boot/System.map-2.4.7-10me
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.7-10me
new-kernel-pkg --install --mkinitrd --depmod 2.4.7-10me

(0)

相关推荐

  • linux中断--内核中断编程

    Linux中断内核编程 前言 在前面分析了中断的基本原理后,就可以写一个内核中断程序来体验以下,也可以借此程序继续深入来了解内核中断的执行过程 一.内核中断程序: 我们还是来看一看成程序: 在看程序之 ...

  • 详解Debian系统中安装Linux新内核的流程

    一直对Linux内核很有兴趣,但苦于入门不易,认真看了ldd前5章突然就来感觉了,光看不练不顶用,首先就需要环境搭建.使用的是Debian 5.0,内核2.6.26,欲安装的新内核为2.6.28,这里 ...

  • 理解 pkg-config 工具(linux编译辅助工具)

    你在 Unix 或 Linux 下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中。然后,告诉你的同事说,你可以取下来用了。这时,你长长的出了一口气,几天的 ...

  • OpenBSD3.6编译内核的方法

    首先要下载安装所需的包 在官方发布的OpenBSD光盘上可以获取源代码,当然也可以从网上下载src.tar.gz、sys.tar.gz、ports.tar.gz文档 cp /home/jjp/src. ...

  • kali linux 编译C语言并运行

    本人最近开始学习C语言.并使用kali linux系统进行编写.编译并运行.刚开始有很多小细节呼略了.这些细节是小但是有时却让新手很是烦脑.下面一起看看再kali linux编写.编译.并运行的步骤. ...

  • linux内核编译常常出现的问题的解决办法

    linux内核编译常常出现的问题的解决办法

  • Linux内核配置选项

    第一部分 01、Code maturity level options ---> 代码成熟等级选项 01.01、 [ ] Prompt for development and/or incomp ...

  • Linux系统下编译安装支持NTFS的内核模块

    当你安装完Linux系统,并且已经启动,恭喜你!如果你的硬盘上还安装了WinNT/2000系统,你试图去访问另一个NTFS分区时却遇到了麻烦。因为你所用的Linux系统没有已编译的支持NTFS文件系统 ...

  • unix/linux内核在系统里扮演什么

    unix/linux内核在系统里扮演什么角色? 不仅仅是FreeBSD系统,每一个操作系统都有一个内核---从MS-DOS、Windows到高级终端大型机,但是各种系统对内核的态度不同,有些系统花费了 ...