Jump to content

[Guide] Boot from EFI partition, zero modification installs on Intel SSE2 or better...


munky
 Share

1,404 posts in this topic

Recommended Posts

to be honest, ive no idea. however, it seems to me that kextcaches are the way to go.

 

so instead of having

 

/System/Booter/Extensions/*.kext on your EFI, you'd have:

 

/System/Booter/Extensions.mkext

 

the benefits are:

 

- compressed, so takes up less space and loads quicker

- no permissions worries

- audio has more of a chance of working apparently (according to TheKing).

 

To create an mkext, do the following (assumes you have EFI partition mounted on /Volumes/EFI and your extra kexts are in a folder called 'kexts' in the current folder):

 

chmod -R 755 kexts/*.kext

chown -R root:wheel kexts/*.kext

kextcache -a i386 -m /Volumes/EFI/System/Booter/Extensions.mkext kexts

 

give that a try and see what happens.

Link to comment
Share on other sites

Been playing around on and off all day with my install. For the most part it's great. However, QE/CI seems to be really slow/non-existent. Screen Saver & iTunes visualizer are like 10fps at best.

 

Using NVkush on my 8800GTS.

 

Ideas?

 

-k00k

Link to comment
Share on other sites

Already tried, the system ignore it and won't boot :)

 

drwxr-xr-x  3 root  admin	  102 28 Set 00:51 .
drwxr-xr-x  3 root  admin	  102 26 Set 08:53 ..
-rwxr-xr-x  1 root  admin  2793716 28 Set 00:51 Extensions.mkext

 

Anyway the file doesn't have the @ attribute...

Link to comment
Share on other sites

Already tried, the system ignore it and won't boot :)

 

drwxr-xr-x  3 root  admin	  102 28 Set 00:51 .
drwxr-xr-x  3 root  admin	  102 26 Set 08:53 ..
-rwxr-xr-x  1 root  admin  2793716 28 Set 00:51 Extensions.mkext

 

Anyway the file doesn't have the @ attribute...

 

So... something new:

 

The command xattr -l lists the HFS+ Extended attributes.

 

For every kext tagged as @, the extended attributes are:

 

bash-3.2# xattr -l dsmos.kext
com.apple.quarantine: 0000;48dc835a;Firefox;|org.mozilla.firefox
bash-3.2# xattr -l SMBIOSEnabler.kext
com.apple.quarantine: 0000;48dc835a;Firefox;|org.mozilla.firefox
bash-3.2#

 

So now I've to try to give the same extended attributes to every kext without @

 

The syntax to set extended attributes is:

 

xattr -w attr_name attr_value file [file ...]

 

But... return an error:

 

bash-3.2# xattr -w com.apple.quarantine 0000;48dc835a;Firefox;|org.mozilla.firefox AppleHDA.kext
bash: syntax error near unexpected token `|'
bash-3.2#

Link to comment
Share on other sites

to be honest, ive no idea. however, it seems to me that kextcaches are the way to go.

 

so instead of having

 

/System/Booter/Extensions/*.kext on your EFI, you'd have:

 

/System/Booter/Extensions.mkext

 

the benefits are:

 

- compressed, so takes up less space and loads quicker

- no permissions worries

- audio has more of a chance of working apparently (according to TheKing).

 

To create an mkext, do the following (assumes you have EFI partition mounted on /Volumes/EFI and your extra kexts are in a folder called 'kexts' in the current folder):

 

chmod -R 755 kexts/*.kext

chown -R root:wheel kexts/*.kext

kextcache -a i386 -m /Volumes/EFI/System/Booter/Extensions.mkext kexts

 

give that a try and see what happens.

 

I just gave this a try and found no joy. I may well have done it wrong, but I don't think so. I copied my kext from the efi partition into a local folder called kexts. Then, as root, I ran the commands you provided. Once the mkext was built I removed the efi Extensions folder.

 

When I rebooted the system I got one of two results. With kernel flags "-v -f" I got a hang waiting for root device which I think means the IOATAfamily kext failed to load. Without the "-f" I got a kernel panic with messages about an invalid CPU. I think that means the AppleDecrypt.kext failed to load.

 

These are the same kext that reside in the efi Extensions folder and from there they appear to work.

 

Any ideas what I may have done wrong, or what to try next?

Link to comment
Share on other sites

The answer of Superhai :):D:D

 

One thing to notice, the kexts need this in the info.plist file:

 

		<key>OSBundleRequired</key>
	<string>Root</string>

 

or

 

		<key>OSBundleRequired</key>
	<string>Console</string>

or they will not load.

 

</dict>

</plist>

 

 

Here: http://forum.insanelymac.com/index.php?s=&...st&p=803725

 

I'm still working but I feel close to the solution :(

Link to comment
Share on other sites

I've got it booting off the EFI partition now, but atm, it's barely working.

 

I cloned the kexts off the generic.iso boot 132 disk, then I added in the 'working' NVKush posted earlier in the thread, System.kext from my previous hackintosh install and added the AppleHDA kexts for boot 132 (here). I sorted permissions and checked they all had the 'Root' value in the .plist. I made a kextcache using the method munky posted. It boots, but there is still no sound or QE/CI.

I also had it working in the exact same manner using NVinject and AzaliaAudio kexts instead of HDA and NVkush, but there was still no sound or QE/CI.

Adding EFI strings makes no difference.

Sleep works though :D

 

Any ideas folks?

Link to comment
Share on other sites

dunno about geforce, but natit on my EFI makes my ATI X1800 work fine.

 

btw kextcache works for me:

 

/System/Booter/Extensions.mkext

 

Munky,

 

When I tried to build my kextcache I got a large number of errors stating that plugin kext were missing but the listed kext would be included anyway. Did you receive the same kind of errors? Is this a problem or something normal because of using just a small subset of the required kext?

Link to comment
Share on other sites

u can use EFI Studio.

 

I tried that, but no luck. Just to make sure I did it right, I launched EFIStudio, chose my 8800GTS from the list, clicked Add Device, and then Write to com.apple.Boot.plist

 

That's the correct procedure with EFIstudio, yes?

 

Still no QE ...argh.

Link to comment
Share on other sites

EFI strings dont work with this bootloader afaik. i never use em anyway.

 

re: kextcache - yes, i get those errors. its because we're not caching every kext and dependency, just a subset. as the error message states, it still includes them because at runtime the dependencies might (will) be available from elsewhere.

Link to comment
Share on other sites

With great work done by "kaitek", i'm happy to announce that we have an on-the-fly opcode patcher

This would mean AMD users could run any application which specifically tests for intel cpus - without having to rely on decrypts or patched versions

 

IM:

That's nothing short of revolutionary... and it works?

 

Mercurysquad:

It's another step in our vision of unifying the various "types" of the xnu kernel into one universal kernel for all. AMD users will not longer have to wait anymore for special versions of apps / kernels. Going by initial testing i have just done some hours ago, it works 100% ;) Although there are some issues with performance under a lot of stress on the memory manager. We are stress-testing it to make sure it offers no regression.

 

IM:

I guess this opens for retail installs on AMD as well?

 

Mercurysquad:

Yes AMD users can now install retail as long as they use this kernel. While this may still not be technically fully vanilla - which usually refers to using 'vanilla' kernel in addition to all other parts of the OS, it is still a great step for all amd users where they now will enjoy the same benefits as intel users do. Also, an added bonus for SSE2 intel users is that we can patch any opcode, so the lddqu issue I talked about earlier with the emulator, vanishes. we get 400x faster lddqu emulation compared to the previous 3rd generation emu's lddqu routine. As lddqu is also the 2nd most used opcode, this will improve performance of applications a lot. We still need to run benchmarks on whether the performance hit of on-the-fly patching for sse2 is higher or lower than the performance gain we'll see by patching it, but for amd cpuid emulation, this is not an issue, as cpuid is not performance critical and very sparsely used.

Kaitek built an entire disassembler for this, which is blazingly fast. From our initial reports, it was able to dissassemble and patch microsoft word (a 40 mb image) in 200 milliseconds. There have been other changes by me to the timestamp counter and cache detection routines which adds support for a lot of legacy CPUs. this part of the code was somewhat 'hackish' in the ToH source. we are now perfecting these changes. Once we can verify that there are no regressions in functionality/platform support compared to current toh kernels, the 'voodoo' kernel will be available for all ;)

Link to comment
Share on other sites

well no, because voodoo 9.5.0 isnt out yet.

 

its currently in alpha but its likely even the beta wont have the AMD patching. have to wait for final.

Yes,I am waiting for the final release of voodoo to test and see what happens on AMD -Intel PCs are busy-.BTW,good work munky ;)

Link to comment
Share on other sites

EFI strings dont work with this bootloader afaik. i never use em anyway.

 

Any other ideas on how I can get QE enabled? Other than that, my video is fine with NVkush. Correct resolution, etc. Just no QE and Core Image is reporting as: Software.

Link to comment
Share on other sites

Any other ideas on how I can get QE enabled? Other than that, my video is fine with NVkush. Correct resolution, etc. Just no QE and Core Image is reporting as: Software.

 

I tried nvkush - got the same result - no accelerated graphics. I switcvhed to natit and that corrected the problem. Have you tried natit?

 

Munky:

 

I looked at my kextcache errors again and found I had missed some. Critical kext had been dropped due to ownership problems :angel: I corrected that and all but IOADAFamily.kext were included in the mkext.

 

When I booted - without the patched IOATAFamily.kext all $%#^ broke loose. The system ran from the mkext - just very sloooow and my main drive went from 300Gb to 128GB. disk utility would just hang when looking at it.

 

When I booted my external USB system the internal drive was magically back to300Gb. I restored the internal EFI partition from the external USB drive and all is back to normal. I can boot from an efi mkext. I just need to locate a better IOATAFamily.kext.

Link to comment
Share on other sites

I tried nvkush - got the same result - no accelerated graphics. I switcvhed to natit and that corrected the problem. Have you tried natit?

 

I have tried Natit 0.2 and I just tried it again to make sure. It just hangs.

 

last thing on screen is: /usr/sbin/ocspd[83]: starting

Then it just hangs there.

 

Image attached.

 

Any ideas?

post-294038-1222620643_thumb.jpg

Link to comment
Share on other sites

I have tried Natit 0.2 and I just tried it again to make sure. It just hangs.

 

last thing on screen is: /usr/sbin/ocspd[83]: starting

Then it just hangs there.

 

Image attached.

 

Any ideas?

 

When you boot the system are you using the "-f" kernel flag? I frequently get hangs if I don't use it.

Link to comment
Share on other sites

When you boot the system are you using the "-f" kernel flag? I frequently get hangs if I don't use it.

 

Yes, still hangs with -f -v

 

Just tried again and it just ended on: display: family specific matching fails

 

Which I've read isn't a big deal.

 

Has to be a way to fix QE with this boot method and NVkush, no?

Link to comment
Share on other sites

 Share

×
×
  • Create New...