内核编译(二):配置内核并生成uImage文件

    给内核打好补丁后,我们就可以进行内核的配置了。怎么配置呢,我们有两种方案:

    ①.直接make menuconfig(这个是直接配置,里面的配置项都是未配置的,要自己一个个来,比较麻烦,配置完成后,会生成一个.config文件)

    ②.使用默认的配置,在此基础上进行修改( 一般厂家会提供好配置文件给你,你就直接复制一份为.config,然后再此基础上在进行make menuconfig,它就会读取.config里的配置项,然后就会默认配置好了一些,你只要在上面修改就好了。)

    我们先进行第一种方法看看,直接make menuconfig。注意,这里我们可能会碰到一下错误:


碰到这种错误的原因,是由于当前Linux的Make工具太新了,已经不兼容旧版的Makefile规则了,具体的解决方法可以看这一篇:

http://www.cnblogs.com/lovechen/p/5717322.html

修改好后,我们直接make menuconfig,就可以显示出配置界面了:


我们一层层找下去,发现配置项还是挺多的。接下来,我们就尝试第二种方法,我们得先找到厂家的配置文件,在外面的目录下,就有一个config_ok的文件。在这里,这个就是我们要的厂家配置文件。我们把它配置一份成.config文件就好了(使用命令:cp config_ok .config),然后我们再make menuconfig,看看效果:


我们看到,这时有些选项是已经选上的了,这就是我们的配置文件.config的效果,我们可以在此基础上进行修改。对于怎么去配置,我们下次再讲。这里我们就不对它进行改动了,直接退出,保存。保存后,我们所修改的内容也会保存到.config中,下次make menuconfig时,就会显示我们的内容。

    完成文件的配置之后,我们就可以直接make生成内核了。但是注意,这里我们不是直接去make生成内核(这样生成的是一种elf格式的文件,又称vmlinux),对于内核,我们是使用U-Boot去引导的,所以,我们得去生成uImage文件(这个文件我们之前在U-Boot解析的时候解析过了,请看U-Boot第六节)。在我们编译U-Boot的时候,会生成一个mkimage的文件,它是专门用来制作镜像的文件,我们需要把它拷贝过来,拷贝到我们的/usr/bin/目录下,我们先进到u-boot目录里的tools目录,然后执行以下命令:sudo cp mkimage /usr/bin/mkimagea。拷贝完成后,我们就可以执行make uImage命令,生成uImage文件:

如图,我们的uImage文件在arch/arm/boot这个目录下,我们把它拿出来,然后用usb传输的方式传到U-Boot中去自动烧写就好了,这个过程就不掩饰了。

猜你喜欢

转载自blog.csdn.net/xiaokangdream/article/details/80185347