打印
[技术问题解答]

i.mx6 在uboot命令终端mmc使用,emmc烧写分区

[复制链接]
5403|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Eagle-daoming|  楼主 | 2015-4-23 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,小弟在此请教啦!!!弄了好久都没弄出来。
问题描述:
             我在i.mx6的uboot命令终端用命令 mmc write 3 0x10900000 0xC000 0xA0000  烧写
system.img文件  但是烧写玩之后安卓系统起不来。系统能运行到kernel这边,但是到了system.img就卡住了。我看MFG_tools工具烧写的分区就是 Device Boot Start   End    MiB    #blocks   Id  System
/dev/mmcblk0p1         8     15      8       8192   83  Linux
/dev/mmcblk0p2        16     23      8       8192   83  Linux
/dev/mmcblk0p3        24   3151   3128    3203072    5  Extended
/dev/mmcblk0p4      3152   7563   4412    4517888    b  W95 FAT32
/dev/mmcblk0p5        24+   535    512-    524287+  83  Linux
/dev/mmcblk0p6       536+  1047    512-    524287+  83  Linux
/dev/mmcblk0p7      1048+  3095   2048-   2097151+  83  Linux
/dev/mmcblk0p8      3096+  3103      8-      8191+  83  Linux
/dev/mmcblk0p9      3104+  3111      8-      8191+  83  Linux

我system.img是按照下面这行来做的。
<CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p5 bs=512" file="files/android/system.img">Sending and writting system.img</CMD>
但是就是起不来 。在这问一下:第五个分区起始地址是24M吗?  24+是什么意思呢?

相关帖子

沙发
Eagle-daoming|  楼主 | 2015-4-23 21:33 | 只看该作者
MFG-TOOLS的烧写工具是这样烧写的:
<LIST name="Android-SabreSD-eMMC" desc="Choose eMMC android as media">
  <!-- Android Profile: -->
        <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-mx6q-sabresd.bin" >Loading U-boot</CMD>
        <CMD state="BootStrap" type="load" file="uImage" address="0x10800000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>
    <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD>
    <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
        <CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16">clean up u-boot parameter</CMD>
        <CMD state="Updater" type="push" body="$ echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">access boot partition 1</CMD>
        <CMD state="Updater" type="push" body="send" file="files/android/u-boot.bin">Sending U-Boot</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD>

        <CMD state="Updater" type="push" body="$ echo 8 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config">access user partition and enable boot partion 1 to boot</CMD>
        <CMD state="Updater" type="push" body="send" file="mksdcard-android.sh.tar">Sending partition shell</CMD>
        <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
        <CMD state="Updater" type="push" body="$ sh mksdcard-android.sh /dev/mmcblk0"> Partitioning...</CMD>

        <CMD state="Updater" type="push" body="$ ls -l /dev/mmc* ">Formatting sd partition</CMD>

        <CMD state="Updater" type="push" body="send" file="files/android/boot.img">Sending kernel uImage</CMD>
        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0p1">write boot.img</CMD>
        <CMD state="Updater" type="push" body="frf">flush the memory.</CMD>

       
        <CMD state="Updater" type="push" body="$ mkfs.ext4 -b 4096 -m 0 /dev/mmcblk0p4">Formatting data partition</CMD>
        <CMD state="Updater" type="push" body="$ mkfs.ext4 /dev/mmcblk0p5">Formatting system partition</CMD>
        <CMD state="Updater" type="push" body="$ mkfs.ext4 /dev/mmcblk0p6">Formatting cache partition</CMD>
        <CMD state="Updater" type="push" body="frf">flush the memory.</CMD>
        <CMD state="Updater" type="push" body="$ mkfs.ext4 /dev/mmcblk0p7">Formatting device partition</CMD>
        <CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p5 bs=512" file="files/android/system.img">Sending and writting system.img</CMD>
        <CMD state="Updater" type="push" body="frf">flush the memory.</CMD>
        <!-- Write userdata.img is optional, for some customer this is needed, but it's optional. -->
        <!-- Also, userdata.img will have android unit test, you can use this to do some auto test. -->
<!--        <CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p7" file="file/android/userdate.img"> Sending userdata.img(optional) </CMD>
        <CMD state="Updater" type="push" body="frf">flush the memory.</CMD>  -->
        <CMD state="Updater" type="push" body="pipe dd of=/dev/mmcblk0p2 bs=512" file="files/android/recovery.img">Sending and writting recovery.img</CMD>

        <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>

        <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>




但是所以我把system.img烧写在了第五分区的24M为起始地址,这样做对吗?第五分区的地址是否正确呢?是24M吗?

使用特权

评论回复
板凳
734774645| | 2015-4-23 22:57 | 只看该作者
好多平板用emcc,但是人家说没有固态好。不知道哪个好

使用特权

评论回复
地板
mintspring| | 2015-4-23 23:45 | 只看该作者
你试试就知道对不对了

使用特权

评论回复
5
Eagle-daoming|  楼主 | 2015-4-24 08:36 | 只看该作者
mintspring 发表于 2015-4-23 23:45
你试试就知道对不对了

试过了,但是烧写到24M这个地方之后, 安卓系统就起不来了,但是kernel是可以起来的。所以不知道这个system.img该烧写到什么地方。求大侠指教。

使用特权

评论回复
6
Eagle-daoming|  楼主 | 2015-4-24 10:51 | 只看该作者
呼唤飞思卡尔工程师啊!!!!

使用特权

评论回复
7
afei8856| | 2015-11-18 16:50 | 只看该作者
@Eagle-daoming 你是怎么通过emmc烧写文件系统的?

使用特权

评论回复
8
mobz| | 2015-11-19 10:19 | 只看该作者
你这个问题搞定了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

35

帖子

0

粉丝