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:
Compile Kernel with Devkit8000 kernel config:
Kernel Command Arguments to use LCD Display Output:
References:
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:
- Embest DevKit8000 Evaluation Kit
http://www.embedinfo.com/English/Product/devkit8000.asp - Android Eclair Porting Guide to Beagleboard - Embinux
http://labs.embinux.org/index.php/Android-Eclair_porting_guide_to_BeagleBoard
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.
回覆刪除You have to add a option to use LCD driver for your kernel.
回覆刪除omapdss.def_disp=lcd
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?
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
Hi, can your patch apply to SBC8100 board?
回覆刪除Yes and no. I don't have SBC8100 board, so I never test.
回覆刪除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?
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.
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.
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
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.
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.
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?
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.
Cool. I'll check that code.
回覆刪除I think getting ALSA library is easy, you might get it from official Android or other repos.
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.
hi Fred
回覆刪除I can't display on 4.3" LCD too.
Can you help me?
thanks~
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?
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?