Darwin on ARM

Darwin on ARM


Someone else has (independently) picked up our (very old) idea and is successful:


Sources for that project (not related to ours):

https://github.com/darwin-on-arm/xnu https://github.com/darwin-on-arm/DeviceTrees/tree/master/TexasInstruments/OMAP3/BeagleBoardXM


The idea is to port the OpenDarwin or PureDarwin kernel and kexts to run on ARM (and potentially other) devices.


A major issue is that all Linux on ARM projects assume ELF binaries while Darwin assumes MACH-O.

Fortunately the iPhone SDK has a ARM toolchain that produces Mach-O. So we should be able to build a ARM kernel (which needs patches to the Darwin configuration since Apple publishes the ppc and i86 versions only)

Since most devices we know (Freerunner, GTA04) boot through U-Boot we need to extract the kernel binary from the Mach-O binary into a simple uImage.bin. I.e. we need a Mach-O mkimage tool.

After we install the kernel on a SD card, it should mount a second partition of the SD card in HFS format so that it can load the kexts and bash etc. For that we also need ARM Mach-O binaries of the kextx and tools. I.e. we have to cross-compile these as well.

Another option would be to add an ELF-Loader to Darwin and use the Debian ARMEL binaries. In that case we still have to cross-compile the kexts. Some of them have to be adapted to ARM and the target machine (GTA02, GTA04, Beagleboard, Pandaboard) anyway.

Development Team
Nikolaus Schaller

Powered by InDefero,
a CĂ©ondo Ltd initiative.