Reply
Thread Tools
Posts: 66 | Thanked: 87 times | Joined on Aug 2010
#1
Darwin is the core operating system that lies under both Mac OS X and iPhone OS. It is the true core foundation that bridges the kernel to the actual UI above.
http://winocm.com/projects/research/...milestone-one/
http://winocm.moe/projects/research/...milestone-one/
[via osnews.com]

Last edited by mick3_de; 2015-02-23 at 13:33.
 

The Following 5 Users Say Thank You to mick3_de For This Useful Post:
Posts: 113 | Thanked: 67 times | Joined on Jun 2012 @ Yunfu city,Guangdong province,China
#2
http://9to5mac.com/2013/11/22/develo...pple-hardware/

it is so cool . anybody make a UI?
__________________
I am sorry for my poor English....
Using N900 in China.
BBS moderator in bbs.dospy.com 's n900 plate.
http://bbs.dospy.com/forum-315-1.html
 

The Following User Says Thank You to yaliang For This Useful Post:
Dave999's Avatar
Posts: 7,074 | Thanked: 9,069 times | Joined on Oct 2009 @ Moon! It's not the East or the West side... it's the Dark Side
#3
Originally Posted by yaliang View Post
http://9to5mac.com/2013/11/22/develo...pple-hardware/

it is so cool . anybody make a UI?
Allready posted as a thread and no., read the last line in the dev blogpost.

http://talk.maemo.org/showthread.php...87#post1388387

But your thread title is better for average Joe...
__________________
Do something for the climate today! Anything!

I don't trust poeple without a Nokia n900...

Last edited by Dave999; 2013-11-23 at 10:12.
 

The Following 2 Users Say Thank You to Dave999 For This Useful Post:
Posts: 113 | Thanked: 67 times | Joined on Jun 2012 @ Yunfu city,Guangdong province,China
#4
i had search but i cannt find . Thanks

will others make a UI?
__________________
I am sorry for my poor English....
Using N900 in China.
BBS moderator in bbs.dospy.com 's n900 plate.
http://bbs.dospy.com/forum-315-1.html
 

The Following User Says Thank You to yaliang For This Useful Post:
Posts: 1,225 | Thanked: 1,905 times | Joined on Feb 2011 @ Quezon City, Philippines
#5
It's all open sauce.

A little birdie told me this only builds properly on Linux hosts ('buntu 13.10 confirmed OK); building with the target OMAP3430_RX51 produces a binary you can combine with GenericBooter which passes... stuff along from the boot environment (u-boot) to the xnu kernel.

The little birdie also told me that a real N900 on-hand (this was ported first to the N900 QEMU...) would help - you may want to send the guy one to help 'em along!

Birdie also notes that the recommended userland filesystem package for this would be iPhone OS 4.3.5. Accelerated graphics don't work for now, so you're stuck in console (non-single user at least!) mode.

This would also be semi-effortlessly portable to the N9/50 if a u-boot port was made. The N900 port is a good place to start.

Hardware keyboard doesn't work. Yet, at least. Use the serial console if you need it.
__________________
N9 PR 1.3 Open Mode + kernel-plus for Harmattan
@kenweknot, working on Glacier for Nemo.

Last edited by Hurrian; 2013-11-23 at 10:29.
 
panjgoori's Avatar
Posts: 1,236 | Thanked: 1,278 times | Joined on Aug 2011 @ Balochistan
#6
he's done a great job but how its useful for us N900 users ? any benefits ? or can we run iOS apps with it ? sorry for the noob questions.
 

The Following User Says Thank You to panjgoori For This Useful 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:
wicket's Avatar
Posts: 634 | Thanked: 3,266 times | Joined on May 2010 @ Colombia
#8
Originally Posted by b-man View Post
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!
This is very cool, I will try it out when I get a bit of spare time.

I do have to ask though, why did you choose to port Darwin over FreeBSD? I'm struggling to think of any advantage for choosing Darwin unless you have some kind of crazy long-term goal of an iOS or OS X compatibility layer. :P
__________________
DebiaN900 - Native Debian on the N900. Deprecated in favour of Maemo Leste.

Maemo Leste for N950 and N9 (currently broken).
Devuan for N950 and N9.

Mobile devices with mainline Linux support - Help needed with documentation.

"Those who do not understand Unix are condemned to reinvent it, poorly." - Henry Spencer
 

The Following User Says Thank You to wicket For This Useful Post:
Posts: 1,225 | Thanked: 1,905 times | Joined on Feb 2011 @ Quezon City, Philippines
#9
Originally Posted by wicket View Post
I do have to ask though, why did you choose to port Darwin over FreeBSD? I'm struggling to think of any advantage for choosing Darwin unless you have some kind of crazy long-term goal of an iOS or OS X compatibility layer. :P
The ARM bringup was done by a winocm.

Binaries compiled for iOS actually already do run (look for Terminal packages on Cydia...)

Binary kernel drivers from iOS devices will very likely not work - which means no SGX535 driver (among others)
Also, the way OMAP handles the framebuffer (OMAPFB, OMAPDSS) means that getting iOS as-is on the N9/50/00 is a moonshot.

The biggest blocker for daily use right now is the keypad not working. IIRC you have to use it with a serial terminal for now.
__________________
N9 PR 1.3 Open Mode + kernel-plus for Harmattan
@kenweknot, working on Glacier for Nemo.
 
b-man's Avatar
Posts: 549 | Thanked: 502 times | Joined on Feb 2008 @ Bowling Green Ohio (united states)
#10
Originally Posted by wicket View Post
This is very cool, I will try it out when I get a bit of spare time.

I do have to ask though, why did you choose to port Darwin over FreeBSD? I'm struggling to think of any advantage for choosing Darwin unless you have some kind of crazy long-term goal of an iOS or OS X compatibility layer. :P
It wasn't me who did the work to get Darwin ported to arm, winocm did most of the work. I am in charge of porting and maintaining Darwin development tools for the project.

As for why he chose to work on this project, his explanation can be seen here.

As for why I am getting involved? I think Darwin is a pretty interesting OS and I figured that it would be a fun learning experience to get involved.

EDIT: Err, I see that Hurrian beat me to it
__________________
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-25 at 23:51.
 

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

Tags
darwin, nokia n900

Thread Tools

 
Forum Jump


All times are GMT. The time now is 19:17.