View Single Post
b-man's Avatar
Posts: 549 | Thanked: 502 times | Joined on Feb 2008 @ Bowling Green Ohio (united states)
#7
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 Mint 15 32-bit 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:
(dependencies for developer tool components are listed in their respective README.md)

Code:
# Build the container tool
git clone https://github.com/darwin-on-arm/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!
__________________
I'm an advanced user and a bit of a modder.
----------------------------------------------
I am involved with Mer, Deblet, and NITdroid.
My ports/creations/hacks: GNOME (for Deblet), Cdeb2», Ubuntu, playable flash games in the "Get Started" app, DBS, ect...


enhanced fedora port has been canceled in favor of NITDebian (TBA)

Last edited by b-man; 2013-11-26 at 05:59.
 

The Following 13 Users Say Thank You to b-man For This Useful Post: