Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404593
  • 博文数量: 120
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 741
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-27 18:15
文章分类

全部博文(120)

文章存档

2016年(13)

2015年(41)

2014年(66)

我的朋友

分类: Android平台

2014-08-11 23:59:46

1.代码路径
主机端的fastboot的路径:
    ./android42/system/core/fastboot/*
cong@dell:/work/ct/android42$ mmm  ./system/core/fastboot/
linux下编译的文件
  1. cong@dell:/work/ct$ tree ./android42/system/core/fastboot/
  2. ├── bootimg.c
  3. ├── engine.c
  4. ├── fastboot.c
  5. ├── protocol.c
  6. ├── usb_linux.c
  7. └── util_linux.c
板子上的fastboot的路径:
    ./lichee/u-boot/common/cmd_fastboot.c
2. 烧写出错
板子在开机时随便按一个键进入uboot,然后输出fastboot
  1. sunxi#fastboot
  2. ptn 0 name='bootloader' start=16777216 len=16777216
  3. ptn 1 name='env' start=33554432 len=16777216
  4. ptn 2 name='boot' start=50331648 len=16777216
  5. ptn 3 name='system' start=67108864 len=536870912
  6. ptn 4 name='data' start=603979776 len=536870912
  7. ptn 5 name='misc' start=1140850688 len=16777216
  8. ptn 6 name='recovery' start=1157627904 len=33554432
  9. ptn 7 name='cache' start=1191182336 len=335544320
  10. ptn 8 name='private' start=1526726656 len=16777216
  11. ptn 9 name='databk' start=1543503872 len=268435456
  12. ptn 10 name='UDISK' start=1811939328 len=1543503872
  13. Fastboot entered
主机端:
  1. cong@dell:/work/ct$ sudo ./android42/out/host/linux-x86/bin/fastboot devices
  2. 20080411 fastboot
  3. cong@dell:/work/ct$ sudo ./android42/out/host/linux-x86/bin/fastboot flash boot ./android42/out/target/product/sugar-cubietruck/boot.img
  4. sending 'boot' (7698 KB)...
  5. FAILED (remote: data too large, larger than buffer)
  6. finished. total time: 0.007s
板子上的提示是:
  1. getvar
  2. getvar
  3. download
  4. download_size = 2018133165
  5. Starting download of 1924 MB
注意: boot分区是boot.img包括kernel+initramfs
3. 解决方法
主机的上fastboot有个小bug,只需要重新编译主机上的fastboot就可以了.
  1. main 文件在android42/system/core/fastboot/fastboot.c中
  2.     --> fb_download_data 文件在android42/system/core/fastboot/protocol.c中
  3.         中将 sprintf(cmd, "download:%08x", size);
  4.         改为 sprintf(cmd, "download:%08x:", size);
即后面随便加上一个除[0-9][a-f]外的一个字符,这样板子上的fastboot在解析cmd时就不会弄错了



阅读(724) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~