来源:顶嵌嵌入式培训
作者:顶嵌学员-万隆(山东理工大学讲师)
一、本次内核编译新内核所涉及软件版本
“gcc –version”可查寻GCC版本------4.3.2 20081105(Red Hat 4.3.2-7)
“make –v”可查询 Gnu make版本-----3.81
“ld –V(v)可查询GNU ld版本-----2.18.50.0.9-7。f c10 20080822
“fdformat --version”命令检查 util-linux版本----2.14.1
“insmod –V”检查module-init-tools 版本-----3.5
“tune2fs –version”命令可检查 tune2fs 版本-----1.41.3
“pppd --version”命令可检查pppd version 2.4.4
“isdnctrl 2>&1|grep version” 命令可检查isdnctrl version 3.9
二、配置ftp,上传内核代码
ftp配置过程这里不再详细介绍。本次要编译的内核代码版本为2.6.25.8,执行mget指令将内核上传到目标文件,然后执行“tar xvjf linux-2.6.25.8_src.tar.bz2解压内核代码包。
三、配置内核
接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下一些主要的且经常用到的选项的设置。配置内核可以根据需要与爱好使用下面命令中的一个:
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
#make defconfig(采用默认配置)
对于初学者而言,我们可以先执行“make defconfig”,这样可节省很多工作。然后在执行“make menuconfig”进行下面的配置:
1、选择网卡配置:
Device Drivers --->
Network device support --->
Ethernet (10 or 100Mbit) --->
<*> AMD PCnet32 PCI support //VMware 下Linux 系统的网卡驱动
2、选择SCSI 驱动
Device Drivers --->
SCSI device support --->
SCSI low-level drivers --->
<*> BusLogic SCSI support //必须要选择BusLogic SCSI 适配器
配置完成后可执行“ls -a”指令查看目标文件夹中会存在.config文件。在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。
四、编译内核
配置工作完成后,可以执行编译命令:
#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules install
#make install
#depmod -a
第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;第三个命令make zImage和第四个命令make bzImage实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核,比如在编译2.4.0版本的内核时如果使用make zImage命令,那么就会出现system too big的错误提示。建议大家使用make bzImage命令。make modules和make modules install分别生成相应的模块和把模块拷贝到需要的目录中。#make install默认会将内核镜像拷贝到/boot 目录下。第八个命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。
我们可以依次执行#make clean、#make bzImage、#make modules、#make modules install、make install指令。
五、更新
最后我们还需要执行“vim /etc/grub.conf”,修改grub.conf文件中的default的值,选择启动循序。
顶嵌学员:万隆(山东理工大学讲师)
2009年10月6日
[
本帖最后由 topembedded 于 2009-10-21 14:54 编辑 ]