免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sourxsunny
打印 上一主题 下一主题

[驱动] boot.img可以直接boot吗? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2011-06-20 11:55 |显示全部楼层
boot.img是 Android封装的一个image
你可以看到boot.img的 文件头都是Android的信息的
这个你要在build boot.img的地方去看,具体可以参考lk代码
在bootable/bootloader/里面应该可以看到bootloader的代码

论坛徽章:
0
2 [报告]
发表于 2011-06-20 13:58 |显示全部楼层
是的

你的Android的代码里面用的是lk还是别的什么?
里面应该有一个指定ramdisk和kernel的位置的实现

  1. n = ROUND_TO_PAGE(hdr->kernel_size, page_mask);
  2.     if (flash_read(ptn, offset, (void *)hdr->kernel_addr, n)) {
  3.         dprintf(CRITICAL, "ERROR: Cannot read kernel image\n");
  4.         return -1;
  5.     }
  6.     offset += n;

  7.     n = ROUND_TO_PAGE(hdr->ramdisk_size, page_mask);
  8.     if (flash_read(ptn, offset, (void *)hdr->ramdisk_addr, n)) {
  9.         dprintf(CRITICAL, "ERROR: Cannot read ramdisk image\n");
  10.         return -1;
  11.     }
  12.     offset += n;

复制代码
然后在后面的boot_linux里面实现linux的加载,关键的就是boot_linux里面了

  1. boot_linux((void *)hdr->kernel_addr, (void *)TAGS_ADDR,
  2.            (const char *)cmdline, board_machtype(),
  3.            (void *)hdr->ramdisk_addr, hdr->ramdisk_size);

复制代码
然后在boot_linux里面可以看到加载kernel的操作

论坛徽章:
0
3 [报告]
发表于 2011-06-20 14:18 |显示全部楼层
回复  1jjk


    boot_linux是指bootloader?  我用的是redboot,是需要添加参数上去?我现在没有添加什 ...
sourxsunny 发表于 2011-06-20 14:10



你可以直接跑kernel,然后去做个init,去挂载system.img,这个灵活性你可以自己掌握
不过我觉得最好还是有个参考好些
我帖的那段代码能有什么帮助没?

论坛徽章:
0
4 [报告]
发表于 2011-06-20 14:46 |显示全部楼层
不是"一k",是"爱欧k"(little kernel)

论坛徽章:
0
5 [报告]
发表于 2011-06-20 14:53 |显示全部楼层
回复  1jjk


    意思是recovery模式下是进入android的lk?
sourxsunny 发表于 2011-06-20 14:50



    不是的,我说的lk是bootloader,呵呵

论坛徽章:
0
6 [报告]
发表于 2011-06-20 15:49 |显示全部楼层
回复  1jjk


     你的意思是bootloader用appsc里面的bootloader启动?那么跟redboot和u-boot一 ...
sourxsunny 发表于 2011-06-20 15:14


redboot就可以吧
里面你可以加一些解析img的操作,这个估计就得你自己来了
找个其他的开源的android的源代码看看吧,我手里的代码是有开放限制级别的,不能拿出来给你看,只能给你大概的讲一下,能讲的我都讲了,呵呵

论坛徽章:
0
7 [报告]
发表于 2011-06-21 11:45 |显示全部楼层
回复  1jjk


    是lk才可以解析boot.img?但好像只有msm和omap的芯片有lk啊...我现在用的是freescale
sourxsunny 发表于 2011-06-21 10:44



    可以分析一下msm或者omap怎么解析的,然后在redboot上实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP