2009년 4월 27일 월요일

Android on S3C6410 target board

Long time since we successfully ported Android on PXA270 evaulation board.
As you know, Google opened android full sources last year.
After that, we ported android to various system, and here is one of them, Samsung S3C6410 based target board.



Hardware Spec.
CPU : Samsung S3C6410X ARM1176JZF-S 667MHz Application Processor
Memory: 128Mbytes Mobile DDR, 256Mbytes SLC NAND Flash, 4Mbytes NOR Flash
Display : 5” WVGA(800x480) Color TFT with Touch Screen Interface
Audio : Wolfson WM8960 Audio Codec with 1W Stereo Speaker Amplifier

----

The following are the porting steps.

0. Setting Compiler
- Environment variables for ARM compiler
- export ARCH=arm
- export CROSS_COMPLIE=arm-eabi-
- export PATH=$PATH:(Android Source Directory)/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin


1. Kernel Compile : Android kernel for 6410
- Get Android sources.
- Use patch with this diff file (Should use 2.6.29 kernel version)
- make zImage

2. Android
- Should fix battery and AC power logic with attached source codes.
/hardware/libhardware_legacy/power/power.c
/frameworks/base/services/jni/com_android_server_BatteryService.cpp
- Just make!

3. Sound Driver
- ALSA interface does not recognized in original android source.
So need to fix up followings,
- Apply alsa library , audio interface
- git clone git://android.git.kernel.org/platform/external/alsa-lib.git
- git checkout origin/master ==> copy alsa-lib directory to external directory (cp -a)
- git clone git://android.git.kernel.org/platform/hardware/alsa_sound.git
- git checkout origin/master ==> copy alsa_sound directory to hardware directory (cp -a)
- Modify file "build/target/board/generic/BoardConfig.mk"
- BOARD_USES_GENERIC_AUDIO := false
- BOARD_USES_ALSA_AUDIO := true
- make!

댓글 8개:

Aj :

If i download Android source (1.5), the kernel that i get along with it is version 2.6.27. But your blog mentions 2.6.29. How is that possible? Where do i get a 2.6.29 kerel with Android specific changes in it?

stevec :

Hi,

Nice job on the port.

I wonder does the nand stuff work s3c_nand.c?

It just spews lots of ecc errors. uboot doesn't complain and I was using a different kernel version which was hacked to access the nand without errors.

Also I was surprised that the CONFIG_MTD_CMDLINE_PARTS=y can be set but there is no code to parse it. So I just hacked in my partition values in partition.h and then proceeded along.

Thanks.

123 123 :

Nice post you got here. It would be great to read a bit more about this matter.
BTW check the design I've made myself Female escorts

Framp :

I wonder if you have a opengl driver for s3c6410

I have a samsung i5700 (based on s3c6410) and I'm trying to find a damn 3d driver..
the included one is pretty weak and has several problems

익명 :

Hello, I'm trying to port Android to a specific mobile phone (Acer F900) and it uses the same processor (s3c6410) ... Please can you help me ?
email me yo@aaron.com.es
Thanks! ;)

익명 :

Hello, I'm trying to port Android to a specific mobile phone (Acer F900) and it uses the same processor (s3c6410) ... Please can you help me ?
email me yo@aaron.com.es
Thanks! ;)

Android :

What I want to know is how you managed to enter TEXT in the CustomItem. How did you enable Predictive input and MultiTap for the custom item. Please help me as I have been stuck on this for some time now

Android app developer :

This is such a great resource that you are providing and you give it away for free and I will actually delicious it and I'll suggest to my friends.I apperceive they will absolutely be benefited from this site.