Hey guys, it's been a while since I've been here and I'm sure a lot has changed, good to see that some of the older members on this site have stuck around. I'm currently one of the maintainers of this project (I'm primarily working on developer tools for this project). If you want to try this out on your N900, you will either need a recent version of Ubuntu or Linux Mint (I've been using version 15 to build and test everything). I plan to push fixes to xnu-deps-linux to resolve problems for other distros when I get the time. You will also need a fairly recent version of Clang (preferably 3.4) and a copy of the CodeSorcery toolchain (arm-eabi-none). IMPORTANT NOTE: While xnu does boot on the N900, we still need to implement a TWL4030 watchdog kicker to keep the system alive while booted. Until we get this done, you will need to enable R&D mode on your N900. Also, we still need to implement a keyboard driver. This will require writing an I2C driver that can be used to talk to the TWL4030. If anyone is interested in working on this, we would greatly appreciate your help. Also something important to remember: unix signal support is still a work in progress, so until that is worked out, job control doesn't work. (eg: Using Ctrl-C crashes the kernel). I would recommend that you build things in the following order: Code: # Build the container tool git clone https://github.com/image3maker.git cd image3maker/; make; make install cd .. # Build the developer tools git clone https://github.com/darwin-on-arm/xnu-deps-linux.git cd xnu-deps-linux/; make; make install cd .. # Build the kernel git clone https://github.com/darwin-on-arm/xnu.git cd xnu/ make TARGET_CONFIGS="debug arm omap3430_rx51" MAKEJOBS= SDKVERSION=10.7 HOST_CC=clang HOST_YACC=yacc \ HOST_BISON=bison HOST_FLEX=flex HOST_CODESIGN=/bin/true BUILD_NO_DEBUG=1 DEPLOYMENT_TARGET_FLAGS= \ RC_CFLAGS="-D__arm__ -DARM" MIG=/usr/bin/mig CC=clang CXX=clang++ RC_CFLAGS="-target arm-apple-darwin11" \ VERBOSE=YES RC_LDFLAGS="-target arm-apple-darwin11 /usr/lib/libclang_rt.cc_kext.a" \ STRIP="arm-apple-darwin11-strip" NM="arm-apple-darwin11-nm" cd ../ # Put the kernel into an img3 container image3maker -t krnl -f xnu/BUILD/obj*/*/mach_kernel -o mach.img3 # Build the fused kernel+bootloader git clone https://github.com/darwin-on-arm/GenericBooter.git mv mach.img3 GenericBooter/ cd GenericBooter # open main.c with a text editor and scroll down to corestart_main # you need to comment out lines 114-123 to disable realview board check # you may also want to comment out the contents of uart_putc in debuc.c as this assumes a PL011 uart make # You should now have a SampleBooter.elf.uImage file which you can boot via u-boot, enjoy! If you wish to boot this with a ramdisk (and why not!), you can use this one. You can boot this ramdisk with the kernel in the same way you would with a standard linux kernel in u-boot. If you have any problems or have any other questions or want to contribute, jump on ##darwin-on-arm on freenode and I'm sure that someone will be able to answer your question. Have fun!
# Build the container tool git clone https://github.com/image3maker.git cd image3maker/; make; make install cd .. # Build the developer tools git clone https://github.com/darwin-on-arm/xnu-deps-linux.git cd xnu-deps-linux/; make; make install cd .. # Build the kernel git clone https://github.com/darwin-on-arm/xnu.git cd xnu/ make TARGET_CONFIGS="debug arm omap3430_rx51" MAKEJOBS= SDKVERSION=10.7 HOST_CC=clang HOST_YACC=yacc \ HOST_BISON=bison HOST_FLEX=flex HOST_CODESIGN=/bin/true BUILD_NO_DEBUG=1 DEPLOYMENT_TARGET_FLAGS= \ RC_CFLAGS="-D__arm__ -DARM" MIG=/usr/bin/mig CC=clang CXX=clang++ RC_CFLAGS="-target arm-apple-darwin11" \ VERBOSE=YES RC_LDFLAGS="-target arm-apple-darwin11 /usr/lib/libclang_rt.cc_kext.a" \ STRIP="arm-apple-darwin11-strip" NM="arm-apple-darwin11-nm" cd ../ # Put the kernel into an img3 container image3maker -t krnl -f xnu/BUILD/obj*/*/mach_kernel -o mach.img3 # Build the fused kernel+bootloader git clone https://github.com/darwin-on-arm/GenericBooter.git mv mach.img3 GenericBooter/ cd GenericBooter # open main.c with a text editor and scroll down to corestart_main # you need to comment out lines 114-123 to disable realview board check # you may also want to comment out the contents of uart_putc in debuc.c as this assumes a PL011 uart make # You should now have a SampleBooter.elf.uImage file which you can boot via u-boot, enjoy!