Following previous post, this is step by step porting notes.
- Log in from minicom
- mount /dev/mmcblkop1 -> i use SDCARD to put android data and system.
- i get android android image from : http://androidzaurus.up.seesaa.net/image/android-sdboot-image.tar.gz
- mount it -> mount -o loop android.img androidroot/
- make symbolic link to data and system
ln -s /android/androidroot/system /system ln -s /android/androidroot/data /data
- export android environment variables
export PATH=/sbin:/system/sbin:/system/bin:$PATH export LD_LIBRARY_PATH=/system/lib export ANDROID_ROOT=/system export ANDROID_ASSETS=/system/app export ANDROID_DATA=/data export EXTERNAL_STORAGE=/sdcard export DRM_CONTENT=/data/drm/content
- These steps :
/bin/chmod -R a+rw /data /tmp
/bin/rm -r /dev/log
/bin/ln -s /var/tmp/log log
/bin/rm -f log/*
/bin/chmod -R a+rw /dev/binder
- i forgot these :
copy all android etc file
cp /android/androidroot/etc/* /etc -R
- disable autostart in in /etc/init.rc for dbus-daemon, app_process and runtime.
- chroot to androidroot
run init ./init
- see android home screen on LCD
this is tricky method as i never get android home screen. First running OS is OSELAS with 18.104.22.168 kernel version. The most important thing is about to port binder driver to the kernel so that android runs properly. While binder come with android kernel source which is 2.6.23 version, this is gonna be little bit effort to port binder to lower kernel version. I get patches from Brilliant Service who successfully port android to 2.6.18 kernel (Armadillo). You can get it here Brilliant Service
First i apply all patch and there were too much error related to binder driver and kmem_cache_create. I guess there will be no problem if i don’t apply mxcfb.c patch (some developers said that there must be double buffering) because i get it in mxcfb.c (originally shipped with it’s kernel)
/* Default Y virtual size is 2x panel size */
fbi->var.yres_virtual = fbi->var.yres * 2;
So, i only need to build binder , lowmemorykiller, and android driver. I got compiled kernel and flash uImage to the SBC. Another change in config file is only CONFIG_BINDER=y, CONFIG_ANDROID_RAM_CONSOLE=y and CONFIG_LOW_MEMORYKILLER=y. I added them after make pcm037_defconfig.
Anyway, i did not test more into network and another function. The touchscreen still not working.