Ubuntu14.04下编译linux内核时无法生成uImage的处理方法

时间:2021-09-17 08:07:37

1.  先简述一下linux内核编译流程,当然编译之前需保证arm-linux-gcc编译器已经安装

1. 从网上下载内核压缩包文件,比如linux-2.6.22.6.tar.bz2, 同时获取你所需要的补丁文件,比如linux-2.6.22.6_s3c2440.patch
3. 解压内核压缩包
# tar -xjvf linux-2.6.22.6.tar.bz2 -C /home/work/s3c2440/kernel/
4. 解压完成后打开目录,并打补丁
# cd /home/work/s3c2440/kernel/linux-2.6.22.6/
# patch -p1 </home/work/s3c2440/source/linux-2.6.22.6_s3c2440.patch

2. 上面已经解压内核文件并打好补丁,下面再进行配置和编译,这里配置我们直接采用厂家提供的配置文件config_ok把.config文件替换掉

# cp config_ok .config

3.  编译生成可执行文件,可以直接make,我们这里需要一个uImage(文件头+内核)的镜像文件,执行make uImage

# make uImage

4. 执行完成后,我们发现在./arch/arm/boot/目录下找不到uImage这个文件,我们回过去看编译提示信息,发现有一行提示信息为:"mkimage" command not found - U-Boot images will not be built,这说明系统缺少mkimage工具,按照以往经验,我们需要安装依赖包: apt-get install uboot-mkimage,但却提示”现在没有可用的软件包 uboot-mkimage,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃,怎么破?按照其提示,安装”u-boot-tools“即可。

# apt-get install u-boot-tools

5. 安装完成后,再次编译

# make uImage

我们发现编译正常了,编译结束后,进入./arch/arm/boot/目录下就可以看到刚刚生成的uImage文件了....

^_^over~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~