• 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,执行下面的命令:

    host@debian:~/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内核的编译,有兴趣的可以添加其他功能,相信会更有趣。

  • 相关阅读:
    探讨变量的内存分配方式
    色彩之RGB和灰阶
    Perl语言:qw简写
    【转】位操作
    [转]Perl学习笔记
    Spaghetti code&Ravioli code&Lasagna code&Spaghetti with meatballs
    交叉编译lsusb
    GCC,LLVM,Clang编译器对比
    如何判断自己是否到了该辞职的时候
    Javascript Array和String的互转换。
  • 原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3745976.html
Copyright © 2020-2023  润新知