A nice Lion Atom Kernel





A while ago after the xnu source for 10.7 came out I decided to patch up the source code to match up with what meklort‘s private kernel patcher module for Chameleon does for atom processors in addition to my little version overriding fix with Extensions.mkext overriding the kexts in kernelcache. He gave me permission to give out the equivalent changes his patcher module does, but only via kernel source.
I didn’t post them just because I was mostly gone but since I’ve had free time (I’ve been idling on IRC lately) I decided to post this stuff. Here’s the kernel for 10.7.1, only patched for atom. Lemme list other things it does though.
Source diff: 10.7.1_atom.diff
A few changes in it other than getting it to run on an atom processor:
  • In OSKext.cpp, I ditched a goto so a kext in /Extra/Extensions.mkext or /Extra/Extensions/*.kext will not be disregarded if you are also loading kernelcache which also contains that same kext (versions don’t matter in this case) at the same time. Before it would simply disregard the kext in /E/E and goto finish – now it continues down and does version checking between the two to see which one to use first.
    Some still-current issues with loading kernelcache + /E/E at the same time though – if you are using a parent kext in /E/E in which a kext in /S/L/E depends on and it ends up overriding the lower-version equivalent parent kext in /S/L/E, you will result in a linking error. I will look into it later, but if anyone is willing to play around with this issue, then have fun.
  • Next up in bootstrap.cpp is the core part of what gets the kernel to load /E/E when it is also loading kernelcache instead of ignoring it, credit goes to meklort. This simply injects readBooterExtensions() into the right spot to get it loading the mkext.
Have fun, play with the source, be sure and give credit to those who deserve it. Yell at me if anything else needs to be noted.
Oh I also thought about AMD stuff. I haven’t really played with AMD lately. I guess I should, since not anyone really has gotten it working. I did see AnV make a lion legacy kernel, but since tested, it has failed every AMD user. So we still have some things to get finished I suppose.

2 comments :

  1. how do you get this to work? Complete details please

    ReplyDelete
  2. Can anyone explain how to get this Atom kernel into the iATKOS installer on a USB stick? Any other options needed for the installer to work on a Dell Mini 9 in 32 bit? Can the install from USB be an update from OSX.6.7 instead of a fresh install?

    ReplyDelete