编译内核无法生成uImage的原因分析

uBoot启动内核,需要符合要求的内核镜像文件uImage(包含head+body组成);

内核镜像需要mkimage来制作;

如果shell在环境变量目录中找不到mkimage工具,就无法生成uImage;

这里的mkimage必须是编译uboot源码后,在/uboot/tools下面生成的工具mkimage。

所以解决办法就是:

第一步:编译uboot,这时将会在uboot/tools下生成mkimage工具;

第二步:声明环境变量,在/etc/bash.bashrc中添加如下语句:

export PATH=/opt/program/mx53_android/uboot/tools:$PATH

这里要和自己的uboot的路径对应。

然后更新bashrc脚本:

source /etc/bash.bashrc

注意一定要在和编译内核同一个终端执行该语句,否则同样会出现

"mkimage" command not found - U-Boot images will not be built

的错误。

由于我们随时可能清空掉uboot中的编译文件,这意味着mkimage文件随时会被清除,我们

可以将它复制到/usr/bin下,然后在bashrc中声明,以确保内核正常编译。

时间: 2024-08-29 01:10:08

编译内核无法生成uImage的原因分析的相关文章

第3阶段——内核启动分析之make uImage编译内核(3)

目标: 通过分析makefile,明白make uImage如何编译内核 把整个内核的makefile分成三类(makefile资料文档在linux-2.6.22.6/Documentation/build/makefiles.txt) <1>各级子目录makefile(每个子目录都有makefile)<2>/arch/arm/Makefile(架构相关的makefile)<3>顶层目录makefile 在顶层目录makefile中auto.conf和/arch/arm

内核配置与编译,内核移植

内核配置与编译 一.内核清除 当我们拿到内核第一步需要做的就是先对内核进行清理,防止别人配置编译生成的中间文件对我们产生影响: 1.配置过程生成的 .config 2.编译生成 bzImage 中间文件(.o)和生成.ko 文件的中间文件(.o) make clean 清除.o 文件 make distlean 清除.config 文件 二.内核配置 1. make config:基于文本模式的交互式配置. 2. make menuconfig:基于文本模式的菜单型配置. 一般来说我选择第二种方

Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

一.前言 在之前的破解过程中可以看到我们唯一离不开的一个神器那就是apktool了,这个工具多强大就不多说了,但是如果没有他我们没法涉及到后面的破解工作了,这个工具是开源的,也是使用Java语言开发的,代码相对简单,我们今天就来分析一下他的大体逻辑,注意是大体逻辑哦,因为如果要一行一行代码分析,首先觉得没必要,其次浪费时间,有了源码,谁看不懂呢.至于为什么要分析这个工具其实原因只有一个,就是我们在之前的反编译过程中会发现,总是有那么几个apk应用不让我们那么容易的反编译,他们就利用apktool

第一次生成uImage出现的问题解决

内核移植(1)首次生成uImage映象文件 1.先修改顶层Makefile,如下: ARCH                     ?= $ (SUBARCH) CROSS_COMPILE      ?= 改为: ARCH                     ?= arm CROSS_COMPILE      ?=  arm-linux- 2.执行make s3c2410_defconfig 3.make uImage,首次编译完内核用了4分钟,尾部出现如下信息: LD      arch

20150430 调试分析之 根据内核报错信息PC指针分析错误

20150430 调试分析之 根据内核报错信息PC指针分析错误 2015-04-30 Lover雪儿 大家写驱动的时候不知道有没有发现,当我们驱动写错了,发生内核奔溃时,会打印一大堆的报错信息, 如果再返回我们的程序中一行一行代码的检查,既耗费时间,并且有些逻辑上的错误,我们是很难看的出来的, 那我们能不能再这一大堆的报错信息中发现问题的所在呢? 此处我们来模拟一个错误,还是沿用上一篇文章中的驱动代码err_led.c的驱动程序中的代码修改错误,当然大家用其他的驱动代码做测试也可以. 博客地址:

undefined reference to `av_close_input_file&#39; 原因分析

这是使用libdlna0.2.4与ffmpeg2.4.2搭配遇到的问题 以下是本人自己分析出错原因的分析,内容比较长,写得也比较随意.如果只是想找解决方法,我先在这总结一下: ffmpeg2.4.2默认是不支持av_close_input_file函数的了,换成了avformat_close_input函数 解决方法是使用ffmpeg2.2.9版本(更久的版本没测试过), 或者坚持要使用ffmpeg2.4.2版本的话,只需将 -/ffmpeg-2.4.2/libavformat/version.

ubuntu 下编译内核

目的: 1. 练习.网上有很多类似的文章可供参考. 2. 为写qemu的watchdog驱动练手. 有朋友问make的 watchdog驱动 需要什么准备,所以写这个blog. 环境: ubuntu 12.04.4 耗时(基于熟悉linux环境和操作系统的条件下): 1. make 时间 大于1个小时 过程: 1.安装编译内核所需要的软件 $ apt-get install build-essential kernel-package libncurses5-dev 2.下载内核源码 先查看li

正确地保存编译内核产生的.config文件-使用make savedefconfig

正确地保存编译内核产生的.config文件-使用make savedefconfig 一直以来保存编译内核生成的.config文件都是cp .config arch/arm/configs/xxx_defconfig来保存的.但是这其实是一个错误的方法.原因听我细细道来. 以前一直没有在意过这个问题,直到遇到了make xxx_defconfig生成的.config与原xxx_defconfig有差异并解决后,引发我的对.config保存方式的疑惑.原来在arch/arm/configs/中保存

由zImage生成uImage

mkimage -A arm -O linux -T kernel -C none -a 30007fc0 -e 30007fc0 -n uImage   -d /work/jz2440/kernel/linux-2.6.22.6/arch/arm/boot/zImage uImage 我的内核目录:/work/jz2440/kernel/linux-2.6.22.6 我的tftpboot:/work/tftpbootuboot——bootm地址:30007fc0 名字:uImage 需要先安装