您的位置:首页 > 产品设计 > UI/UE

cross-compile env set and build(eg,uImage)

2017-08-23 17:09 387 查看
=============================build success==============================
[xiatian@hz42lfs_linux]$ cat k2-cross-compile-hz42.env
export MACHINE=xxxx_k2
export ARCH=arm
export SYSROOTS=/var/work/$USER/build_xxx/tmp/sysroots
export PATH=$SYSROOTS/x86_64-linux/usr/bin/cortexa15t2hf-vfp-vfpv4-neon-poky-linux-gnueabi/:$PATH
export PATH=$SYSROOTS/x86_64-linux/usr/sbin/:$PATH
export PATH=$SYSROOTS/x86_64-linux/usr/bin/:$PATH
export CROSS_COMPILE=arm-poky-linux-gnueabi-
[xiatian@hz42lfs_linux]$source k2-cross-compile-hz42.env
进入kernel的根目录:
[xiatian@hz42lfs_linux]$make
... =>去掉编译过程
[xiatian@hz42 lfs_linux]$ ls=>编译结束
arch COPYING crypto drivers fs init Kbuild kernel localversion-rt Makefile modules.builtin Module.symvers README samples security System.map usrvmlinux
block CREDITS Documentation firmware include ipc Kconfig lib MAINTAINERS mm modules.order net REPORTING-BUGS scripts sound tools virt vmlinux.o
[xiatian@hz42 lfs_linux]$ ls -all vmlinux
-rwxr-xr-x 1 xiatian tdlte 52260485 Aug 23 16:49vmlinux==>这个就是kernel编译后生成的初始bin,linux内核经过编译后也会生成一个elf格式的可执行程序,叫vmlinux或vmlinuz,这个就是原始的未经任何处理加工的原版内核elf文件;嵌入式系统部署时烧录的一般不是这个vmlinuz/vmlinux
uboot为了启动linux内核,还发明了一种内核格式叫uImage。uImage是由zImage加工得到的,uboot中有一个工具,可以将zImage加工生成uImage。注意:uImage不关linux内核的事,
linux内核只管生成zImage即可,然后uboot中的mkimage工具再去由zImage加工生成uImage来给uboot启动。这个加工过程其实就是在zImage前面加上64字节的uImage的头信息即可
如果直接在kernel底下去make uImage会提供mkimage command not found。解决方案是去uboot/tools下cp mkimage /usr/local/bin/,复制mkimage工具到系统目录下。再去make uImage即可。(默认在kernel下执行make,只生成zImage)
[xiatian@hz42 lfs_linux]$make uImage
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
HOSTLD scripts/mod/modpost
CHK include/generated/compile.h
CHK kernel/config_data.h
Kernel: arch/arm/boot/Image is ready
XZKERN arch/arm/boot/compressed/piggy.xzkern
AS arch/arm/boot/compressed/piggy.xzkern.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-3.10.74-rt79+
Created: Wed Aug 23 16:59:16 2017
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1900728 Bytes = 1856.18 kB = 1.81 MB
Load Address: 80008000
Entry Point: 80008000
Image arch/arm/boot/uImage is ready
[xiatian@hz42 lfs_linux]$ ls -allarch/arm/boot/uImage
-rw-r--r-- 1 xiatian tdlte 1900792 Aug 23 16:59 arch/arm/boot/uImage
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: