m5_rc14 works on my Zaurus C3000

I experimented double buffer and pan in pxafb.c and it works for me. Very first time I saw the new tile menu on my Zaurus.
m5_rc14-home.png     m5_rc14-poweroption.png
Cursor keys work weird and something very funny with key board. I need to check key codes again to see how to fix it.

Anyway, this is my implementation of double buffer. Any suggestions to make it better are always welcome.
o pxafb-doublebuffer.patch

I referred this post in a mailing list to get some ideas how to implement a pan function.
posted by 安藤恐竜 at 16:43 | Comment(11) | TrackBack(0) | 日記
Comments for this entry
I guess key events are sent twice at a time.
Posted by androidzaurus at 03/02/2008 17:23
Thanks for all the hints here, especially the double buffer one. This was the trick to get OMAP5912 OSK working as well. Okay, not really "working", more or less proof of concept. With only 32MB it starts after some time, but isn't really usable. Anyway:

Posted by Dirk at 03/05/2008 03:35

Glad to know my posts give some help. And congratulations for booting m5-rc14 up on OMAP.

Did you try lowmemorykiller? It may help or may not.
Posted by androidzaurus at 03/05/2008 15:55
Seems that I again need a hint ;) Any link how to use lowmemorykiller? Haven't looked into the code yet.

Btw.: Any experience of power management handling of Android and related stuff in kernel?

One user reports on OMAP while Android starts it goes to suspend mode and never wakeup. I saw similar


but could prevent going to sleep by pressing button from time to time:

android sleep state 0->2 at xxx

-> ressing a button results in a

android_power_wakeup 2->0 at xxx
Posted by Dirk at 03/07/2008 01:45
lowmemorykiller can be found in drivers/misc/lowmemorykiller. It's not in the vanilla kernel, only in the Google's kernel tree.

In .config, say CONFIG_LOW_MEMORY_KILLER=m. Then insmod lowmemorykiller.ko before starting Android.

Regarding power management. I used to see messages similar to yours;
android sleep state 0->2 at xxx

Somehow it's gone. My guess is;
1) Without double buffer support in frame buffer driver, Dalvik fails to finish his job.
2) Initialization doesn't go through.
3) Current Android is configured for the emulator, which means power is always on.
4) In initialization, power is fixed to some value.
5) If initialization fails, power is not set to good state.
6) Android tries to go sleep.

In android-root/qemu-init.sh, there are a couple of setprops for status.battery. It may give some idea. Note that setprop/getprop only works after android-root/init finishes his job.

Posted by androidzaurus at 03/07/2008 09:10
qemu-init.sh is in android-root/etc, not in root.
Posted by androidzaurus at 03/07/2008 09:25
Just for your information, Android patch from git (but read the notes in Brians mail):


Posted by Dirk at 04/03/2008 01:40
Thanks, Dirk. I'll dig into it if as soon as I find myself spare time.
Posted by androidzaurus at 04/03/2008 07:21
i can start android 0.9 beta in my HW, but it enter suspend mode. then i push the button,it wake up. but i can not wake up again after 5 minutes , even if i push any button . what' s wrong
Posted by suspend mode at 09/18/2008 12:22
Re power suspend: "echo foo > /sys/android_power/acquire_partial_wakelock" should keep the device from going to sleep (I haven't tried a zaurus, but it works on other hardware).
Posted by finsko at 01/20/2009 05:35
Thanks, finsko

I noticed that same technique is used in init.eee_701 of cupcake branch. I guess it should work for any Android devices.
Posted by androidzaurus at 01/20/2009 09:47
Leave your comment
Name: [Must]

EMail: [Must]

URL: [Must]

Comment: [Must]

Confirmation Code: [Must]

Type in alphabets what you see in this image.

Trackbacks to this entry