编译内核 mkimage" command not found - U-Boot images will not be buil

时间:2022-11-30 06:58:24
问题简述:
编译自学包里自带的linux-2.6.38内核 出现错误。
实验步骤:
开发板是tiny6410 4.3寸电阻屏,256M内存,2GBnand。
1.make distclean
2.cp config_mini6410_n43 .config (配置内核)
3.make menuconfig ARCH=arm (只是浏览了下选项,没有修改里的任何选项,退出时没有提示是否保存,所以就断定没有修改里面的任何选项)
4.make uImage ARCH=arm CROSS_COMPILE=arm-linux-

实验结果:
编译自学包里自带的linux-2.6.38内核 出现如下错误:
WARNING: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
  GEN     .version
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
  KSYM    .tmp_kallsyms1.S
  AS      .tmp_kallsyms1.o
  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready
  AS      arch/arm/boot/compressed/head.o
  GZIP    arch/arm/boot/compressed/piggy.gzip
  AS      arch/arm/boot/compressed/piggy.gzip.o
  CC      arch/arm/boot/compressed/misc.o
  CC      arch/arm/boot/compressed/decompress.o
  SHIPPED arch/arm/boot/compressed/lib1funcs.S
  AS      arch/arm/boot/compressed/lib1funcs.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
"mkimage" command not found - U-Boot images will not be built
make[1]: *** [arch/arm/boot/uImage] Error 1
make: *** [uImage] Error 2
 
解决办法:

如果使用make uImage 则能生成由uboot 引导的内核文件, 需要用到
uboot/tools/mkimage,可以在/etc/bashrc 文件末加入一下语句:
export PATH:=$PATH:/usr/src/arm/u-boot-1.1.5/tools
这样就能直接引用mkimage 命令。

前提是uboot/tools目录下有mkimage这个工具,需要编译才能生成。

修改Makefile
找到
ifeq($(ARCH),arm)
CROSS_COMPILE =
改成
ifeq($(ARCH),arm)
CROSS_COMPILE = arm-softfloat-linux-gnu-

(CROSS_COMPILE = #arm-none-linux-gnueabi- 经测试也可以)
make distclean
make at91sam9260ek_config
make

生成的工具在uboot的tools里面,把这个mkimage考到/usr/bin下就行了:

#cp mkimage /usr/bin/mkimage

 

如果使用的是Ubuntu 9.10可以使用下面的命令安装mkimage:

#apt-get install uboot-mkimage