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
[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
相关文章推荐
- imlib2 compile env build with debian linux
- cross compile host,build,target
- Cross compile gdbserver and use it in ARM linux (在ARM uClinux下编译和使用gdbserver)
- Android 解决 .build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)V
- cross-compile-openssl-windows.sh,cross-compile-curl-windows.sh,cross-compile-zlib-windows.sh,build-zlib-visual-studio-2015-cli.bat
- build and set proxy in Ubuntu
- What is cross compile and toolchain?
- pf_ring userland code C code and C++ code Cross compile
- build-qt.sh(Cross compile in Linux for Windows)
- buildroot的使用之如何配置使用已安装的cross-compile
- Cross Compile zlib as static and dynamic library
- build, debug, compile and run
- Compile Spark and Build Spark Package
- Compile Spark and Build Spark Package
- PhoneGap: open source development framework for building cross-platform mobile apps, Build apps in HTML and JavaScript
- 运行qtcreator 出现错误提示:error: Qt Creator needs a compiler set up to build. Configure a compile
- To set up, build, and run the WCF sample
- Cross Compile libdnet and Python for Montavista/PowerPC
- ARM-Linux Gcc cross Compile Environment Set
- Compile and build specific Hadoop source code branch using Azure VM