EASYARM-IMX283 编译uboot和uImage

本文是按照IMX283配套光盘的流程重新编译uboot和uImage将光盘中的gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2
解压缩到系统某个文件夹下(我解压缩到/home/host/soft下)

然后~/.bashrc添加一行:


export PATH=$PATH:/home/host/soft/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/

然后重新打开bash,执行下面的命令:


[email protected]:~/nfs/imx283$ arm-fsl-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-fsl-linux-gnueabi
Configured with: /work/arm-toolchains/tmp/src/gcc-4.4.4/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-fsl-linux-gnueabi --prefix=/work/arm_fsl_gcc_4.4.4_multilib --with-sysroot=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --enable-languages=c,c++ --with-pkgversion=4.4.4_09.06.2010 --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx=‘-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm‘ --with-gmp=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-mpfr=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-ppl=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-cloog=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --enable-threads=posix --enable-target-optspace --with-local-prefix=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long --enable-multilib --with-system-zlib --enable-lto
Thread model: posix
gcc version 4.4.4 (4.4.4_09.06.2010)

如果提示错误,那么说明路径配置有误,需要重新将其配置好。

解压bootloader.tar.bz2,生成两个文件夹:


mx-bootlets-src-10.12.01  u-boot-2009.08

uboot需要分别编译这两个文件夹,最后才能生成需要的uboot。

进入 U-Boot-2009.08目录,进行清理、配置和编译:


$ cd Boot Loader/ U-Boot-2009.08
$ make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- distclean
$ make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- mx28_evk_config
$ make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi-

将uboot拷贝到mx-bootlets-src-10.12.01下,


$ cp u-boot ../imx-bootlets-src-10.12.01/
$ cd ../imx-bootlets-src-10.12.01/
$ ./build

生成的imx28_ivt_uboot.sb即为所需要的uboot文件。

下面编译linux内核。

解压linux-2.6.35.3.tar.bz2:


tar xf linux-2.6.35.3.tar.bz2

然后进行配置和编译:


$ make ARCH=arm EasyARM-iMX283_defconfig
$ make uImage

生成的uImage即为需要的内核文件。

然后可以用新编译出的内核重新引导系统,系统运行一切正常,与原版内核的输出信息完全一致。

另外也可以用make
zImage生成zImage,然后再用imx-bootlets-src-10.12.01下的build工具来生成imx28_ivt_linux.sb。

这样生成的内核文件可以不需要uboot支持即可重新启动。

这样就完成了对uboot和linux内核的编译,有兴趣的可以添加其他功能,相信会更有趣。

时间: 2024-08-10 21:10:38

EASYARM-IMX283 编译uboot和uImage的相关文章

debian下使用ft232为stm32f429i-discovery烧写uboot和uImage

操作系统:debian 软件: openocd  minicom 硬件:  MiniUSB线.stm32f429i-discovery, WaveShare FT232串口模块(可以在淘宝上买到) 关于openocd的配置可以参看我的博文: <debian下烧写stm32f429I discovery裸机程序> u-boot源码下载: git clone https://github.com/EmcraftSystems/u-boot.git linux源码下载: git clone http

编译Uboot——错误记录

我使用的是ZLG的EasyARM iM280A的开发板.官方提供的编译器时arm-fsl-linux-gnueabihf(gcc 4.4.4).自己尝试使用arm-linaro-linux-gnueabihf(gcc 4.7.3). 按照开发手册的流程,解决编译上的报错后,得到imx_ivt_uboot.sb文件. 按照开发手册,将进行uboot only的烧写,需要提供的文件是imx_ivt_uboot.sb和rootfs.tar.bz2. 烧写完成之后,启动开发板串口终端输出如下: ?Aug

hi3531 SDK 编译 uboot, 改动PHY地址, 改动 uboot 參数 .

一,编译uboot SDK文档写得比較清楚了,写一下须要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源代码编译的则成功刷了进去,不知道详细什么问题,可是一直没试试有点不应该了. 2. 文档中说要用一个Excel表格做配置然后用mkboot.sh将配置文件和uboot.bin文件一起生成终于的uboot,我一直纠结那个Excel不能配置,里面的參数也看不懂.谁知道事实上不用配影响也不大. 3. 之前用别人

GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0&#39;错误的解决办法

/opt/arm-2010.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/armv4t/libgcc.a(_bswapsi2.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' make: *** [u-boot] Error 1 一旦编译uboot出现上述错误,请不要慌张!解决办法官网已经给出,主要解决办法如下: vim 打开./lib_arm/eabi_com

debian下为stm32f429i-discovery编译uboot、linux内核和根文件系统

交叉编译器:arm-uclinuxeabi-2010q1 交叉编译器下载下来后解压,然后将其中bin文件夹路径加入到PATH变量中. 根据<debian下烧写stm32f429I discovery裸机程序>安装openocd. 安装genromfs,使用下面命令: sudo apt-get install genromfs 已经有人提供好脚本,只要执行几条命令即可.使用git下载文件并进行编译: git clone https://github.com/jserv/stm32f429-lin

Vs2012在Linux开发中的应用(7): 编译UBOOT

在完成前一节所述的操作后,我们就可以尝试在VS下编译UBOOT了. 我们仅仅需要改写项目中的make.py: #user code begin classCUBootMake: error=False defBuild(self,chan): self.error=False exec_command(chan, "cd/work/projects/hi3516dvs_2v/u-boot/v1/u-boot-2010.06 && " "makeARCH=arm

hi3531 SDK 编译 uboot, 修改PHY地址, 修改 uboot 参数 .

一,编译uboot SDK文档写得比较清楚了,写一下需要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源码编译的则成功刷了进去,不知道具体什么问题,但是一直没试试有点不应该了. 2. 文档中说要用一个Excel表格做配置然后用mkboot.sh将配置文件和uboot.bin文件一起生成最终的uboot,我一直纠结那个Excel不能配置,里面的参数也看不懂.谁知道其实不用配影响也不大. 3. 之前用别人的u

编译uboot提示libasm-offsets.c10 error bad value (armv5)解决方法

编译uboot-2016.09提示如下错误: lib/asm-offsets.c:1:0: error: bad value (armv5) for -march= switch 解决方法: 1.在命令行指定编译工具链 make ARCH=arm CROSS_COMPILE=arm-linux- 2.修改u-boot的顶层Makefile中定义的CROSS_COMPILE和ARCH变量为CROSS_COMPILE=arm-linux- ,ARCH=arm,这样可以在命令行直接敲入make命令编译

编译Uboot时提示error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

在Ubuntu14.04 64位系统中已经安装了libc6:i386的库,编译Uboot时提示error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory. 出错原因是:缺少lib32z1库 解决方法:sudo apt-get install lib32z1