Jump to content

Rebuild Prelinkedkernel in Yosemite for El Capitan


jsl
 Share

64 posts in this topic

Recommended Posts

Update from 10.11DP3 to DP4 or later I meet a serious problem:

Boot by Clover v.3253 is fine, but booted by Chameleon v.2732~2748 always got Kernel Panic because of kernelcache issue.

How to rebuild prelinkedkernel in Yosemite for El Capitan ?

Link to comment
Share on other sites

Unfortunately all three versions of boot got the same failure as previous version of 2748 or 2737:

It is not a permissions problem, it is a kernel cache problem.  You have not rebuilt El Capitan cache with FakeSMC.kext present.  Easiest way is boot Yosemite/kext-dev-mode=1 and rebuild El Capitan cache. At this point, boot with the installed Enoch to verify El Captan. If you try Enoch-0x0, installing a kext or rebuilding cache will result in the same boot failure you have now (no FakeSMC in cache).  Enoch 0x67 allows unsigned kexts, kext editing and NVRAM updates. 0x65 does not allow kext updates, however, a cache rebuild would be successful if triggered.

  • Like 2
Link to comment
Share on other sites

It is not a permissions problem, it is a kernel cache problem.  You have not rebuilt El Capitan cache with FakeSMC.kext present.  Easiest way is boot Yosemite/kext-dev-mode=1 and rebuild El Capitan cache. At this point, boot with the installed Enoch to verify El Captan. If you try Enoch-0x0, installing a kext or rebuilding cache will result in the same boot failure you have now (no FakeSMC in cache).  Enoch 0x67 allows unsigned kexts, kext editing and NVRAM updates. 0x65 does not allow kext updates, however, a cache rebuild would be successful if triggered.

Thanks for your prompt reply and advice.

My 10.11DP4 was in /Volumes/El_Capitan and can be booted by Clover at present.

However after boot by 0x67 Chameleon in Yosemite 10.10.5 and try to rebuild kernelcache by Terminal command with

"sudo kextcache -Boot -U /Volumes/El_Capitan/" unsuccessfully.

with "sudo kextcache -prelinked-kernel /Volumes/El_Capitan/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -K /Volumes/El_Capitan/System/Library/Kernels/kernel /Volumes/El_Capitan/System/Library/Extensions" got kernelcache with an unusual bigger size (59.1 MB) and failed to reboot.

Is there better way to rebuild kernelcache of El Capitan in Yosemite ?

Should I follow this guide posted here :

https://pikeralpha.wordpress.com/author/pikeralpha/

Link to comment
Share on other sites

no. in el capitan

My problem is unable to boot El Capitan DP4 or DP5 by Chameleon.

The only way to work is booted by Clover.

If I can not boot by Chameleon, that means I can NOT applied "sudo touch /System/Library/Extensions" either !

Thanks anyway for help me.

Need find the correct way to rebuild kernelcache for El Capitan in Yosemite to solve my problem.

Link to comment
Share on other sites

Thanks and tried as advised, got the same kernel Panic as before.

Just touch /S/L/E seems not enough for me.

I guess Clover and Chameleon applied different ways to handle kernelcache.

You need to put FakeSMC and other kexts to /L/E or /S/L/E before update to El Capitan DB4 or PB2.

If not, you need to boot by Clover, and rebuild kernelcache by Kext Utility 2.6.4 in El Capitan DB4 or PB2 and above, then it should work fine with Chameleon without -f.

Chameleon can't boot to El Capitan DB4 or PB2 and above with -f now. (remove -f first)

 

Of cause with rootless=0, and kext-dev-mode=1 if you need it.

  • Like 1
Link to comment
Share on other sites

You need to put FakeSMC and other kexts to /L/E or /S/L/E before update to El Capitan DB4 or PB2.

If not, you need to boot by Clover, and rebuild kernelcache by Kext Utility 2.6.4 in El Capitan DB4 or PB2 and above, then it should work fine with Chameleon without -f.

Chameleon can't boot to El Capitan DB4 or PB2 and above with -f now. (remove -f first)

 

Of cause with rootless=0, and kext-dev-mode=1 if you need it.

My FakeSMC.kext was in /S/L/E already.

Boot by Clover try to rebuild kernelcache by Kext Utility 2.6.4 in El Capitan DB4 got unknown error.

Rebuild kernelcache by RebuildCaches got abnormal file size up to 59.1 MB for /S/L/C/c.a.k.c/Startup/kernelcache

Reboot with rootless=0, and kext-dev-mode=1 by Chameleon 2749 0x67, 0x65, or 0x0 all got KP because FakeSMC was not loaded.

Don't know how to fix it now.

Link to comment
Share on other sites

Boot by Clover try to rebuild kernelcache by Kext Utility 2.6.4 in El Capitan DB4 got unknown error.

 

Boot to El Capitan DB4 by Clover with rootless=0, and kext-dev-mode=1, Kext Utility should work fine to get prelinkkernel. And it's enough to boot DB4 by Chameleon.

 

Not loaded FakeSMC will not get KP, that should be different problem. You didn't provide enough message.

 

Any pics of KY by Chameleon?

Link to comment
Share on other sites

No -f in org.chameleon.Boot.plist

It seems Clover's kernelcache can not be applied to Chameleon.

Ok try to create  Folder Extensions inside Extra  and put your FakeSMC 

inside Extensions  but dont remove your FakeSMC on L/E  or S /L /E 

Link to comment
Share on other sites

No -f in org.chameleon.Boot.plist

It seems Clover's kernelcache can not be applied to Chameleon.

I test it as yours as below with DB6.

2732 and below, you can boot with /System/Library/PrelinkedKernels/prelinkedkernel.

2737, 2748 can boot only with /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache.

 

If prelinkedkernel and kernelcache didn't exist, it will boot as -f as loading all kexts, and get KP as yours.

So, you need prelinkedkernel or kernelcache, get it with Clover first.

 

[edit]

Another findings, test with DB6, 2732 and below boot fine with prelinkedkernel, 2737, 2748 can't boot with kernelcache as your reply.

2737, 2748 didn't work here with DB6.

I think, that's could be the problem of Chameleon.

 

update:

Test with DB6.

1.Rebuild prelinkedkernel and kernelcache by Kext Utility 2.6.4 with Clover 2353.

Chameleon 2732 can boot with prelinkedkernel, 2737, 2748 can't, (delete kernelcache first)

reboot as pics below.

post-61100-0-94427500-1438704342_thumb.jpg

 

2.Rebuild prelinkedkernel and kernelcache by Kext Utility 2.6.4 with Chameleon 2732, and 2748.

Chameleon 2732, 2737, 2748, Clover 2353 all can boot with prelinkedkernel. (delete kernelcache first)

boot fine.

post-61100-0-50131500-1438704351_thumb.jpg

 

Something wrong with 2737, 2748, i think. FYI.

 

update...

 

Sorry, this is my fault.

Rebuild prelinkedkernel and kernelcache by Kext Utility 2.6.4 boot with Clover 2353 and below.

    <key>RtVariables</key>
    <dict>
        <key>BooterConfig</key>
        <string>0x28</string>
        <key>CsrActiveConfig</key>
        <string>0x67</string>
    </dict>

All work fine with Chameleon 2732, 2737, and 2748.

Link to comment
Share on other sites

sound stupid...but..the kernel is vanilla? is the build version that should be for that dp?

 

That's fine.

Yes, the original kernel come with DB6, nothing modified.

 

 

Chameleon should first try to load /S*/L*/Prelinkedkernels/prelinkedkernel and then fall back on the older kernelcache if the file is missing (for both Yosemite and El Capitan). That isn't working right now.

 

ok, i know it will load prelinkedkernel first, so i delete kernelcache to test it.

 

....

But i don't know what's different with clover 2353 and chameleon 2732, if rebuild kernelcache.

I can only tell the result. :)

 

[edit]

update.. the root cause is SIP problem as #3285.

Link to comment
Share on other sites

@jsl,

 

Looks like you are trying to boot with -x. Are you? Please don't do that. This option isn't supported right now. Not yet because we should load the prelinkedkernel for -x and let the kernel decide what to load or to exclude from loading.

No, I did not boot with -x or -f.

Ok try to create  Folder Extensions inside Extra  and put your FakeSMC 

inside Extensions  but dont remove your FakeSMC on L/E  or S /L /E 

I have FakeSMC.kext in /S/L/E, /L/E, and /Extra/E, but it seems no big difference up to now.

I mean not working for Chameleon booting for DP4~DP6.

One bug in my previous FakeSMC.kext:

Before deleting its PlugIns Kext Utility 2.6.4 failed to rebuilt system caches.

After deleting PlugIns I can get kernelcache in /S/L/C/c.a.k.c/Startup/ , but still got K.P. during booting by Chameleon 2732, 2737, 2748, & 2749.

I test it as yours as below with DB6.

2732 and below, you can boot with /System/Library/PrelinkedKernels/prelinkedkernel.

2737, 2748 can boot only with /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache.

 

If prelinkedkernel and kernelcache didn't exist, it will boot as -f as loading all kexts, and get KP as yours.

So, you need prelinkedkernel or kernelcache, get it with Clover first.

 

[edit]

Another findings, test with DB6, 2732 and below boot fine with prelinkedkernel, 2737, 2748 can't boot with kernelcache as your reply.

2737, 2748 didn't work here with DB6.

I think, that's could be the problem of Chameleon.

 

update:

Test with DB6.

1.Rebuild prelinkedkernel and kernelcache by Kext Utility 2.6.4 with Clover 2353.

Chameleon 2732 can boot with prelinkedkernel, 2737, 2748 can't, (delete kernelcache first)

reboot as pics below.

attachicon.gifreboot.jpg

 

2.Rebuild prelinkedkernel and kernelcache by Kext Utility 2.6.4 with Chameleon 2732, and 2748.

Chameleon 2732, 2737, 2748, Clover 2353 all can boot with prelinkedkernel. (delete kernelcache first)

boot fine.

attachicon.gifboot.jpg

 

Something wrong with 2737, 2748, i think. FYI.

I have tried both methods, but none is working for me in DP4~DP6.

Link to comment
Share on other sites

No, I did not boot with -x or -f.

I have FakeSMC.kext in /S/L/E, /L/E, and /Extra/E, but it seems no big difference up to now.

I mean not working for Chameleon booting for DP4~DP6..

crazybirdy has confirmed Chameleon can boot DP 4, 5 and 6.

Kernel cache appears to be the problem

This method has fixed El Capitan with the first failure and every failure since

Suggest one FakeSMC.kext in one place, S/L/E.

Boot Yosemite with kext-dev-mode=1

Remove any other FakeSMC.kext

Terminal (assuming El_Capitan = El Capitan volume name)

cd /Volumes/El_Capitan
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

Boot El_Capitan  with -v flag only

Reply with the Yosemite/Terminal output and boot result.

Credit: wern apfel #389, OS X El Capitan DP's builds! - Page 20

  • Like 1
Link to comment
Share on other sites

crazybirdy has confirmed Chameleon can boot DP 4, 5 and 6.

Kernel cache appears to be the problem

This method has fixed El Capitan with the first failure and every failure since

Suggest one FakeSMC.kext in one place, S/L/E.

Boot Yosemite with kext-dev-mode=1

Remove any other FakeSMC.kext

Terminal (assuming El_Capitan = El Capitan volume name)

cd /Volumes/El_Capitan
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

Boot El_Capitan  with -v flag only

Reply with the Yosemite/Terminal output and boot result.

Credit, goes to others; links to be added.

Follow your advice and no kernelcache created in /Volumes/Boot_10.11DP6/System/Library/Caches/com.apple.kext.caches/Startup/.

Reboot got the same KP as before posted at #3280

Maybe I should shift to Clover temporarily to boot DP4~DP6 at present.

Terminal Saved Output.zip

Link to comment
Share on other sites

Follow your advice and no kernelcache created in /Volumes/Boot_10.11DP6/System/Library/Caches/com.apple.kext.caches/Startup/.

Reboot got the same KP as before posted at #3280

Maybe I should shift to Clover temporarily to boot DP4~DP6 at present.

but what's on-in /Volumes/Boot_10.11DP6/System/Library/PrelinkedKernels/ ??

Link to comment
Share on other sites

 Share

×
×
  • Create New...