Tuesday, August 25, 2009

Kernel Patches For AxDroid Alpha

Finally I had some spare time again to work on what I promised. Not much of an improvement here, but at least I want to share my kernel patches that made AxDroid Alpha image possible. Please be warned that the patches are mostly "dirty hacks".

I used some code and knowledge from various sources including;

The patch applies to the "android-2.6.29" kernel branch. You can get it with the following command:

$ mkdir android
$ cd android
$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git checkout --track -b android-2.6.29 origin/android-2.6.29

Then download the AxDroid patch:
Then you can apply this patch to your local kernel source:
$ git am 0001-AxDroid-Dell-Axim-x51v-patches.patch

To build for Axim X51V:
$ make aximx50_static_defconfig
$ make

42 comments:

  1. Thanks!

    Whats the cross compiler you used?

    Chris

    ReplyDelete
  2. Hi,
    Kind a not sure what this did, what did you ad in these patches Ertan?
    Does it fix x50v screen issue?
    Thanks a lot for sharing your improvement with us! We're following you very closely.

    ReplyDelete
  3. ozdemirhan, I haven't tried it out myself but I assume that there haven't been any changes from the alpha release, so this is simply a way for us to be able to compile it ourselves.

    Compiling it would therefore end up with the same as Ertan's alpha image provided - i.e. x50v touchscreen x and y will still be swapped. It does mean that those of us with the relevant knowledge should be able to get things such as the x50v touchscreen issue sorted and release further updates. I intend to have a go myself - if I make any progress, I'll post a link to full details.

    ReplyDelete
  4. 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
  5. Paul, Thanks a lot. I tried it on my x50v and it works. It seems to be quite sluggish though. the UI is not very responsive. Any idea what goes wrong? Does anybody got the wireless working?

    Chris

    ReplyDelete
  6. Might be a while before you see wireless function. I don't think the specifics of the chip have been worked out yet, so no driver for it.

    ReplyDelete
  7. I'm working on wireless, but no joy yet.

    As for the sluggishness, I'm also working on improving performance - I suspect there may be some differences between my .config and Ertan's .config which result in my kernel loading something extra (or missing something) which is resulting in the sluggishness.

    ReplyDelete
  8. Hi,

    Paul, can you post your x50v patch somewhere? That'd be great? Does USB networking work? I plugged the x50v with running android in the cradle but my ubuntu host doesnt show anything? Or do I have to load some module on the host as well?
    Chris

    ReplyDelete
  9. Chris,
    I've posted my tweaked file into the same drop.io (http://drop.io/x50v_zImage).

    Just replace the existing android/kernel/drivers/input/touchscreen/ads7846.c with the one in the drop.io and (re)compile the kernel.


    -Paul

    ReplyDelete
  10. Oh, and as for USB networking, I haven't actually tried it yet, but should get around to doing so...

    ReplyDelete
  11. I've done some tweaking, and got a kernel which has the x50v touchscreen fix, but which (hopefully) resolves the sluggishness. At least, it seems pretty responsive for me. It's now in the same drop as the other stuff - I've commented on both zImage files so you can tell them apart, but the most recent appears to sit at the top of the list anyway.

    Direct link to new zImage

    ReplyDelete
  12. Got usb network working. I just put

    .giop_pullup_inverted = false,
    .gpio_pullup = GPIO_NR_X50_USB_PULLUP,
    to the x50_udc_info struct.

    It disconnects from time to time though.

    But bluetooth GPIO doesnt seem to be right. It doesnt let you create the 22 GPIO. I tried:

    echo 22 > /sys/class/gpio/export

    and dmesg says

    <7>[ 2461.676890] gpio_request: gpio-22 (sysfs) status -16
    <7>[ 2461.676939] export_store: status -16


    Chris

    ReplyDelete
  13. Hi Paul and Ertan, I checked it out and works for my x50v, I wish wireless would work. Keep the work going; I am following very closely, If I learn, I might try to help you guys.

    ReplyDelete
  14. Hi,

    It seems that you are having fun with the patches. :) I am happy to see that.

    USB networking should work without any modifications, I used it a lot.

    Bluetooth does not work, I only experimented with it unsucessfully. There are missing GPIO/EGPIO numbers...

    I also experimented with audio, but couldn't get it working. I guess the i2c bus address is wrong...

    If you can get anything to work, I would be glad to get the patches and release a new kernel build.

    Have fun...

    ReplyDelete
  15. im getting a ton of erors when trying to patch the kernel i got with GIT. i cant do the second make command either.

    ReplyDelete
  16. cron, did you switch to the 2.6.29 kernel before trying to apply the patch? Make sure you follow the instructions in the post exactly - and apply the patch from the right location (inside the kernel folder, after you've switched to the 2.6.29 kernel).

    ReplyDelete
  17. i was trying to build with a 64-bit machine. heard thats a no-go trying with 32-bit currently
    i found out what wifi chipset the x51v uses:
    tnetw1100b from texas instruments. currently trying to figure out how to get the USB/Cardbus/PCI driver compiled into the kernel. i got this information at handhelds.org

    ReplyDelete
  18. I'm running 64-bit Ubuntu 8.10, and have had no problems building the kernel. I've been looking into the acx100 driver for the wifi, but haven't had any luck getting it to actually work yet - I've compiled the driver, but it doesn't work as yet (not sure if it's due to incorrect firmware or something else not being right), so I have more investigating to go yet.

    ReplyDelete
  19. heres my terminal output:

    # make aximx50_static_defconfig


    HOSTCC scripts/basic/fixdep
    HOSTCC scripts/basic/docproc
    HOSTCC scripts/basic/hash
    HOSTCC scripts/kconfig/conf.o
    scripts/kconfig/conf.c: In function ‘conf_askvalue’:
    scripts/kconfig/conf.c:105: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
    scripts/kconfig/conf.c: In function ‘conf_choice’:
    scripts/kconfig/conf.c:307: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
    HOSTCC scripts/kconfig/kxgettext.o
    SHIPPED scripts/kconfig/zconf.tab.c
    SHIPPED scripts/kconfig/lex.zconf.c
    SHIPPED scripts/kconfig/zconf.hash.c
    HOSTCC scripts/kconfig/zconf.tab.o
    HOSTLD scripts/kconfig/conf
    #
    # configuration written to .config
    #


    # make

    make: arm-none-eabi-gcc: Command not found
    scripts/kconfig/conf -s arch/arm/Kconfig
    make: arm-none-eabi-gcc: Command not found
    CHK include/linux/version.h
    UPD include/linux/version.h
    Generating include/asm-arm/mach-types.h
    CHK include/linux/utsrelease.h
    UPD include/linux/utsrelease.h
    SYMLINK include/asm -> include/asm-arm
    CC kernel/bounds.s
    /bin/sh: arm-none-eabi-gcc: not found
    make[1]: *** [kernel/bounds.s] Error 127
    make: *** [prepare0] Error 2

    im now on 32-bit ubuntu 9.04 jaunty by the way

    ReplyDelete
  20. how did you guys get usb networking? this is pissing me off.

    i had to go get pterminal and a telnet client so i can telnet into localhost to get root access. now then when i enter ifconfig, nothing shows. so i then enter ifconfig usb0 192.168.2.2 up and nothing happens.
    i then use netstat and it shows my current telnet session connected and shows another telent session listening with an ip of 0.0.0.0
    WTF
    it should at least be 10.0.0.2 rite??

    ReplyDelete
  21. and by the way, when i telnet back into the local telnetd i am of course connected to 127.0.0.1 and netstat shows that. and by the way is there a forum where this is being actively discussed? if there is, i cant find it. and maybe we should start one and point all the other forums that reference this project to it.

    ReplyDelete
  22. I've set up a Wikia wiki so that we can organise our efforts and information, rather than having everyone have to post comments on this blog:
    AxDroid Wiki

    Please check it out, and contribute wherever possible. If you're working on any drivers/hardware support, please update the relevant page(s) (or add one, if needed) - and update the "Hardware" to reflect that you're working on it.

    ReplyDelete
  23. Good Idea Paul, we should still visit Ertan though, to support his blog.

    ReplyDelete
  24. I got this running on an axim x51 (not x51v) but it only shows a quarter of the screen any tips?

    ReplyDelete
  25. I would LOVE to see this ported to the X51! I don't wanna take a risk with my X51v Just yet (even though it is outdated, i still love it)!

    ReplyDelete
  26. So does this implementation go any further than what's been done here?

    http://www.handhelds.org/moin/moin.cgi/DellAximX50Status

    I've checked the axdroid wiki but it doesn't seem to go any further...

    I'm interested in it for the x50v. I need at least wifi working on top of what's already working on the page above.

    Cheers

    ReplyDelete
  27. Anyone?
    Could I please get a response? (see above post)
    Thank-you very much.

    ReplyDelete
  28. The status is basically the same as Handhelds.org. There's no extra functionality.

    But these patches here are for the new kernel 2.6.29

    I doubt that there will be any further improvements unless Dell provides hardware specs.

    ReplyDelete
  29. Thanks for clarifying this Ertan,
    Could I please steal 5 more minutes of your attention?

    What in your opinion is an ideal device for a univeral remote? I'm wanting to use it to interface with a HA/CE controller I intend to build soon.

    I've looked everywhere for something that has a formfactor more like a traditional remote, but still with a relatively large touchscreen.

    There are a few device like that. But so far I've found none with a healthy OSS/Linux hacking community around them!

    Cheers,
    Jed
    HA = home automation
    CE = consumer electronics

    ReplyDelete
  30. HEY I HAVE A DELL AXIM X50V, CAN I GET ANDRIOD OR AXDRIOD ON MY PDA,
    I JUST BOUGHT IT THE OTHER DAY AND WAS TRYING TO UPDATE THE DAME THING; if i cant get andriod can u email me on how to get windows mobile 5 on it cause i spend all night trying use the update from maglite's blog but my SD loader wont even recognize the files,
    if u or anyone can help he pls email me at
    rahulkapoor4@gmail.com

    ReplyDelete
  31. Linux port of any form (including android) is no good for the avg user atm, see this

    http://www.handhelds.org/moin/moin.cgi/DellAximX50Status

    It prolly wont ever be because there isn't enough specs on some of the hardware so devs have to reverse engineer drivers which is very hard.

    You're best bet is to stick with window mobile hacks available at htc-geeks & xda-developers (google it). Ask more questions relating to wm hacks on those two forums.

    Ertan/anyone, can you respond to my post just before Rahul's? Thanks.

    ReplyDelete
  32. This comment has been removed by the author.

    ReplyDelete
  33. OMFG, what an entirely baseless/unjustified personal attack.

    I never said anyting negative about you or your project. I merely reiterated what I was told about the status of the project.

    I had a look at the wiki and it looked no further than the handhelds site. But just to be sure I tried to contact people assooc w/ the project. The 1st person to speak up was Ertan (look a few posts up)

    If my interpretation of what he's posted is misguided. Well normal humans would point that out, instead of resorting to abuse immeditately.

    Of course I'm appreciative of this sort of work and I've often contributed/donated to oss projects. Take your presumptions & abuse elsewhere!

    not happy,
    -jed.

    ReplyDelete
  34. Internet is a strange social environment, people can missunderstand each other very easily. I think that's what happened to cron. While I think his intentions were not bad, his comments were totally unnecessary.

    Anyways, Jed, with regards to your question about using Dell Axim as a universal remote controller, I guess you should stick with Windows Mobile. Because drivers are not complete in Linux.

    And I believe that I saw some programs in Windows Mobile that can use the Infrared on Dell Axim. But you should learn the rest from other forums that deal with Windows Mobile...

    ReplyDelete
  35. It is indeed...

    Thanks for your thoughts Ertan.
    I do intend to use WM + an app + CF IR extender initially...

    Longer-term though I'll be wanting a replacement more along the lines of what I outlined in my previous post. (for irsend & other protocol commands via wifi)

    I think something with everyting I want will be impossible to find. So I'll prolly settle for a handheld with a large capactive screen that has solid *nix support from the outset.

    I have a few ideas already lined up but I won't stop looking for the ideal device! ;-)

    ReplyDelete
  36. Any update guys? Or is this totally abandoned? I wish I could help, but I know nothing about coding.

    ReplyDelete
  37. anyway my axim was stolen and i can no longer help with this project. any files i have hosted in the past will continue to be on my site and will not be moved. look for the axdroid wiki if you want links or other info.

    ReplyDelete
  38. Is it possible to change the resolution by passing argument to the kernel so that we can get this working on the X51 (not v)?

    ReplyDelete
  39. I have compiled a zImage for the X51. Please test this out and report the results.

    http://maxfierke.com/axdroid/x51/03282010/zImage

    ReplyDelete
  40. What's wrong with the sound?
    They have linux drivers at the website.
    http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices

    ReplyDelete
  41. I just got 2.2/Froyo to run on my X51v :) Also, my build is slightly different in that you don't have to partition the SD card, you just drop the files on the root of a regular old FAT formatted card and run, so it's easier :D

    http://paulburton89.blogspot.com/2010/06/axim-android-aka-axdroid-22froyo-first.html

    ReplyDelete
  42. This comment has been removed by the author.

    ReplyDelete