N900 running on Mac OS X

A while ago I experimented running various operating systems on the Nokia N900. Now with the availability of N900 hardware emulation in QEMU (see http://wiki.meego.com/ARM/Meego_on_Qemu ) I decided to try this the other way around. The result: Regular N900 Maemo software straight out of the phone boots in QEMU, but no GUI since there is no SGX graphics emulation in the Maemo QEMU yet.

(in soviet Russia, the computer boots YOU)

I tried this already last week when I spotted the omap3 branch of qemu-maemo on gitorious: http://meego.gitorious.org/qemu-maemo

Turned out that it was not unable to execute the regular N900 bootloader since it does not support the OMAP3 HS version (security features). I spent some time figuring out what to do, until today I found the MeeGo N900 QEMU image! Of course it had to have a bootloader that works with QEMU. I simply took the bootloader code from there and applied it on top of the image file I gathered already last week from my N900 device, so I’m running the stock Maemo N900 kernel, rootfs etc. and only the bootloader comes from MeeGo.

I will update here more exact instructions on how to do this yourself, if there is enough interest.. 

5 thoughts on “N900 running on Mac OS X”

  1. There is interest – I was about to look into it myself (need a lighter weight Python Maemo 5 complete runtime environment than an 8GB VM) but the lack of SGX emulation’s a bit of a kicker.

  2. Yes I agree, the usefulness would be far greater with some working SGX emulation. I can speculate it’s coming sometime in the future, since the gitorious repository also hosts a gles accelerator module etc. along with the QEMU branches.
    Imagine if you could combine Qt Creator + MADDE + Qemu as the device emulator. Then you don’t need anything except a pc/mac/linux machine to write, build and test software!

  3. Hi, really great work.
    Can you give me some more details, how
    you build the nand image?
    I tried a bit with n900 firmware image
    and the qflasher tool.
    But I dont know exactly what to do.

    regards nicolai

  4. Thanks for the interest! I will post more detailed instructions here as soon as time permits. But some hints quickly already: I did not use the N900 firmware image as such, I took the data from my running N900 device by copying the memory from /dev/mtd1ro, mtd1ro … mtd5ro. I then took the bootloader part AND the last 8 megabytes (OOB data) from the N900 MeeGo QEMU image and combined these into a NAND image. You can figure out the sizes by observing the “dmesg” output of your device where it prints info on the MTD blocks.
    Execute QEMU the same way as with the N900 MeeGo QEMU image.

    You should be able to do it with this quick info but I will really try to post proper, step-by-step instructions in the coming days!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>