Wednesday, July 1, 2009

First AxDroid Alpha Image

I know it has been a long time but finally I was able to prepare an alpha image of AxDroid. It's basically the same thing that I showed on my video. I worked on bluetooth and sound for some time, but still they don't work.

So to summarize this alpha has the following basic features:
- Tested and works only on Dell Axim x51v (Please be careful about the exact version!)
- Based on Android Cupcake 1.5-r2
- Kernel 2.6.29 (original cupcake has 2.6.27)
- Boots through HaReT from WinMo
- Touchscreen works (can be improved a little bit)

Not working:
- Power Management
- Audio
- WiFi
- Bluetooth
- 3D Chip
- Compact Flash (actually did not try this)

Basic Instructions:

WARNING! - All of the information, instructions, and recommendations on this web site are offered on a strictly "as is" basis. This material is offered as a free public resource, without any warranty, expressed or implied. In particular, any and all warranties of fitness for use or merchantability are disclaimed. By installing and running AxDroid, you accept all the responsibilities, including damaging your device.

This process could probably be made easier for you to try the alpha image, but right now this is what I can do with my limited time. First of all Linux is your friend. Probably you won't be able to install this image without Linux.

You will need a spare SD Card of at least 250 MB to try this. I recommend you format it completely. You have to create the following 3 partitions on your SD Card.
If you have a larger card you can increase the EXT3 partition freely, which will be the root partition.

/dev/sdb1 - 40 MB FAT32
/dev/sdb2 - 150 MB EXT3
/dev/sdb3 - 64 MB Linux SWAP

The following files should be downloaded and copied to your FAT32 partition on the SD Card (sdb1).
The following file is to root filesystem. You should download and extract it in the EXT3 root partition on the SD Card (sdb2).
You can use the following command to extract (assuming sdb2 is mounted on /mnt/sdb2)
# tar -C /mnt/sdb2 -zxvf axdroid-0.1-alpha.tar.gz
Now insert your SD Card into your Axim x51v. You must enable Mirror Mode from WinMo Settings before starting HaReT or you will only get black (or white) screen.

Now start the haret-0.5.2 executable from WinMo. Then press RUN and enjoy AxDroid :)

That's it! I hope it's helpful.

About the future of the project

I have bought myself a shiny new HTC Magic :). So I lost some of my enthusiasm for working on this project. But I will provide the source code, in case someone else is interested in working on it. Anybody has some idea of how I can provide the code? Basically I have some changes on the android source code base (it's huge! Talking gigabytes...). But most of the patches are on my local git repository of the android-2.6.29 kernel branch. Any suggestions would be helpful for that matter.

61 comments:

  1. Error downloading, permission error for files:

    * default.txt (HaReT configuration)
    * zImage (the kernel)
    * haret-0.5.2

    ReplyDelete
  2. Sorry for that, try again please...

    ReplyDelete
  3. Exciting news - but I, too, am getting a 403 Forbidden on the three files that go onto the FAT32 partition. Can't wait to try it out...

    ReplyDelete
  4. now fine thanks :D, going to test it...

    ReplyDelete
  5. Yep, working here too... I'll try it as soon as I get home from work...

    ReplyDelete
  6. I have it working with android, so sadly that wifi not work but run fine thanks.

    ReplyDelete
  7. It works also in Axim X50v. Touchpad is less than usable, but it's a well known problem of HaRET (see HaRET webpage) but I can use the direction/accept buttons. Great job! Is there any way to recalibrate touchscreen in Android?

    ReplyDelete
  8. It worked on my Axim X50v too... Great work! When a beta version? :P

    ReplyDelete
  9. Awesome work man, I really hope you keep with it, or perhaps someone else can pick up where you've left off.

    ReplyDelete
  10. stupid question - but can this be run on top of winmo - keeping winmo in place?

    ReplyDelete
  11. eTaTuS, did you have to make any changes to get it to run? It doesn't seem to want to run on my X50v - but that could be because I'm running WinMo 6 on it. Which version of WinMo are you running?

    Dan, the instructions above are for running it from on top of WinMo - at present, we haven't got a ROM image to wipe WinMo from the device... I haven't got it running properly on my X50v yet, but I assume all you'd need to do to return to WinMo would be to hit the reset button on the back of the device (that's how I get back out of the stuck partial boot).

    ReplyDelete
  12. Works great on my Axim X51V.

    Maybe put up just the diffs on source?

    ReplyDelete
  13. Hm, I still can't seem to get it to boot on my X50v - it gets to the Android logo, which animates for a few seconds, then freezes for a second or two. The screen then VERY quickly flashes some text, then goes back to the Android logo - animated again - and it starts again, with the text growing two lines each time.

    It took a while, but I finally managed to catch what the text said (by videoing the boot sequence, then slowing down to 0.03x and taking a screenshot of the single frame where it was readable). It says:
    [timestamp] aximx50 LCD power off
    [timestamp] aximx50 LCD power on

    It just sits looping through this for as long as I leave it - leaving me with no option but to press the reset button and start all over again.

    If anybody has any ideas, I'd be most grateful.

    ReplyDelete
  14. I've tried it in WM5, and works, but the touchscreen is unusable. Android swaps x and y coordinates, so if i drag an icon along x axis, it moves in the y axis... curious... and funny!

    ReplyDelete
  15. Paul, have you enabled mirror mode? I don't know what else the problem can be. I use wm6.1. I don't think that it will matter.

    Touchscreen definitely works on x51v on a usable level. Don't know about other axim models.

    ReplyDelete
  16. Anyway to install applications yet?

    ReplyDelete
  17. Yes, I have mirror mode enabled. Also, should it be showing the Android loading screen from the video? I get a different one - Android logo without the + symbols, with a beam of light sliding along it repeatedly.

    Are you able to post MD5s for the files, so I can confirm that everything downloaded properly?

    ReplyDelete
  18. Looks like I got a bad download of the main .tar.gz the first two times I tried - I had been extracting it using a gui tool and then copying it over, so I didn't get the warning that it had hit an unexpected EOF. I've downloaded it again, and it's now working - thanks!

    If you're able to post diffs for your changes to the code, and preferably some instructions on setting up the environment and applying your diffs, that would be fantastic.

    ReplyDelete
  19. Also, as I'm using an X50v, I'm having the problem with the touchscreen coordinates being swapped, as per TioRuben's comment - if anybody has a fix for this, I'd be very grateful.

    ReplyDelete
  20. I've uploaded a video to youtube with the results: http://www.youtube.com/watch?v=ghDDdGfsK50

    ReplyDelete
  21. I can't believe the sources are gigabytes in size. Could you please publish the sources or diffs online?
    Maybe you can host it at:
    http://code.google.com/intl/nl/projecthosting/

    ReplyDelete
  22. After some pretty extensive googling, I've finally found a possible solution to the X50v touchscreen inversion - but it's going to require access to the source so we can recompile:
    You need to invert the READ_X and READ_Y calls in drivers/input/touchscreen/ads7846.c for the ts->read_x and ts->read_y values.

    Ertan, if you can't work out a good way to share your changes yet, would you be able to compile us an X50v version by making the above change? If there's a single file that ends up different, you could even provide just that file as an X50v alternative, and let us know where it lives so we can overwrite it...

    ReplyDelete
  23. Meeuw: yes, the uncompressed source code of Android is about 4GB. I think Ertan will publish it in the "official" android git when everything goes well. Also, the compilation takes about 4 or 5 hours in my computer (1.8GHz Dual Core with 2GB RAM and Ubuntu 9.04). So... patience...

    ReplyDelete
  24. Great job. Can you please post your .config so that I can compile a kernel for the x50v and try to figure the display/touchscreen issue? That would be great!

    Thanks for this effort !!!

    Chris

    ReplyDelete
  25. No worries, I extracted config with extract-ikconfig. Now building... :)

    ReplyDelete
  26. Not exactly building. Can you please give more details which kernel you're building? The .config from that kernel doesnt seem to apply to vanilla and/or android git. A couple of params get wiped out especially CONFIG_CPU_32v5 etc, so the whole build doesnt even kick in.

    Thanks,

    Chris

    ReplyDelete
  27. You cannot compile a normal kernel with that .config file alone. It's useless. You need the Axim patches. I will figure out the best way to do that soon.

    ReplyDelete
  28. Great job Ertan! I am an enthusiast of Android, although not programmer ... I have an Axim x51v and I'm very excited to test the alpha image on it! keep it updated!

    ReplyDelete
  29. This is awesome, Ertan! I have an x50v that I'd love to get Android running on. Have you looked into Launchpad or Google Code for hosting your code? Posting the diffs would probably be easiest, though.

    ReplyDelete
  30. Ertan, thank you! Have it working on a x51v without any issues.

    Also, tried it on the following models:

    x50 -- resolution isn't right, if you take the regular home screen and divide it into 4 quadrants, all you see with the x50 is the first quadrant, but hey it boots and seems functional if the display could be corrected

    x30 -- would not load, blank screen immediately

    x3 -- would not load, a few boot messages were seen but appeared to halt after the 4th one

    I also have an x5 laying around but no power cable to charge the dead battery, if I find it I'll give it a try and report back.

    Thanks again, this is pretty cool. Also, enjoy the HTC Magic. I hope someone is able to take over the project and move it along a bit further, atleast enough to get WiFi working? Please :)

    ReplyDelete
  31. Hi, I am thankful to you guys for letting me try this image.
    Ertan, thanks to you~!
    But I have a problem, I can run anything with Haret on my AXIM X50V, but not android, it says jump to kernel and stays there, without mirror mode, and with mirror mode, the windows mobile 6 stucks at Haret booting, in windows.
    Any ideas?

    FInally, the tar.gz file, when extracted can't find something error, but probably extracts all of it to the sd card, since, I see 36 mb files in there.

    ReplyDelete
  32. ozdemirhan, you might want to try downloading it again - I had issues extracting it the first couple of times I downloaded it, but then the third download gave me a clean extraction. It wouldn't boot for me from either of the first two attempts, but the third one with no extraction errors worked like a charm.

    ReplyDelete
  33. This is awesome. I tried it on my X50v and had some problems with the display mentioned here. I hope there will be an update for it soon =) Great job.

    ReplyDelete
  34. thanks for the comment Paul, but now i am stuck at android image at the boot. i changed sd card to have this, i think it is working but i don't know why it shows lcd on/off in the middle of android logo. i am running winmo6.

    ReplyDelete
  35. Any chance to make it work on the x50 (not v)? it's exactly what I need - to run android without losing winmo. I run winmo 6.1, and it's an axim x50 mid.

    ReplyDelete
  36. ozdemirhan, that sounds like exactly what I was getting with the bad download. Check the MD5 of your axdroid-0.1-alpha.tar.gz - the MD5 of my (working) copy is:
    558436b3dbdd1e5c6f181f8c28685044

    ReplyDelete
  37. Alright, let me try again... I will let you know soon, I hope it works, it will make my axim useful again :) Hope there was a way to use wireless and all those stuff, I am pretty knowledgable about the linux and stuff, but I don't know why this happens. Let's see.

    ReplyDelete
  38. whoooo you were right paul, I downloaded with wget this time, and there it is. I love the bash terminal :D
    thanks.
    To other people who are downloading the tarball, be careful, download with wget or sth.
    the x50v, does have stylus issues/beware. other than that, it is pretty responsoive.

    ReplyDelete
  39. Oh man.. I hope someone can figure out a way to get the wifi working. It would make my axim useful again!

    ReplyDelete
  40. I get kernel panic. No init found. HELP!

    ReplyDelete
  41. ditto that.. only if wifi worked...

    ReplyDelete
  42. First, great job! Would it not be a good idea to create a fourth partition and mount this as the SD card that android wants? Anyone who knows what mount point android is looking for?

    ReplyDelete
  43. yeah, great idea, I wish one could send this discussion and link it to a forum, too! I wish I could help developing this.

    ReplyDelete
  44. Could you please upload kernel patches to some git hosting like github.com ?

    ReplyDelete
  45. That is extremely cool, android runs very nicely on the x51v, shame about the missing hardware support, I guess thats life until it's hacked a little more, first thing which would be awesome is usb support as it would speed up development lots

    ReplyDelete
  46. It has ethernet over USB support. Just configure the adaptor to 10.0.0.1 and it should work. Once the axim has booted axdroid, reseat the device in the cradle and it should appear as a new device. If you are using windows then load the linux.inf for the usb gadget device.

    ReplyDelete
  47. I followed the instructions, but my X51v can't read the SD card after formatting. I get "Do you want to format this storage card to make it readable? This will permanently delete any files on the card."
    I've formatted it with GParted. Tried to change the FAT32 partition to FAT16, but no luck.

    ReplyDelete
  48. Could this be made to work on the x51 (not x51v) or is there a serious limitation that avoids that?? The x51 doesnt have the mirror mode option, so I dont know if I would get anywhere.

    Im trying to boot on it (the x51), but I get the boot messages (partially, its like Im seeing the upper right section of the full display) but then it gets stuck at some point. Are there boot logs saved anywhere in the sd card after a boot attempt??

    Id like to see this thing in more detail. Also see if another hardware could be supported, like palm devices (I also own a palm lifedrive and it would be nice to have a modern OS in it). Perhaps by being able to port this to many different devices would allow it to catch more interest and momentum.

    Perhaps you could host the sources in www.launchpad.net, create a project in order to do this, and upload your whole git tree there (They use git repos there) Id like to modify the source and see if I can go any further with this. It would seem kind of sad that another attempt to port a linux based OS to a mobile device would stop development before it gets to a nice point.

    ReplyDelete
  49. Hi,
    Please be so kind and post at least the kernel patches somewhere. Would that be possible? Thanks a lot,

    Chris

    ReplyDelete
  50. I would like to try it on my x30 low, but I heard from one of the commentors it doesn't work. I would like to view the source code.
    Thanks

    ReplyDelete
  51. I've posted this on the kernel patch post as well, but I thought I'd repost it on this one for anyone reading here first:

    For those using the Axim X50v, I've now compiled a new zImage which resolves the touchscreen x/y swap. You can download the new zImage here:
    http://drop.io/x50v_zImage

    Just replace the zImage on your SD card with the one you download from that link. If it's not working, let me know, and I'll re-upload to somewhere different (I've never used drop.io before, but I though I'd give it a try).

    ReplyDelete
  52. Regarding posting the code, I would recommend creating a diff patch and submitting that to GitHub (github.com) or Google Code.

    That way we can download the official releases and apply that patch afterwards.

    Great job!

    ReplyDelete
  53. Hocam bunu x51 ile kullanabilir miyiz?

    ReplyDelete
  54. Hi,
    I am having some problems with running it.
    I have done all of the above (partitioning etc.) but when I launch haret, I get the following error:
    No filesystem could mount root, tried: ext3 ext2 cramfs vf at msdos romfs

    I did partition the "/dev/sdb2" as ext3.

    Can someone please help?

    Thank you.

    ReplyDelete
  55. Very informative and helpful. I was searching for this information but there are very limited resources. Thank you for providing this information

    Essays On Dell Computer Corp

    ReplyDelete
  56. i have the same problem as avi.levi99 can anybody help please

    ReplyDelete
  57. wow thanks wored grate on my dell axim x5 but took time to get it to work

    ReplyDelete
  58. This is one of the magnificent and nice post.Your blog information is unique and good.Blog strategy is good..
    Android app developers

    ReplyDelete
  59. ok have every thing but the zimage i'm running on a pc any idea how to save it to sd card or how to get this file as it should be as a download and not a page script any help wold be nice

    ReplyDelete