For those of you using the OpenEmbedded build system I made it extra easy. Just download and extract the archive with patches into the OpenEmbedded directory structure, setup your system to use the linux-rp-2.6.23-r32 kernel and (re)build the kernel by issuing the bitbake -c rebuild linux-rp command.
If you haven't setup your OpenEmbedded build system yet, but would like to, you can checkout the Poky development system by running svn co http://svn.o-hand.com/repos/poky/trunk poky. Setup the system by following the README file. After that, extract the archive with patches into the OpenEmbedded directory structure, and build the kernel.
I included the kernel configurations I used for both the Zaurus Spitz and Akita devices.
For those of you adventurers using a different build system (why would you) or for those of you who just need the code for the panning support in the pxa2xx framebuffer code, replace the pxafb.c file from the vanilla kernel with the file here and build your kernel.
[ 6 comments ] ( 211 views ) | permalink | ( 3 / 2258 )
the link in the menu on the left. Unfortunately I had to replace the previous M3-RC37 release because of lack of disk space.
Please report any problems, and of course any reports on successful installation are welcome as well ;-)
[ 3 comments ] ( 150 views ) | permalink | ( 3 / 2230 )
It's too late now, I have to leave it for later. Sorry to keep you all waiting so long. I'll get me a new card tomorrow, do the testing, and hope to get the image up as soon as possible.
[ add comment ] ( 10 views ) | permalink | ( 3 / 2101 )
android-root.tar.gz). Same installation instructions apply, so please see the instructions in the previous post. Strange thing for me when testing the image was after startup the screen stays black. When pressing any key the boot process continues. I don't know why this is. When time permits I'll try to fix this.
[ 5 comments ] ( 201 views ) | permalink | ( 3 / 2108 )
I'm currently unable to upload a new version, so it will have to wait until tonight. Sorry for the inconvenience!
[ add comment ] ( 4 views ) | permalink | ( 3 / 2057 )
UPDATE: There are problems reported using the M5-RC14 release. I'm currently investigating the issues. More on this later.
[ add comment ] ( 4 views ) | permalink | ( 3 / 1938 )
Poky 2.6.23 kernel with a copy of the Android OS from the SDK (qemu) emulator.
Installation on the Zaurus is done in the usual way:
1. Download the following files and copy them to a SD card.
2. Remove battery and power adapter cable
3. Wait for 5 seconds
4. Replace battery, close and lock battery cover
5. Attach power adapter cable
6. Keep OK button pressed while pressing on/off switch
7. From the Japanese menu, choose option 4 (Update), then 2 (SD) and finally Y
Flashing starts, and you are asked if you want to flash the kernel, if you want the microdrive to be formatted and if you want the root filesystem to be installed.
Accept all questions answering them with y
After flashing is complete, the machine is rebooted. Login with root and type /start to start Android.
Have fun, and let me know if you like it ;-)
[ 6 comments ] ( 320 views ) | permalink | ( 3 / 2053 )
After hours of spitting through traces trying to resolve all errors and searching for differences between the emulator and the Zaurus my conclusion was that the main difference was the way the framebuffer was used. Android uses a panning mechanism (page flipping) for screen updates, and this is currently unsupported in the default pxa2xx framebuffer code of the linux 2.6.23 kernel.
So I tried to add panning support to the framebuffer code, and with success! It needs some debugging though, because there are still some minor problems with the screen updates, but hey, the saga continues, Android on the Zaurus still seems to be a perfect match!
A few quick shots taken with my camera:
Android booting The Android desktop The great map program (Still don't know how it located me) The web browser
[ 6 comments ] ( 153 views ) | permalink | ( 3 / 1934 )
So I fiddled a bit with the Android emulator tonight. I thought it might be interesting to see what the differences are between running Android on the emulator and on the Zaurus.
I modified ramdisk.img a bit, so Android doesn't starts up automatically in the emulator and I've also added strace to the image, which can be found in the root(/) directory. The emulator can be started using the modified image by running:
emulator -debug-kernel -console -ramdisk cortez.img
Now the emulator boots up and ends with a prompt. At that point, start Android by running:
# strace -ff -F -tt -s 200 -o /data/log-zygote.txt /system/bin/app_process -Xzygote /system/bin --zygote &
# strace -ff -F -tt -s 200 -o /data/log-runtime.txt /system/bin/runtime &
This creates lots of log files, which now can be compared to the Zaurus log files. My logs can be found here
[ add comment ] ( 3 views ) | permalink | ( 3 / 1818 )
Yesterday I took some time to set up all the tools needed to see whether or not the latest emulator image could be ported to the Zaurus easily.
First I investigated the emulator a bit using the adb-debugger. An important change can be seen when running mount
rootfs / rootfs rw 0 0
/dev/pts /dev/pts devpts rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/tmp /tmp tmpfs rw 0 0
/dev/block/mtdblock0 /system yaffs2 rw,nodev,noatime,nodiratime 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nodev,noatime,nodiratime 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nodev,noatime,nodiratime 0 0
/tmp and /cache are added since the previous version, so we have to add them to the Zaurus image as well.
Next thing I did was to rip the emulator file system. This can be done easily by pushing the binutils package to the emulator and archiving the /system, /data and /cache directories using the adb shell command.
Having that, I downloaded the Linux 2.6.23 Android M5-RC14 kernel and created a diff file against a vanilla 2.6.23 kernel to see the specific Android changes.
Since kernel debugging isn't exactly one of my favorite hobbies, I then created a complete Zaurus (Spitz) image with the kernel used in the previous Android release, just to see what it did. Well, this ends up with a black screen, no bouncing red ball, nothing.
Setting the logging level to 7 or 8 shows lots and lots of errors, mostly related to the binder block device. I guess that's were most changes took place.
I am now in the process of applying the kernel changes. This is rather time consuming, so this could take a while longer. Unfortunately I don't have that much spare time currently. I know AndroidZaurus is also working on this, so maybe we could make this a joined effort .
[ add comment ] ( 3 views ) | permalink | ( 3 / 1729 )