Linux Ported to iPhone/Touch, Runs Busybox For Now

Even though there are a lot of happy people using Apple’s iPhone very happily, there’s also a group of people who are not so happy, most likely because of Apple’s rather strict policies regarding applications and developers. While most of these people would just jailbreak the thing, some take it a step further – by installing another operating system. Yes, Linux now runs on the iPhone (1st gen/2nd gen, and the 1st gen iPod Touch).

The port is obviously not complete, since a lot of the hardware on the iPhone has not yet been reverse engineered to understand how they work. Consequently, there’s a whole list of things currently not working: write support for the NAND, wireless networking, the touchscreen, sound, the accelerometer, and baseband support. What it does have is a framebuffer driver, a serial driver, a serial-over-USB-driver, and things like interrupts, MMU, clock, and so on. It boots using openiboot, a custom boot loader, which allows you to choose between booting into the default iPhone operating system, or Linux. The Linux 2.6 installation runs Busybox, and uses an USB keyboard (attached to the computer the iPhone is connected to) for input.


iPhone Linux Demonstration Video from planetbeing on Vimeo.

Poject lead ‘planetbeing’ explains that “the current userland we’re using, in the interest of expedience, is a Busybox installation created with buildroot, but glibc works fine as well, and we’re going to build a more permanent userland solution.” The team is asking for help with this effort, and especially Android hackers are welcomed (hint, hint). To get started, there are instructions, and download mirrors can be found in the blog announcement and its comments.

68 Comments

  1. 2008-11-29 10:36 pm
    • 2008-11-30 1:02 am
      • 2008-11-30 3:26 am
        • 2008-11-30 6:49 pm
      • 2008-11-30 12:25 pm
      • 2008-12-01 5:37 pm
  2. 2008-11-29 10:43 pm
    • 2008-11-30 12:04 am
      • 2008-11-30 2:43 am
        • 2008-12-01 4:22 am
        • 2008-12-01 7:21 am
    • 2008-11-30 6:52 am
  3. 2008-11-29 11:09 pm
    • 2008-11-29 11:38 pm
      • 2008-11-29 11:59 pm
        • 2008-11-30 12:16 am
          • 2008-11-30 12:23 am
          • 2008-12-01 9:59 pm
          • 2008-12-01 10:50 pm
          • 2008-12-01 10:57 pm
          • 2008-12-01 10:51 pm
          • 2008-11-30 12:27 am
          • 2008-11-30 12:40 am
          • 2008-11-30 1:38 am
          • 2008-12-01 11:13 pm
      • 2008-11-30 12:05 am
        • 2008-11-30 2:53 pm
      • 2008-11-30 2:42 am
      • 2008-11-30 2:53 am
      • 2008-11-30 6:50 am
        • 2008-11-30 3:23 pm
      • 2008-11-30 3:02 pm
        • 2008-11-30 4:43 pm
          • 2008-11-30 6:20 pm
      • 2008-11-30 6:39 pm
        • 2008-11-30 6:50 pm
          • 2008-11-30 11:59 pm
        • 2008-11-30 9:45 pm
        • 2008-11-30 11:06 pm
        • 2008-12-01 12:47 pm
      • 2008-11-30 9:31 pm
      • 2008-12-01 2:33 am
        • 2008-12-01 11:59 am
          • 2008-12-01 7:42 pm
          • 2008-12-01 9:00 pm
      • 2008-12-01 3:28 pm
        • 2008-12-01 11:07 pm
      • 2008-12-02 10:21 pm
  4. 2008-11-30 2:55 am
    • 2008-11-30 4:16 am
    • 2008-11-30 9:57 pm
      • 2008-12-01 1:26 pm
  5. 2008-11-30 4:05 am
    • 2008-11-30 4:25 am
      • 2008-11-30 6:58 pm
      • 2008-12-01 4:27 am
  6. 2008-11-30 8:15 pm
  7. 2008-12-01 12:55 am
    • 2008-12-01 1:18 am
      • 2008-12-01 1:49 am
      • 2008-12-01 7:16 pm
  8. 2008-12-01 8:45 am
    • 2008-12-01 1:37 pm
    • 2008-12-01 7:31 pm
  9. 2008-12-01 7:34 pm
    • 2008-12-01 7:54 pm
      • 2008-12-01 11:06 pm