Jump to content

Slow boot with Lion+Chameleon (processing all extensions during boot)


FuManchu84
 Share

23 posts in this topic

Recommended Posts

I already successfully installed Lion a few times but booting up with Chameleon takes VERY long!

 

When I press Enter after selecting the Lion-partition in the screen becomes grey and stays like this for maybe 2 minutes until the dark-grey apple logo with the spinning wheel under it appears. From then on it feels like booting up normal so the slow phase is the grey-screen phase before the apple logo appears. I'm booting from a USB-disk but I don't think this is the reason why it's taking so long.

 

When I boot with "-v" to show me what's happening during that greyscreen phase it shows me that it's reading all the kernel extensions. It goes through every single extension showing "reading extensionxyz.kext" while every extension takes about half a second which explains the estimated two minutes.

 

I tried different Versions of Chameleon (2.0 RC5 r752 and r1135) and different versions of Lion (DP4 and GM) but it's the same phenomenon in every combination. I also repaired permissions and rebuilt the kernel cache using Kext Wizard but that didn't help. Any suggestions?

Link to comment
Share on other sites

Usekernelcache=Yes fixes that but the system won't load anything from /E/E as a result. Either install everything to /S/L/E or live with the long boot. For now at least.

Ok, thanks but that doesn't sound so good. Do you think there will be a soon improvement in a Chameleon update?

Link to comment
Share on other sites

Ok, no good news. I added UseKernelCache=Yes to my boot.plist. The next boot was exactly as before (processing every extension). But at the next boot it skipped processing the kexts but then it freezes at that point (now that happens every time):

post-381739-1310328057_thumb.jpg

 

My boot.plist looks like this:

<?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>Default Partition</key>
<string>hd(3,3)</string>
<key>Graphics Mode</key>
<string>1680x1050x32</string>
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>Instant Menu</key>
<string>Yes</string>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>-v</string>
<key>Legacy Logo</key>
<string>Yes</string>
<key>Rescan Prompt</key>
<string>Yes</string>
<key>Theme</key>
<string>CLEAN_MAC_OSX_BOOT</string>
<key>Timeout</key>
<string>5</string>
<key>UseKernelCache</key>
<string>Yes</string>
</dict>
</plist>

Link to comment
Share on other sites

Ok, no good news. I added UseKernelCache=Yes to my boot.plist. The next boot was exactly as before (processing every extension). But at the next boot it skipped processing the kexts but then it freezes at that point (now that happens every time):

post-381739-1310328057_thumb.jpg

 

My boot.plist looks like this:

<?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>Default Partition</key>
<string>hd(3,3)</string>
<key>Graphics Mode</key>
<string>1680x1050x32</string>
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>Instant Menu</key>
<string>Yes</string>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>-v</string>
<key>Legacy Logo</key>
<string>Yes</string>
<key>Rescan Prompt</key>
<string>Yes</string>
<key>Theme</key>
<string>CLEAN_MAC_OSX_BOOT</string>
<key>Timeout</key>
<string>5</string>
<key>UseKernelCache</key>
<string>Yes</string>
</dict>
</plist>

 

I had the same issue. I did have to install all the kexts to /S/l/E. Then I used Kext Wizard to rebuild permission and caches, Im sure there are commands to pass in command line to do this, but kext wizard gives a nice easy to manage GUI for all kext operations.

 

You can also do this in Command prompt to rebuild it.

 

sudo kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions

Link to comment
Share on other sites

No good news here... The behavior with "UseKernelCache=Yes" is like this now (chronologically):

 

- I install all the kexts to s/l/e with Kext Wizard and add "UseKernelCache=Yes" to the boot.plist

- restart -> all kexts are being processed (which is SLOW and my actual problem)

- next restart -> kexts aren't processed but boot is stuck at a certain point (see screenshot above)

- next restart -> stuck again

 

- When I repair permissions and rebuild caches again the next boot again processes all kexts again

- next restart -> stuck

 

So I dont't know what I'm doing wrong. My options now are a very slow boot or no boot at all. Any suggestions?

 

Seems I messed up a little bit. I deleted the kexts and re-installed them and now it works. I don't know what went wrong the first time. Sorry for the spam...

Link to comment
Share on other sites

  • 2 weeks later...
No good news here... The behavior with "UseKernelCache=Yes" is like this now (chronologically):

 

- I install all the kexts to s/l/e with Kext Wizard and add "UseKernelCache=Yes" to the boot.plist

- restart -> all kexts are being processed (which is SLOW and my actual problem)

- next restart -> kexts aren't processed but boot is stuck at a certain point (see screenshot above)

- next restart -> stuck again

 

- When I repair permissions and rebuild caches again the next boot again processes all kexts again

- next restart -> stuck

 

So I dont't know what I'm doing wrong. My options now are a very slow boot or no boot at all. Any suggestions?

 

Seems I messed up a little bit. I deleted the kexts and re-installed them and now it works. I don't know what went wrong the first time. Sorry for the spam...

 

Have you tried to move all kexts from /extra/extensions to /system/library/extensions and then try to rebuild caches or use "UseKernelCache=Yes" on com.apple.boot.plist?

 

I see that you have a motherboard very similar to mine. I used to have sleep and wake functioning well on Snow Leopard only with DSDT hacks (Masterchief's hacks), but with Lion I cannot wake up from Sleep and have my BIOS been erase after trying to Sleep. How did you fixed that on your Lion's install?

Link to comment
Share on other sites

Yes, i have the same issue on 10.7.

My SL install would crush the boot time of SL, its quite strange. I'm using a SSD and this boot process makes owning one irrelevant. my old disk drives can crush my SSD when booting SL vs lion. (although not once booted - heh)

 

I'll poke around the chameleon camp to see if anyone's posted there

Link to comment
Share on other sites

I'm having the same issue. The interesting thing, is that when I used my Lion install USB stick to boot it didn't check all kexts (I'll have to try it again to verify it still does that). Also IIRC, when I had no other drives but my boot drive installed, and booted from my boot drive not USB, it didn't do it either. Only when I also have my clone boot drive installed and boot from my regular boot drive it checks all kexts. When I get some free time I'll test each case again to verify, but in any case it seems there is something causing it to check all kexts when other times it doesn't. Now just need to figure out why it does in some cases and not in others.

Link to comment
Share on other sites

It's a Lion issue. Lion's kerel doesn't support loading the kextcache of directories other than SLE.

 

If you switch to XPC, it works around this by doing a bunch of trickery (loads the kexts before loading the kernel)

 

You can also recompile the kernel with this fixed.

Link to comment
Share on other sites

It's a Lion issue. Lion's kerel doesn't support loading the kextcache of directories other than SLE.

 

Thanks!

 

 

I had the same Problem here and

sudo kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions

fixed it

 

 

 

 

greetz

 

N.

Link to comment
Share on other sites

  • 2 weeks later...
Thanks!

 

 

I had the same Problem here and

sudo kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions

fixed it

 

 

 

 

greetz

 

N.

 

 

Worked for me! Still loads the ones in /Extra/Extensions/ as well, which is good because I was worried that it wouldn't.

 

Note: You DON'T need to place all your extensions in /System/Library/Extensions in order for this to work. Chameleon loads the kexts in /Extra/Extensions first, then OS X boots the kextcache.

Link to comment
Share on other sites

Does it have any influence on the boot time whether or not all extensions are in in S/L/E => kextcache ?

 

Slightly, I suppose-- the extensions in /Extra/Extensions are injected at boot-time, meaning that they are loaded and processed individually. Using a kextcache, the extensions in /System/Library/Extensions are cached.

 

If you have LOTS of extensions in/Extra/Extensions, just build an Extensions.mkext in that folder as well and Lion will load it like the one in /System/Library/Extensions, rather than loading each kext individually.

Link to comment
Share on other sites

Slightly, I suppose-- the extensions in /Extra/Extensions are injected at boot-time, meaning that they are loaded and processed individually. Using a kextcache, the extensions in /System/Library/Extensions are cached.

 

If you have LOTS of extensions in/Extra/Extensions, just build an Extensions.mkext in that folder as well and Lion will load it like the one in /System/Library/Extensions, rather than loading each kext individually.

Could you spell out the Command Line instructions that have to be entered for the kexts in /Extra/Extensions folder?

 

More basic question in addition, do I have to repair permissions for kexts within /Extra/Extensions when I modify or replace kexts within that folder as well?

 

Looking forward to your guidance on both questions,

nesnfsn in sunny South Florida

Link to comment
Share on other sites

  • 10 months later...

Didn't work for me. Still loads all the extensions. When i put the command it shows

 

JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0

 

and then

Created mkext archive /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext.'

 

 

Thanks

Link to comment
Share on other sites

JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0-this is not a problem!

command is 2

sudo kextcache -system-prelinked-kernel -all-loaded

 

and

 

sudo kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext -z /System/Library/Extensions/

Link to comment
Share on other sites

  • 7 months later...

MY system booting ok....... but i can't get into the partition selection..... it says to press any key, when i press something it freezes...... enabling instant menu doesn't even load chameleon and freezes the system with a black screen....... i can boot to my second partition which has windows on it by selecting default partition from champlist bt i hv to edit the xml from a installer disc to get back to osx........ what to i do? since using startup disk isn't an option on Hackintoshes........ what do I do? quiet boot works fine...... but i don't get to select the partition.....

Link to comment
Share on other sites

 Share

×
×
  • Create New...