找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 6768|回复: 23

发一个pepe2k的编译过程文档,给像我这样小白的同志们一个启发

[复制链接]
发表于 2015-8-13 18:29 | 显示全部楼层 |阅读模式
今天有空写个记录:
使用的环境是ubuntu10.04
1、下载到u-boot_mod-master.zip源码
         windows环境下直解压然后复制linux环境下
2、下载OpenWrt-Toolchain-ar71xx-for-mips_r2-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2源码
         将改源码在ubuntu环境下解压
         tar  -jxvf  文件名
3、修改u-boot_mod-master 顶层目录下的Makefile文件
         主要修改以下:
         a.修改MAKECMD:将CROSS_COMPILE修改为=mips-openwrt-linux-uclibc-
         b.修改交叉编译工具链的环境变量:
         export              PATH:=$(BUILD_TOPDIR)/../OpenWrt-Toolchain-ar71xx-for-mips_r2-gcc-4.6-linaro_uClibc-0.9.33.2/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/(PATH)(以你自己的为准)
4、可以在顶层Makefile文件可以看到许多编译规则 例:
         tplink_mr3020:         exportUBOOT_FILE_NAME=uboot_for_tp-link_tl-mr3020
         tplink_wr703n:         exportUBOOT_FILE_NAME=uboot_for_tp-link_tl-wr703n
         我们需要编译的是tp wdr4300找到相应的编译ID
         tplink_wdr3600_43x0:     exportUBOOT_FILE_NAME=uboot_for_tp-link_tl-wdr3600-43x0
         
5、编译uboot
         maketplink_wdr3600_43x0
6、编译问题
         首先会提示错误:Fsdata.c文件333行前多了一个,号去掉就可以了
         其次会提示错误:cmd_nvedit.che cmd_load.c 程序中引用没有定义的函数serial_serbrg,由于此函数是定义在ar933x_serial.c中,而我们编译Ar9344的时候是不一样的,我们在目录\openwrt\u-boot_mod-master\u-boot\cpu\mips\ar7240中的Makefile可发现
         ifeq($(BOARD), ap121)
         OBJS         += ar933x_serial.o
         OBJS         += ar933x_clocks.o
         SOBJS       += hornet_ddr_init.o
         else
         OBJS         += ar7240_serial.o
         Endif
         ifeq($(BOARD), db12x)
         OBJS             +=ag934x.o
         else
         OBJS    += ag7240.o
         Endif
uboot目录下的Makefile我们可以看到以下黄色部分
wdr3600_43x0_config : unconfig wasp_common_config
         @/bin/echo-e '\e[32m> Configuring for TP-Link TL-WDR3600/43x0 at:' `date` '\e[0m'
         @echo"#define CONFIG_FOR_TPLINK_WDR3600_WDR43X0_V1 1" >>include/config.h
         @echo"#define DDR2_32BIT_SUPPORT                   1" >>include/config.h
         @echo"#define CFG_ATHRS17_PHY                      1" >>include/config.h
         @echo"#define CFG_AG7240_NMACS                     1" >>include/config.h
         @echo"#define CFG_DUAL_PHY_SUPPORT                 1" >>include/config.h
         @echo"#define GPIO_SYS_LED_BIT                    14" >>include/config.h
         @echo"#define GPIO_SYS_LED_ON                      0" >>include/config.h
         @echo"#define GPIO_WLAN_2G_LED_BIT                13" >>include/config.h
         @echo"#define GPIO_WLAN_2G_LED_ON                  0" >>include/config.h
         @echo"#define GPIO_USB1_LED_BIT                   11" >>include/config.h
         @echo"#define GPIO_USB1_LED_ON                     0" >>include/config.h
         @echo"#define GPIO_USB2_LED_BIT                   12" >>include/config.h
         @echo"#define GPIO_USB2_LED_ON                     0" >>include/config.h
         @echo"#define GPIO_QSS_LED_BIT                    15" >>include/config.h
         @echo"#define GPIO_QSS_LED_ON                      0" >>include/config.h
         @echo"#define GPIO_RST_BUTTON_BIT                 16" >>include/config.h
         @echo"#define GPIO_RST_BUTTON_IS_ACTIVE_LOW        1" >> include/config.h
         @echo"#define DEFAULT_FLASH_SIZE_IN_MB             8" >> include/config.h
         @echo"#define BOARD_CUSTOM_STRING                  \"DB120 (AR9344) U-Bootfor TL-WDR3600/43x0\"" >> include/config.h
         @./mkconfig -a db12x mips mipsdb12x ar7240 ar7240
结合以上信息我们可以知道在编译ar9344的时候是不用到ar933x_serial.c程序,而是用到ar7240 ag934x 程序,所以我们编译ar9344的时候直接把serial_serbrg在那两个c文件注释掉就好了
7、编译成功后在bin目录下可以找到你所编译的uboot
8、我在h大的bree控制台更新自己编译的uboot,可以正常运行,一切ok 。
但是我有个疑问这个编译出来的uboot 没有128K ,只有123K,要是我用编程器直接烧写到flash里能运行起来吗,求各位大神解惑一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +3 收起 理由
cmheia + 3 谢分享经验

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2015-8-14 02:28 | 显示全部楼层
有编程器怕什么, 实验一下就知道了

点评

现木有编程器  详情 回复 发表于 2015-8-14 09:45
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-14 09:45 | 显示全部楼层
s2005203007 发表于 2015-8-14 02:28
有编程器怕什么, 实验一下就知道了

现木有编程器
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-14 10:23 | 显示全部楼层
请问源码哪里下载的

点评

https://github.com/pepe2k/u-boot_mod  详情 回复 发表于 2015-8-14 11:28
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-14 11:28 | 显示全部楼层
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-18 21:57 | 显示全部楼层
编译出来的123K的uboot填充到flash的大小,然后用编程器写入,都不能运行,不知道为什么。
硬件是 mw150r fw150r。但是网上下载的128K的uboot就可以,不知道什么原因。

点评

我用编程器试了一下,uboot是可以运行起来的  详情 回复 发表于 2015-9-15 19:25
那你试着把它填充为128k试下啊  详情 回复 发表于 2015-8-19 10:16
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-19 10:16 | 显示全部楼层
html 发表于 2015-8-18 21:57
编译出来的123K的uboot填充到flash的大小,然后用编程器写入,都不能运行,不知道为什么。
硬件是 mw150r  ...

那你试着把它填充为128k试下啊

点评

填0 填f 都试验过了  详情 回复 发表于 2015-8-19 10:19
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-19 10:19 | 显示全部楼层
满帅果宝 发表于 2015-8-19 10:16
那你试着把它填充为128k试下啊

填0 填f 都试验过了

点评

那还有一个办法就是 你弄个h大的breed 再在breed下更新uboot 然后把这128k 用dd命令弄出来 再弄到flash 应该就可以了  详情 回复 发表于 2015-8-19 15:54
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-19 15:54 | 显示全部楼层
html 发表于 2015-8-19 10:19
填0 填f 都试验过了

那还有一个办法就是 你弄个h大的breed 再在breed下更新uboot 然后把这128k 用dd命令弄出来 再弄到flash 应该就可以了

点评

试过了,不行。根本原因是编译出来的镜像不对。 这个版本的uboot编译出来本身就是这么大。 用openwrt的toolchain编译出来的就是不能用,换 Sourcery CodeBench Lite Edition for MIPS GNU/Linux 就可以了  详情 回复 发表于 2015-8-19 16:41
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-19 16:41 | 显示全部楼层
满帅果宝 发表于 2015-8-19 15:54
那还有一个办法就是 你弄个h大的breed 再在breed下更新uboot 然后把这128k 用dd命令弄出来 再弄到flash  ...

试过了,不行。根本原因是编译出来的镜像不对。
这个版本的uboot编译出来本身就是这么大。
用openwrt的toolchain编译出来的就是不能用,换 Sourcery CodeBench Lite Edition for MIPS GNU/Linux 就可以了

点评

哦 你是用openwrt里的交叉编译工具还是我上面网址下载的单独的交叉编译工具 你换成换 Sourcery CodeBench Lite Edition for MIPS GNU/Linux 编译出来有多大  详情 回复 发表于 2015-8-19 17:21
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-19 17:21 | 显示全部楼层
html 发表于 2015-8-19 16:41
试过了,不行。根本原因是编译出来的镜像不对。
这个版本的uboot编译出来本身就是这么大。
用openwrt的 ...

哦 你是用openwrt里的交叉编译工具还是我上面网址下载的单独的交叉编译工具 你换成换 Sourcery CodeBench Lite Edition for MIPS GNU/Linux 编译出来有多大

点评

都是123K, 在makefile里面定义的  详情 回复 发表于 2015-8-19 18:12
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-19 18:12 | 显示全部楼层
满帅果宝 发表于 2015-8-19 17:21
哦 你是用openwrt里的交叉编译工具还是我上面网址下载的单独的交叉编译工具 你换成换 Sourcery CodeBench ...

都是123K, 在makefile里面定义的

点评

哦 没注意看 你是自己玩呢 还是公司搞开发呢  详情 回复 发表于 2015-8-20 10:32
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-19 18:18 | 显示全部楼层
谢谢分享!!!!!!!!!!!!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-20 10:32 | 显示全部楼层
html 发表于 2015-8-19 18:12
都是123K, 在makefile里面定义的

哦 没注意看 你是自己玩呢 还是公司搞开发呢

点评

自己玩  详情 回复 发表于 2015-8-20 10:50
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-8-20 10:50 | 显示全部楼层
满帅果宝 发表于 2015-8-20 10:32
哦 没注意看 你是自己玩呢 还是公司搞开发呢

自己玩
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-10-1 10:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表