Building and Flashing ROM for PandaBoard ES

按照说明进行烧录自己build的ROM到板子上,具体build的方法参见
http://source.android.com/source/building-kernels.html
http://source.android.com/source/building.html
这个过程比较简单

接着参照
$ANDROID_GIT_HOME/device/ti/panda/README
连接好需要的线缆
RS232串口线不是必须的,但是有了它并通过putty之类的工具很容易的观察板子处于什么状态,如果你特别有经验可以不用这个,一般开始弄的话,有它比较方便
putty操作很简单,选中Serial并设置
line /dev/ttyUSB0/
speed 115200
就可以了

开始烧录的时候就会出现很多的问题了,首先PandaBoard是没有embedded的存储区来存放bootloader这些程序
所以需要把这些基础的程序烧到SD卡上

第一个要用到的工具就是usbboot,从usb载入bootloader,但是不幸的是aosp原生提供的usbboot是X64的,在32位的机器下无法使用

好在有omap4boot

git clone https://github.com/swetland/omap4boot/
cd omap4boot
export PATH=$(TOOL_CHAIN_HOME)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
把toolchain加入到当前PATH变量中开始build,但是可能会出现SIGNATURE VERIFICATION FAILED
这个时候就需要按照
https://github.com/swetland/omap4boot/issues/7
来解决这个问题

这样就可以让板子进入fastboot模式,详细可以参考
http://android-yfchung.blogspot.com/2011/11/android-40-ice-cream-sandwich-on.html

但是README当中有说到
hold GPIO_121 and press PWRON_RESET
就可以进入fastboot模式,但是我折腾了很久,表示很难进入,还期望哪位高人指点下。
我最终的办法是按照http://android-yfchung.blogspot.com/2011/11/android-40-ice-cream-sandwich-on.html当中说的usbboot就已经进入fastboot模式
也就可以不需要用GPIO_121 + PWRON_RESET

烧录整个ROM的时间会有点长,只要不出错就表示还在执行,所以还是要耐心等待等待。

UPDATE:
2012-09-06
增加文中所提到网页的本站备份文件供无法打开的同学使用
http://guoh.org/lifelog/wp-content/uploads/2012/09/Android-Developing-Note-Android-4_0-Ice-Cream-Sandwich-on-Pandaboard.zip

2013-07-03
PandaBoard按HW key进入bootloader
前提是必须放一张SD卡(fastboot oem format的或者是在PC上format成FAT或者EXT4都可以)到板子上,然后在板子通电的时候按GPIO_121,就像Eric说的那样,时机很重要,我实验的时候就像在通常PC上面进入BIOS一样,多按几次GPIO_121,应该就可以进入fastboot。
这样就应该可以不需要usbboot了。

20 thoughts on “Building and Flashing ROM for PandaBoard ES”

  1. 你好,最近我也在玩pandaboard ES,ubuntu 12.04 x64中已经编译android成功了,但是在sudo ./usbboot ./bootloader.bin时遇上了无法连接的问题,一直显示:”waiting for OMAP44xx device”。不知道你又没有遇上这个问题,怎么解决的?
    我已经在/etc/uddev/rules.d/51***中配置了USB。

      1. 我刷linaro版本是OK的,omap4boot我也下下来了,但是不知道接下来如何操作,能否简单介绍一下操作步骤及相应命令?谢谢。

        omap4boot需要放到android源码根目录吗?

        1. 理论上不需要,我们用omap4boot主要是为了编译一个能用的usbboot,只需要把这个编译出来,放到某个地方就行。

          我自己是放到了$ANDROID_GIT_HOME/framework/device/ti/panda这个文件夹下,主要是为了和原生提供的统一而已

      2. 我已经把omapboot刷进板子了,之后按power键重启后插入sdcard,fastboot又卡在wait for device上了,请问操作步骤有什么问题吗?

        1. 你如果是想进fastboot的话,就按照我这篇文章最后说的方法。
          README上的那个操作过程我也没有成功
          “我最终的办法是按照http://android-yfchung.blogspot.com/2011/11/android-40-ice-cream-sandwich-on.html当中说的usbboot就已经进入fastboot模式”
          访问这篇文章需要翻墙。。。

          1. 能否留个联系方式,我照那篇帖子试了,步骤是这样的:
            1,make编译omap4boot,生成了usbboot
            2,拔掉开发板中sdcard卡
            3,执行sudo ./usbboot android_ICS/device/ti/panda/bootloader.bin
            (第三步出现两种情况,一种是开发板上灯灭了,一种是没有灭)
            3,执行sudo android_ICS/out/host/linux/bin/fastboot devices没有任何反应
            4,插上sdcard卡,执行3,也没有任何反应,输入sudo android_ICS/out/host/linux/bin/fastboot oem format一直在wait

          2. 拔除sdcard,按power重启后用omap4boot的usbboot刷入android源码中bootloader后出现如下信息,然后开发板上灯灭了:
            using built-in 2ndstage.bin
            reading ASIC ID
            CHIP: 4440
            IDEN: 0000000000000000000000000000000000000000
            MPKH: 0000000000000000000000000000000000000000000000000000000000000000
            CRC0: 229e85ba
            CRC1: 00000000
            sending 2ndstage to target… f0030002
            waiting for 2ndstage response…
            sending image to target…

          3. 你好,你说的网址http://android-yfchung.blogspot.com/2011/11/android-40-ice-cream-sandwich-on.html,我试了都打不开,能不能把帖子的内容在这里贴一下,谢谢啦!

  2. 正在研究pandaboard,就是进不入fastboot模式,非常高兴看到您这篇文章,但是我翻不了墙,打不开这个网页http://android-yfchung.blogspot.com/2011/11/android-40-ice-cream-sandwich-on.html,你能不能将该网页内容发一份给我邮箱:459061090@qq.com,非常感谢您!谢谢

  3. 大侠,方便的话,也请将网页http://android-yfchung.blogspot.com/2011/11/android-40-ice-cream-sandwich-on.html内容发份给我,邮箱280842458@qq.com。。感激不尽!

  4. 您好,正在使用这块板子,遇到这个问题,恳请能具体介绍一下omap4panda是如何使用的,非常谢谢!

  5. @leon
    你的fastboot devices看不到device信息,应该是你第3步执行的有问题。
    正常来说你第3步执行成功的话,应该就是fastboot模式下了。

    我周末有空的话,我再烧一边看看能不能有你这样的问题。
    我有RS232串口线,可以看到板子的状态,以及出了什么问题,所以相对来说容易点。

    @mage @David
    我发了一份网页内容到你们的邮箱了。
    至于omap4boot这个东西也没啥好介绍的,看看github上官方的介绍就懂了。
    原因就是这块板子没有内置的bootloader分区,就无法加电之后,进入bootloader然后引导操作系统启动
    所有的分区,包括bootloader分区都是在sd card上的。
    所以先要有个东西把bootloader的东西烧到sd card上,这个东西就是usbboot,也就是本文中用的omap4boot,这样所有的过程就串起来了(usb —> bootloader —> OS)

    抱歉各位,这段时间比较忙,所以各位提出的问题我都回复的比较慢

  6. Hello guohai,
    Sorry to input in English since this computer are not allowed to inputing Chinese.
    I have built Android for Pandaboard ES. But when I do ‘flash oem format’, the partition of the SD card seems to be wrong. Could you plz tell me the name. format and size of your SD card’s partition are?
    Waiting for your reply, Thank you very much.

  7. README 中提到:
    hold GPIO_121 and press PWRON_RESET

    我的pandaboard board es 上面標示的是 GPIO_113, 不過我想應該作用是一樣的.

    方法是: 先按PWRON_RESET, 讓在SD 卡上的u-boot 跑起來, 當rs-232 log 一出現, 馬上按下 GPIO_113, 因為 u-boot 裡的code 此時才會去偵測 GPIO key 是否被按下.
    Timing 很重要, 如果過了判斷的時間, 再去按GPIO_113 也無法進到 fastboot mode了.

    log as below:

    Starting OS Bootloader from MMC/SD1 …

    U-Boot 1.1.4-g92402c48-dirty (Dec 22 2011 – 10:59:42)

    Load address: 0x80e80000
    DRAM: 1024 MB
    Flash: 0 kB
    Using default environment

    In: serial
    Out: serial
    Err: serial

    efi partition table:
    256 128K
    512 256K
    2048 8M
    18432 256M
    542720 256M
    1067008 512M
    2115584 6567M
    Net: KS8851SNL
    Panda: GPIO_113 pressed: entering fastboot….
    I2C read: I/O error
    Device Serial Number: 11AC000200000001
    Fastboot entered…

Leave a Reply

Your email address will not be published. Required fields are marked *