linux内核编译步骤

整体上分为三步:

     1、配置内核(就是确定哪些功能要保留在编译好的内核中,哪些功能要从内核中删除),生成一个编译配置文件.config

     2、编译内核。

     3、 安装内核。


1、到http://www.kernel.org/下载源码包 在这里我们假设下到的源码包为linux-3.2.1.tar.gz

2、解压压缩包,并移动到/usr/src下
   $tar -zxvf linux-3.2.1.tar.gz 

   $mv linux-3.2.1 /usr/src

    进入/usr/src/就可以发现已经有3.2.1这个文件夹了,编译内核是在这个文件下面进行的。也就是说你要进入到这个文件夹下面才可以进行之后的操作哦。

3、删除以前可能失败的编译配置信息
   $cd /usr/src/linux-3.2.1
   $make mrproper

4、内核模块配置,可以选择新的功能 --例如支持NTFS ,无线网络,蓝牙等等

       有几种方式可以进行界面选择:

       $make config(文本的配置方式,需要用户自己写配置文件)

       $make menuconfig(文本选单的配置方式,在有字符终端下才能使用)

       $make xconfig(图形窗口模式的配置方式,必须支持Xwindow下才能使用)

                                                             --我认为第二个比较方便

      对应每一项相应的配置时,有三种选择:

      Y--该模块编译进内核

      N--该模块不编译进内核

      M--该模块编译成可加载内核模块


5、创建压缩内核镜像,这个就是生成您的新核心,也就是kernel啦,所有的系统硬件软件交互都靠它了哦..

   $make bzImage

      其实可以是make zImage的,但是你要确保您所编译的这个新内核在640K之下,您就可以使用make zImage,如果比640K大,那就要用make bzImage,您要说没编译出来咋知道多大呢?我的看法是建议用bzImage,因为我编译出来的内核一般都是800~900K左右。

     如内核现在已经编译好了,这时候系统会有个提示编译后的bzImage放到哪里去了,提示最后几行,已经告诉了您的新编译出的核心位置啊,一般都在这里/usr/src/linux-3.2.1/arch/i386/boot/,这时候您要做的就是把它放到/boot目录底下去哦,不然系统可没法启动的 …

 $cp /usr/src/linux-3.2.1/arch/i386/boot/bzImage /boot/vmlinuz-3.2.1 这里好像可以不手动复制,系统最后也会在boot下面产生一个吧。
(这里其实已经把bzImage更名为vmlinuz-3.2.1,待会在/boot/grub/grub.conf里就指定这个新内核)

6 编译模块

$make modules(耗费时间取决于您所选择编译为modules的数量)

     大概20分钟吧,这个步骤就是把您在make menuconfig里边所选择为M的东东,全部编译成模块.

安装模块

$make modules_install

8 安装核心

$make install

9 重启,就会看到还有一个问题,在grub启动的选择里面有最新的版本的内核,还有一个以前的内核版本,我尝试过了,都可以进去。




你可能感兴趣的:(内核)