Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: iDroid-Project/kernel_common
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: android-2.6.32-iphone
Choose a base ref
...
head repository: kleemajo/kernel_common
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: android-2.6.32-iphone
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 18 files changed
  • 1 contributor

Commits on Jan 9, 2012

  1. HACK HACK HACK: Got the linux kernel working on the 2g touch.

    The way that I did it is terrible though. I took the iphone 3g config and
    modified everything from there without actually making a new config for the 2g
    touch. In other words, compile this code for the iphone 3g and it actually runs
    on the 2g touch. Ugh that is so nasty. Anyways, this boots on the 2g touch and
    gets a bunch of stuff up and running. I'm not 100% sure what all works, but it
    makes it though all of the basic initialization. There aren't really drivers for
    anything after that though... I hacked printk to output to the framebuffer that
    iBoot sets up, so you do get output on the screen as the kernel is booting.
    
    INSTRUCTIONS FOR USE:
    
    This really shouldn't be in a git commit message, but I'm too lazy to put it
    elsewhere.
    
    If anybody wants to actually do something with this code, you should do
    everything properly and make a proper config for the 2g touch that doesn't just
    modify the iphone 3g one. For new drivers for the 2g touch, you should start by
    looking at openiBoot (everything up to but not including NAND is working there
    for the 2g touch) and at the a4 kernel on the iDroid-Project page. It should be
    pretty easy to get the kernel up to the level that openiBoot is at.
    
    I've added a .config to this git commit that will build linux for the 2g touch.
    Just run make in the main folder, and it will spew out the kernel at
    arch/arm/boot/zImage. I've just been using the initrd from the main idroid
    project distribution (android.img.gz or whatever) so grab that too.
    
    To use this kernel, use the openiBoot in my (kleemajo's) github repository. It
    has a couple patches specific to the 2g touch that are needed due to the
    device's memory setup (initrd gets placed in the wrong spot on the 2g touch
    using the stock iDroid-Project openiBoot).
    
    From the openiBoot console, send the kernel and initrd over and then boot linux.
     This is done with the commands:
    !/path/to/zImage
    kernel
    !/path/to/android.img.gz
    initrd
    boot
    
    If everything goes well, you will see the output of linux booting on your LCD!
    
    I don't have time to do much more with this kernel: my objective was always just
    to get some form of linux on the 2g touch. If someone wants to port all of the
    drivers and get a full android working then please go ahead. Unfortunately,
    there isn't much developer interest for this specific device so you will most
    likely be on your own.  If a serious developer is interested in getting a full
    android port, I can help you out and share more of my knowledge. I unfortunately
    don't have the time to train people who have never done this before though so
    please only contact me if you are very familiar with C and ARM assembler and
    have a good knowledge of how the iPhone and iPod Touch work already. I've put up
    a guide at http://www.idroidproject.org/wiki/User:Kleemajo that will get you up
    to speed. If you have read though that whole guide and understand everything in
    it, then feel free to contact me at kleemajo@gmail.com for help.
    
    The big step that is still missing before android is possible is NAND support.
    To put it nicely, NAND is a bitch and is going to take a lot of effort and time
    to reverse engineer. The iphone 4 guys (Bluerise, ricky26 et. al) are doing a
    great job with the FTL reversing, and a lot if not all of that code can be used
    directly on the 2g touch. The main issue is that the low level flash drivers are
    different... the 2g touch uses something called "h2fmss" which is completely
    different from what is done on the 8900 (iPhone 2G/3G) series of devices and
    also completely different from the "h2fmi" used on the a4 (iPhone 4G) series. It
    is a huge chunk of code and seems to get bigger and bigger the more that you
    look at it...
    
    To anyone who has read though this, good luck!
    kleemajo committed Jan 9, 2012
    Configuration menu
    Copy the full SHA
    012f791 View commit details
    Browse the repository at this point in the history
Loading