U-Boot 基本编译教程.doc_第1页
U-Boot 基本编译教程.doc_第2页
U-Boot 基本编译教程.doc_第3页
U-Boot 基本编译教程.doc_第4页
U-Boot 基本编译教程.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

U-Boot 基本编译教程此教程为入门教程只讲解如何编译 U-Boot,不讲解代码修改及排错等。此教程适用于 AR 及 QCA 系列的 ar71xx 平台。若有疑问,或看不懂,请直接回帖,以便楼主修改教程。准备工作:Linux 系统: 32 位 / 64 位均可。楼主使用的是 Ubuntu 12.10 amd64。 64 位环境下需要安装 32 位库。如 Ubuntu 下是运行 sudo apt-get install libc6:i386 libgcc1:i38 libstdc+5:i386 libstdc+6:i386。基础编译环境: 一般来说每个发行版的 Linux 系统都有包管理器。 例如在 Ubuntu 的 Shell 里运行 sudo apt-get install build-essential 就可安装好编译环境。 其他的系统请自行百度。基本的 Linux Shell 基础: 这个只能自己想办法解决了。入门级: 入门级使用现成的工具链和编译脚本,使用最少的命令完成代码编译。 使用 TL-MR3420 v1 的代码进行讲解。 1. 下载源代码 打开 /en/support/gpl/,在左侧选择 3G/4G Routers,然后在列表中选择 TL-MR3420 V1 的代码进行下载。1.png (26.33 KB, 下载次数: 0)下载附件 保存到相册 2014-4-30 23:54 上传 2. 解压代码 这个就随便了,一般解压在主目录。 将下载的 mr3420_3220v1.tar.gz 移动到主目录。 注意:这里压缩包扩展名有误,实际上是 bzip2 压缩的。 打开终端,此时终端应该默认在主目录下,若不在主目录下,就运行 cd 命令进入主目录。 运行命令 tar -jxvf mr3420_3220v1.tar.gz 以解压代码。tar_jxvf_mr3420_3220v1.png (31.25 KB, 下载次数: 0)下载附件 保存到相册 2014-4-30 23:54 上传 3. 编译代码 运行命令 cd mr3420_3220v1/build 进入代码编译目录。 运行命令 make BOARD_TYPE=ap99 fs_prep 以创建编译过程所需的目录。 运行命令 make BOARD_TYPE=ap99 uboot 以开始编译 U-Boot。 4. 刷机测试 如果没有意外,那么编译结束后的输出应该是这样的:2014-04-30 23:46:50的屏幕截图.png (86.52 KB, 下载次数: 0)下载附件 保存到相册 2014-4-30 23:55 上传 生成的 u-boot.bin 位于 mr3420_3220v1/images/ap99/ 目录下。 此文件未被填充到 128K,需要手动填充。 填充后的文件就可以进行刷机测试了。 此文件是未压缩版,因此本身体积很大。此代码也不能生成压缩版的 U-Boot。 5. 说明 操作说明请参阅代码根目录下的 readme.txt。 入门级的操作就这么简单。进阶级: 进阶级依然使用 TL-MR3420 v1 的代码。 进阶级将分离 U-Boot 代码及现成的工具链,搭建基本的交叉编译环境。 1. 分离 U-Boot 代码 U-Boot 代码位于 mr3420_3220v1/ap99/boot/u-boot 。 将整个 u-boot 目录复制到一个地方,如用户主目录。 此 u-boot 目录里的代码就是全部所需的代码了。之后的所有操作都在这里面完成。2014-05-01 00:57:56的屏幕截图.png (99.54 KB, 下载次数: 0)下载附件 保存到相册 2014-5-1 01:09 上传 2. 复制工具链 此工具链即为编译器,但是是针对 mips 架构的交叉编译器。 工具链位于 mr3420_3220v1/build/gcc-3.4.4-2.16.1/build_mips。 将整个 build_mips 复制到一个地方,如主目录。 3. 搭建编译环境 现在,mr3420_3220v1 目录已经没有用,可以删掉,因为所有需要的文件都已复制出来了。 设置环境变量以让 Shell 能够访问到工具链。运行命令 export PATH=$PATH:/build_mips/bin 即可。 此设置只在当前的 Shell 里有效。关于如何设置永久的环境变量,请自行百度。 4. 清理代码 此操作用于清理上次编译产生的临时文件及配置文件,为下次配置及编译做准备。 进入 u-boot 目录:运行命令 cd /u-boot 。 运行命令 make distclean 以执行完全清理。 5. 编译代码 这里是一个完整的编译步骤。 a. 指定开发板类型 此操作表示我们要编译哪个开发板。AR7241 的开发板(这里其实叫参考板,reference board)名称为 ap99,因此运行 make ap99_config 以进行配置。 所有的开发板定义都写在 Makefile 里。其中以 *_config: 开头的行,* 就是开发板名称。 AR 及 QCA 系列的参考板名称会在最后列出。 有些开发板还有额外的参数可以定义,这里暂不讲解。2014-05-01 01:11:13的屏幕截图.png (108.63 KB, 下载次数: 0)下载附件 保存到相册 2014-5-1 01:11 上传 b. 编译 运行命令 make CROSS_COMPILE=mips-linux- 进行编译。 CROSS_COMPILE=mips-linux- 指定了交叉编译器的文件名前缀为 mips-linux-。例如,要使用工具链中的 gcc 程序,那么就运行 mips-linux-gcc。这个可以看一下 build_mips/bin 目录下的文件名。 由于之前运行了 export PATH=$PATH:/build_mips/bin 命令,所以 Shell 能够直接找到相关程序的位置。否则,CROSS_COMPILE= 需要指定为 /build_mips/bin/mips-linux-。 c. 测试 编译成功后,u-boot 目录下会生成 u-boot.bin,这就是未填充到 128K 的文件。 6. 常用编译命令。 make *_config 配置生成为指定的开发板(* 为开发板名称)。 make CROSS_COMPILE=* 编译代码,并指定交叉编译器文件名前缀为 *。 make clean 清理上次编译生成的临时文件。此命令不会删除开发板配置,下次编译可以直接运行 make 命令。 make distclean 清理编译生成的临时文件及开发板配置。运行此命令后,需要再次指定开发板后才能进行编译。其它说明: 这里使用的 MR3420 v1 代码不能生成压缩代码。其他的,如 AR9331 AR934x 等代码需要在编译时加入 COMPRESSED_UBOOT=1 来进行编译,如 make CROSS_COMPILE=mips-linux- COMPRESSED_UBOOT=1 。 编译 AR934x QCA95xx 的代码需要指定使用的以太网交换机 PHY 类型,即在编译时加入 ETH_CONFIG=_s27 或 ETH_CONFIG=_s17 。其中 _s27 为内置百兆 PHY,_s17 为外部千兆 PHY。 具体路由型号的 GPL 代码里都有说明文件,可以根据说明文件来进行编译,并了解参考板名称。常见参考板名称: AR7240 - ap91 AR7241 - ap99 AR9331 - ap12

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论