View Single Post
 
Old 08-23-2011, 11:29 AM
andyvand's Avatar
andyvand andyvand is offline
 
Join Date: Apr 2009
Location: Tienen
Posts: 515
Quote:
Originally Posted by Imkantus View Post
As you should know, Finder (and some other stuff) is 64-Bit only since Lion DP2 (and any later release).
I have tried Lion GM using your DP1 Kernel on Atom N230, apart from not having Finder, there were problems caused by launchd not working properly... it was kinda eating up my 1GB RAM - so I gave up on that...

So a 64-Bit capable CPU is definitely required for running Lion & a Kernel running 32-Bit legacy mode only would be practical useless.

Anyway a 32-Bit Kernel capable of booting Lion on AMD / VIA / old Intel forced into 64-Bit mode would be a great success at this point - as even if you cannot make a custom dyld at the moment, we could bin-patch the Apple one manually like been done on Snow Leopard earlier...

How did you manage to compile Lion Kernel in Snow Leopard?
With some minor code modifications.
Mods for custom dyld (for Lion) are complete, custom dyld for Lion builds now.
Mods for xnu are coming along (I just worked the entire night yesterday, I think it compiles allready for 32bit but requires some minor fixes for 64bit (warning fixes)... work continues).
I'll release all my work once it's done, somebody with Xcode 4.1 could recompile the kernel in order to make it fully Lion compiled.
Compiling the kernel under Snow Leopard (with Xcode 3.2.6/4.0) is possible with some minor code fixes (variables used uninitialized, just set them to 0 on the beginning of the defines).
Also Apple didn't change much on their decryption algo's, current implementation should work, however I had to rewrite amd_insn_patcher (and also add the changes to the kernel) because of a new 6 byte (instead of 8) _sysenter_trap routine.
Code mods on that part are complete and it puts it into it as it was doing with 10.6 (but uses a uint32_t as first and uint16_t as second code wrapper).
I've left the patcher for Snow Leopard's _sysenter trap into it, it just checks which precise _sysenter_trap is used and patches accordingly.
The change was just a nopl (%eax) to nop... (3B -> 1B).
I guess it will take at most a week to get the code wrapped up completely (and fixed for Lion), it'll work on all 64bit machines, even though having SSSE3 is really recommended since Lion.
I've checked for any SSSE3 checks in the kernel, there where none, it just catalogs the available instruction sets so if there would be any messages, they aren't coming from the kernel.
I should really check how these SSSE3 instructions (it aren't that many) work so I can devise a solution for them.
But first... the kernel ofcourse...
BTW: On InsanelyMac I uploaded Rev2 of the V8 (10.8.0) kernel with some minor fixes for AMD K10 FSB (as latest chameleon fixes that) with the option to double the FSB on those AMD models with -doublefsb boot arg.
I also did some minor changes for Via Nano, it now gets the CPU frequency through EFI booter.
Besides that it includes the custom dyld built with Apple's libunwind-30 code (which compiles fine on Snow Leopard too) but it didn't fully fix some apps crashing.
pbs still gave me some issues (unless I upxed it with my custom upx, then it worked fine).
I'll look into a solution for this as most crashes come from libauto.dylib (Auto::Zone::Zone).
QuickDraw (QD) also gave for some apps a crash.
Too bad we haven't got Apple's libCoreSymbolication library (with matching header) or we would be able to fix the last issues with the custom dyld.
Work continues thus and new solutions are sure to surface (I'm thinking hard for improvements/expansions).
I'll keep you posted...
Reply With Quote