Crosstool-ng: ARM交叉编译环境的详细教程与Linux内核升级指南

5星 · 超过95%的资源 需积分: 12 18 下载量 46 浏览量 更新于2024-10-28 收藏 958KB PDF 举报
本文将详细介绍如何基于Crosstool-ng构建ARM Linux的交叉编译环境,特别关注于解决Crosstool-ng无法制作GCC-4.1.1以上版本的问题,从而能够编译Linux-2.6.28以上的内核版本。作者Salonydeny在2010年6月16日分享了这个教程,适用于初学者学习Linux环境的搭建。 首先,操作环境设置在Windows下通过VMware安装Ubuntu-10.04 Desktop i386版本,选择GCC版本4.3.2,Linux内核目标版本为2.6.32。值得注意的是,由于Crosstool-ng的限制,当时的编译环境只能达到GCC-4.1.1和Linux-2.6.24,但作者提到对于更高版本的内核和GCC,理论上应可以兼容,尽管没有进行实际测试。 文章指导读者按照以下步骤进行: 1. **下载相关文件**:需要下载Crosstool-ng的最新版本(当时为1.7.0),这个开源工具用于生成定制化的编译工具链,满足特定架构的需求。 2. **安装相关工具**:由于是交叉编译环境的建立,这一步涉及网络安装,可能包括下载依赖库、编译工具等,确保网络连接畅通以便获取所需软件。 3. **制作编译环境**:这是关键部分,作者详细阐述了如何配置Crosstool-ng,包括配置脚本的编写和执行,以及如何根据目标平台和内核版本调整编译参数。这一环节需要熟悉vi编辑器的基本操作,如创建、编辑和保存配置文件。 文章还提到了Linux内核版本命名规则,指出内核版本号的最后两位数如果是奇数,通常表示实验或不稳定版本,之后会发布偶数版本作为稳定更新。这对于理解内核版本选择和更新路径很有帮助。 最后,作者表达了对读者的感谢,并提供了自己的联系方式,鼓励有兴趣的读者交流和反馈。 总结来说,这篇教程为初学者提供了一套实用的ARM Linux交叉编译环境制作指南,通过Crosstool-ng定制工具链,突破了旧版Crosstool对GCC和内核版本的限制,有助于用户在开发ARM嵌入式系统时更高效地工作。
2020-08-15 上传
Using built-in specs. COLLECT_GCC=./arm-cortexa9_neon-linux-uclibcgnueabihf-gcc COLLECT_LTO_WRAPPER=/opt/toolchains/arm-cortexa9_neon-linux-uclibcgnueabihf-gcc-7.4.0/bin/../libexec/gcc/arm-cortexa9_neon-linux-uclibcgnueabihf/7.4.0/lto-wrapper Target: arm-cortexa9_neon-linux-uclibcgnueabihf Configured with: /home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/src/gcc/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-cortexa9_neon-linux-uclibcgnueabihf --prefix=/home/abu/x-tools/arm-cortexa9_neon-linux-uclibcgnueabihf --with-sysroot=/home/abu/x-tools/arm-cortexa9_neon-linux-uclibcgnueabihf/arm-cortexa9_neon-linux-uclibcgnueabihf/sysroot --enable-languages=c,c++,fortran --with-cpu=cortex-a9 --with-fpu=neon --with-float=hard --with-pkgversion='crosstool-NG 1.24.0' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --disable-libmpx --with-gmp=/home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/buildtools --with-mpfr=/home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/buildtools --with-mpc=/home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/buildtools --with-isl=/home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/buildtools --disable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' --enable-threads=posix --enable-target-optspace --disable-plugin --with-libintl-prefix=/home/abu/arm/u-boot-2019.04/.build/arm-cortexa9_neon-linux-uclibcgnueabihf/buildtools --disable-multilib --with-local-prefix=/home/abu/x-tools/arm-cortexa9_neon-linux-uclibcgnueabihf/arm-cortexa9_neon-linux-uclibcgnueabihf/sysroot --enable-long-long Thread model: posix gcc version 7.4.0 (crosstool-NG 1.24.0)