Jump to content

[AMD] OS X El Capitan (10.11) Kernel Testing & Release (for help use the Help Topic)


spakk
 Share

1,255 posts in this topic

Recommended Posts

I do. Clover (any version from r3259 to 33xx) fails to boot El Cap on my system :o.

Ok, besure to have "KernelBooter_kexts = No" in kernel.plist (if any)

Than rebuilt the Extensions.mkext, assuming that you have an Extra/Extensions folder in /:

sudo kextcache -v 2 -t -m /Extra/Extensions.mkext /Extra/Extensions/ /System/Library/Extensions/

the kernel attached must be in /System/Library/Kernels/     and must be called as the original one, ie "kernel"

 

Try to re-boot

 

NB, be sure you have booted with CsrActiveConfig >= 3 before trying

 

new kernel: [removed because not working] (this is only a test, wait for the results)

 

@Micky1979, Using your kernel getting this from console,

13/12/2015 20:38:20.000 kernel[0]: invalid kernel opcode (64-bit): 37 02 41 00 80 ff ff ff 08 00 00 00 00 00 00 00 

Also I made a diff of your changes to the one I uploaded. Hope you don't mind.

 

attachicon.gifxnu-3247.1.106-amd.diff.zip

Well! :)

 

the errors come from unsigned char opemu_ktrap(x86_saved_state_t *state) in opemu.c

  • Like 5
Link to comment
Share on other sites

Ok, besure to have "KernelBooter_kexts = No" in kernel.plist (if any)

Than rebuilt the Extensions.mkext, assuming that you have an Extra/Extensions folder in /:

sudo kextcache -v 2 -t -m /Extra/Extensions.mkext /Extra/Extensions/ /System/Library/Extensions/

the kernel attached must be in /System/Library/Kernels/     and must be called as the original one, ie "kernel"

 

Try to re-boot

 

NB, be sure you have booted with CsrActiveConfig >= 3 before trying

Well! :)

 

the errors come from unsigned char opemu_ktrap(x86_saved_state_t *state) in opemu.c

 

Thanks will test soon. Can this be applied to Enochs kernel patcher  :rofl:

Link to comment
Share on other sites

Thanks will test soon. Can this be applied to Enochs kernel patcher  :rofl:

It was for this reason in truth ;)

The change is in bootstrap.cpp:

 

void

KLDBootstrap::readStartupExtensions(void)

{

    kernel_section_t * prelinkInfoSect = NULL// do not free

 

    OSKextLog(/* kext */ NULL,

        kOSKextLogProgressLevel |

        kOSKextLogGeneralFlag | kOSKextLogDirectoryScanFlag |

        kOSKextLogKextBookkeepingFlag,

        "Reading startup extensions.");

    

   /* If the prelink info segment has a nonzero size, we are prelinked

    * and won't have any individual kexts or mkexts to read.

    * Otherwise, we need to read kexts or the mkext from what the booter

    * has handed us.

    */

    prelinkInfoSect = getsectbyname(kPrelinkInfoSegment, kPrelinkInfoSection);

    /*

    if (prelinkInfoSect->size) {

        readPrelinkedExtensions(prelinkInfoSect);

    } else {

        readBooterExtensions();

    }*/

    

    readBooterExtensions();

 

    loadKernelComponentKexts();

    loadKernelExternalComponents();

    readBuiltinPersonalities();

    OSKext::sendAllKextPersonalitiesToCatalog();

 

    return;

}

  • Like 2
Link to comment
Share on other sites

It was for this reason in truth ;)

The change is in bootstrap.cpp:

 

 

 

void

KLDBootstrap::readStartupExtensions(void)

{

    kernel_section_t * prelinkInfoSect = NULL// do not free

 

    OSKextLog(/* kext */ NULL,

        kOSKextLogProgressLevel |

        kOSKextLogGeneralFlag | kOSKextLogDirectoryScanFlag |

        kOSKextLogKextBookkeepingFlag,

        "Reading startup extensions.");

    

   /* If the prelink info segment has a nonzero size, we are prelinked

    * and won't have any individual kexts or mkexts to read.

    * Otherwise, we need to read kexts or the mkext from what the booter

    * has handed us.

    */

    prelinkInfoSect = getsectbyname(kPrelinkInfoSegment, kPrelinkInfoSection);

    /*

    if (prelinkInfoSect->size) {

        readPrelinkedExtensions(prelinkInfoSect);

    } else {

        readBooterExtensions();

    }*/

    

    readBooterExtensions();

 

    loadKernelComponentKexts();

    loadKernelExternalComponents();

    readBuiltinPersonalities();

    OSKext::sendAllKextPersonalitiesToCatalog();

 

    return;

}

 

 

 

Do you need to use E/E for it to work? I always just use S/L/E and never had any problems. 

 

Edit: Can't even replace the kernel lol Some permissions seem wrong.

Link to comment
Share on other sites

Ok, besure to have "KernelBooter_kexts = No" in kernel.plist (if any)

Than rebuilt the Extensions.mkext, assuming that you have an Extra/Extensions folder in /:

sudo kextcache -v 2 -t -m /Extra/Extensions.mkext /Extra/Extensions/ /System/Library/Extensions/

the kernel attached must be in /System/Library/Kernels/     and must be called as the original one, ie "kernel"

 

Try to re-boot

 

NB, be sure you have booted with CsrActiveConfig >= 3 before trying

 

new kernel: attachicon.gifkernel.zip

 

Well! :)

 

the errors come from unsigned char opemu_ktrap(x86_saved_state_t *state) in opemu.c

 

 

Hmm… Just to be sure : do we need to have the Exra folder in / or can we have it in /Volumes/EFI/Extra ?

 

Even if it doesn't work anymore for OS X, I need to use Clover to boot Win10/Mint UEFI so I have a boot file (Enoch) and boot1 (Clover) in ESP.

Link to comment
Share on other sites

El Capitan seems to be putting up a fight  :hysterical: Folder is locked up can't even copy new kernel with terminal.

 

attachicon.gifScreen Shot 2015-12-13 at 21.26.25.png

Bro, you need CsrActiveConfig = 3 (or 103) and  reboot before trying. It's SIP (Sistem Integrity Protection)  ;) 

 

EDIT 

in org.chameleon.Boot.plist

EDIT

If someone else have installed some kext in SLE from onother partition, and the kernel is not working, probably you forgot to set the CsrActiveConfig > 0, because otherwise unsigned kexts are not allowed to load :)

  • Like 2
Link to comment
Share on other sites

Bro, you need CsrActiveConfig = 3 (or 103) and  reboot before trying. It's SIP (Sistem Integrity Protection)  ;) 

 

EDIT 

in org.chameleon.Boot.plist

 

Added and kernel replaced.

 

Just so I'm sure. If I run this with an empty E/E folder it will load the S/L/E kexts

sudo kextcache -v 2 -t -m /Extra/Extensions.mkext /Extra/Extensions/ /System/Library/Extensions/

  • Like 1
Link to comment
Share on other sites

Bro, you need CsrActiveConfig = 3 (or 103) and  reboot before trying. It's SIP (Sistem Integrity Protection)  ;) 

 

EDIT 

in org.chameleon.Boot.plistEDIT

If someone else have installed some kext in SLE from onother partition, and the kernel is not working, probably you forgot to set the CsrActiveConfig > 0, because otherwise unsigned kexts are not allowed to load :)

Wow man you full of useful information thanks for all the help!!
  • Like 1
Link to comment
Share on other sites

Extra/Extensions is empty but there. My kexts are in S/L/E is that ok or do I move them?

 

attachicon.gifScreen Shot 2015-12-13 at 21.42.00.png

It's enough, but please post the entire Terminal log when you create the mkext, before reboot..please

 

This isn't normal is it, 

Warning: OSKextIsInExcludeList could not find com.apple.driver.KextExcludeList

+/* AnV - Don't use blacklist exclude list */
+bool
 OSKext::isInExcludeList(void)
 {

is blacklisted by AnV :hysterical:

We need to consider to change back some code in El Capitan.

BTW that is the only verbose you got?

  • Like 1
Link to comment
Share on other sites

It's enough, but please post the entire Terminal log when you create the mkext, before reboot..please

Sorry already booted but it was made. Something like created mkext for 3xx (can't remember how many) extensions x86_64 in Extra/Extensions

 

Rebooting got me this,

uploadfromtaptalk1450043305626.jpg

 

Edit: http://pastebin.com/98p2fCmC

 

Edit: My boot File,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CsrActiveConfig</key>
	<string>103</string>
	<key>Kernel Flags</key>
	<string>-v npci=0x3000</string>
	<key>GraphicsEnabler</key>
	<string>Yes</string>
	<key>USBLegacyOff</key>
	<string>Yes</string>
</dict>
</plist>

And kernel.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>KernelBooter_kexts</key>
	<string>Yes</string>
</dict>
</plist>

Link to comment
Share on other sites

Well…

 

I'm not sure it's because I have moved the Extra folder from EFI to / then follow your instructions but I can't boot anymore and I have the same KP as Shaneee :(.

 

Now trying to boot in single user mode to delete kernel cache & prelinkedkernel <_<

 

Failed :(. Booting Yosemite now…

  • Like 1
Link to comment
Share on other sites

Well…

 

I'm not sure it's because I have moved the Extra folder from EFI to / then follow your instructions but I can't boot anymore and I have the same KP as Shaneee :(.

 

Now trying to boot in single user mode to delete kernel cache & prelinkedkernel <_>

 

I used -f to boot again...

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...