Android Eclair Porting for Devkit8000

It's not only for fun! Porting Android is a great practice for me as well. Devkit8000 is a clone of OMAP3 Beagle(Beagleboard), so we can found many porting informations of Beagleboard from internet. It's helpful for us, we only need to deal with a few places which are some differences between Devkit8000 and Beagleboard. Google Android Eclair is working well on the Devkit8000 board now after I tried to port it last weekend.

Here is the patch:
http://people.linux.org.tw/~fred/patches/devkit8000-android-kernel.patch

Based on Embinux, I added the Devkit8000 support, which includes:
  • OMAP DSS Driver for display
    • 4.3 inch LCD Panel support (480x272 60Hz)
    • 7 inch LCD Panel support (800x480 60Hz)
  • Touchscreen ADS7846 support
  • Sound Codec (TWL4030)
  • Keypad (TWL4030)
  • Ethernet Device support (DM9000)
  • Kernel Config for Android

Compile Kernel with Devkit8000 kernel config:
make omap3_devkit8000_android_defconfig
make CROSS_COMPILE=arm-linux-gnueabi- uImage

Kernel Command Arguments to use LCD Display Output:
omapdss.def_disp=lcd

References:

留言

  1. Hi, I am new to Android. The patch you provided is very helpful to me. But I got one problem and you may help me out. After applying this patch, the display always going out from DVI port and blank on 4.3" LCD. Do you have any suggestions? Thanks in advnace.

    回覆刪除
  2. You have to add a option to use LCD driver for your kernel.

    omapdss.def_disp=lcd

    回覆刪除
  3. Thank you for this info. I tried but got the same result. I put it in my bootarg as setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapdss.def_disp=lcd init=/init rootfstype=ext3 rw rootdelay=3 nohz=off androidboot.console=ttyS2

    Is this correct?

    回覆刪除
  4. omapdss doesn't depend on the "video" option, it need to use the omapdss.def_disp directly, just like:

    console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 omapdss.def_disp=lcd init=/init rootfstype=ext3 rw rootdelay=3 nohz=off androidboot.console=ttyS2

    回覆刪除
  5. Hi, can your patch apply to SBC8100 board?

    回覆刪除
  6. Yes and no. I don't have SBC8100 board, so I never test.

    回覆刪除
  7. excuse me, how to apply the patch?
    is it:

    patch -p1 devkit8000-android-kernel.patch

    however, after I run this command, and wait a long long time, nothing happen, the command just suck at that line, do I need to cd into the kernel folder and then apply it?

    回覆刪除
  8. Change to your kernel directory, and then following that:

    patch -p1 < devkit8000-android-kernel.patch

    It it works with success, you can start to compile kernel.

    回覆刪除
  9. Hi did u success play mp3 in devkit8000 with Android Eclair?
    I am using the source from embinux, i have boot up the Android Eclair on my board , however when i play mp3, it have no Sound but the time bar is keep moving.

    回覆刪除
  10. Hi Fred,

    There is a problem getting the eclair manifest from embinux. I have tried for over a week without success. Do you think you could zip your eclair repo tree and make it available via FTP? If you don't have FTP I can provide you one.

    Many thanks
    Michael Hallak-Stamler
    www.xicore-ip.com

    回覆刪除
  11. Hi,
    There is no ALSA audio feature in Embinux branch of Android project, how to add audio capability into your porting? Could you show it step by step for adding audio capability into the Android on DEVKIT8000?

    Thank you.

    回覆刪除
  12. To Hidden:

    Are you sure that ALSA works?



    To mhs,

    It's too large, it is difficult to upload. I think you should try to fetch the source code from embinux repo again. If it still doesn't work, please contact embinux developers.



    Hi GH,

    Just patch your kernel directly. You will get audio to work.

    回覆刪除
  13. Dear Fred,
    I am sure that there is no ALSL supporting in the Embinux branch of Android, for example: there is no alsa-lib and alsa-utils in '/external' folder of Embinux' android, also no alsa_sound in 'hardware' folder, your patch is only did linux kernel patch, not include ALSA patch for Android, then how to make android can playback audio through ALSA driver in kernel?

    回覆刪除
  14. Dear Fred,
    I have patched the linux kernel by your patch, but the audio still cannot playback in linux, I ran alsa_aplay to playback a wav file in the busybox shell, but I found the speaker only produce a 'pop' sound in the begining(Maybe caused by audio output pin turns on), but alsa_aplay still ran in a while until end of wav file, and there is no any error log was produced.

    by the way, I think you miss one important patch for modify beagleboad's code to Devkit8000 version, in the /kernel/sound/soc/omap/omap3beagle.c line 110:
    if (!machine_is_omap3_beagle()) {
    pr_debug("Not OMAP3 Beagle!\n");
    return -ENODEV;
    }

    This code will check the machine type, since your machine type setting is not equal to omap3_beagle, so the rest initial code won't be run.

    回覆刪除
  15. Cool. I'll check that code.

    I think getting ALSA library is easy, you might get it from official Android or other repos.

    回覆刪除
  16. Dear Fred,
    I have tried your patch into linux kernel, but the audio still cannot playback, here are some log information:
    when system booting up:
    Advanced Linux Sound Architecture Driver Version 1.0.18a.
    No device for DAI twl4030
    No device for DAI omap-mcbsp-dai-0
    No device for DAI omap-mcbsp-dai-1
    No device for DAI omap-mcbsp-dai-2
    No device for DAI omap-mcbsp-dai-3
    No device for DAI omap-mcbsp-dai-4

    OMAP3 Beagle SoC init
    TWL4030 Audio Codec init
    asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
    ALSA device list:
    #0: omap3beagle (twl4030)

    And then I use aplay to check the alsa divece available:
    # # alsa_aplay -l

    **** List of PLAYBACK Hardware Devices ****
    card 0: omap3beagle [omap3beagle], device 0: TWL4030 twl4030-0 []
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    # # alsa_aplay -L

    default:CARD=omap3beagle
    omap3beagle,
    Default Audio Device
    null
    Discard all samples (playback) or generate zero samples (capture)

    # #

    There is no other error log during compile and runing aplay to playback a wav file.

    It seems no DAI(Digital audio interface) found during system booting, and no PCM audio interface found during playback audio.

    Do you have any idea to debug it?

    Thank you.

    回覆刪除
  17. hi Fred
    I can't display on 4.3" LCD too.
    Can you help me?
    thanks~

    回覆刪除
  18. Thanks, very useful for me..
    Could you please upload the Android Eclair image you build for Devkit8000?? I will really be pleased..

    and what is the boot configuration you use with Android?

    回覆刪除
  19. Hi!Fred
    I booting my board
    the message show as below

    init: untracked pid 719 exited
    init: untracked pid 747 exited
    init: untracked pid 749 exited
    init: untracked pid 758 exited
    init: untracked pid 767 exited
    init: untracked pid 776 exited

    any suggest?

    回覆刪除

張貼留言

這個網誌中的熱門文章

有趣的邏輯問題:是誰在說謊

Web 技術中的 Session 是什麼?

淺談 USB 通訊架構之定義(一)

淺談 USB 通訊架構之定義(二)

Reverse SSH Tunnel 反向打洞實錄