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內核的編譯,有興趣的可以添加其他功能,相信會更有趣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM