Jump to content
polyzargone

Complete set of files (Clover/Enoch) for El Capitan/Sierra

Recommended Posts

Hello dear Latitude D830 owners !
 

UPDATED FOR El Capitan Final Release : WORKS 100% !

UPDATED FOR macOS Sierra 10.12 Developer Preview !

 

See post #9

 

For those who tried to install 10.11 DP1, you may have problem booting your USB stick on your system and actually end up with a "still waiting for root device" error.
 
After some research, I finally managed to successfully boot and install El Capitan on it by patching the DSDT from original bootpack for D830 Nvidia series.
 
The patch is quite simple and you'll just need to edit your DSDT and apply PJAlms "Basic Apple Device Renames" available here. (just follow instructions).
 
 
 
Basically, it will change this :

            Device (USB2)
            {
                Name (_ADR, 0x001D0001)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake

to this :

            Device (UHC3)
            {
                Name (_ADR, 0x001D0001)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake

Also, you must change device (ECHI) to device (EHC1). Actually, this the most important edit. Renaming USBx to UHCx doesn't really matters.
 
However on my system, I still have 1 of the 3 ports that isn't working at all (they all works fine on Yosemite). It could be related to some errors in the proposed DSDT so if you see any, please report ! Fixed ! see below.
 
Sleep/wake don't work on the other hand . Forgot to set Hibernate mode to 0 :P :
 
 

sudo pmset -a hibernatemode 0

 
[EDIT] Thanks to Pokenguyen, stinga111 & VCH888, there's a guide to fix all USB related issues. However, DSDT edits may still be usefull.
 
 
[EDIT 2] Attached is customized DummyUSBEHCIPCI.kext thanks to the mentioned Guide above and updated DSDT.
 
Also :
 
I found out that using a MacBookPro3,1 SMBios eliminates the need of using any extra kext since all ports are already configured for use with D830 hardware :
 
- 6 PRT in EHC1 and 4 PRT in EHC2 in OS X 10.11 IOUSBHostFamily.kext vanilla kext.
 
So it's up to you. Note that DSDT editing from ECHI to EHC1 is still mandatory in every case.
 
You can use the attached DSDT, it's already patched and works fine whith both Clover and Chameleon.
 
 
Works with Dell Latitude D830 Nvidia QUADRO NVS 135M & Nvidia QUADRO NVS 140M
 

EL_Capitan_D830.png


Note : Files removed. Complete new set in post #9

post-54297-0-25267900-1434926182_thumb.png

Edited by polyzargone
  • Like 1

Share this post


Link to post
Share on other sites

Now the GM is out and chances are it will be the final release, I can confirm that the DummyUSBEHCI.kext is working perfect. All USB ports are recognized and all devices mount and eject with no issue.
 
Attached is the final version with updated dependencies (version number set to 900 so we should be fine with next updates).
 
Make sure SIP is disabled by setting CsrActiveConfig value to 0x1 (minimum) in Clover's config.plist and Chameleon's org.chameleon.Boot.plist.
 
For Clover users :

    <key>RtVariables</key>

    <dict>

        <key>BooterConfig</key>

        <string>0x28</string>

        <key>CsrActiveConfig</key>

        <string>0x1</string>

    </dict>

For Chameleon (Enoch branch) users :

        <key>CsrActiveConfig</key>

        <string>1</string>

Note : File removed. Complete new set in post #9

Edited by polyzargone

Share this post


Link to post
Share on other sites

I guess that setting CsrActiveConfig to 1 only disables kext signing but not FileSystem protection, i.e. if you delete a kext from /S/L/E, you still have trouble emptying the trash, right? There should be no such restrictions if you set CsrActiveConfig to 3 or 7 for instance.
 
Having played around with various values after noticing the verbose 7bit info when booting with Enoch r2760, I believe SIP configuration is arranged as follows (sorry, I have not done much reading or research on this yet):

nibble:  (4)  3   2   1   |  (4)  3   2   1
bits:    (X)  -   -   -   |  (X)  -   -   -

         N/A  |   |   |      N/A  |   |   |
              |   |   |           |   |   |
              |   |   |           |   |   |
              |   |   \           |   |   |
              |   \    Apple Int. |   |   \
              \    DTrace Rest.   |   \    Kext Sig.
               NVRAM Prot.        \    FS Prot.
                                   Debug Rest.

On the basis/assumption that Apple Internal seems disabled by default (bit set to 0) and that 4th bit of each nibble is unused, you would therefore set CsrActiveConfig to:

  • -000x011 in binary (where x is set to 0 or 1), i.e. 0x03, i.e 3 in decimal to disable kext signing and filesystem protection
  • -110x111 in binary (where x is set to 0 or 1), i.e. 0x63 or 0x6F, i.e 103 or 111 in decimal to disable everything

If I boot 10.11DB8 with CsrActiveConfig=103, here's the result in Terminal:
E6440:~ admin$ sudo csrutil status
System Integrity Protection status: enabled (Custom Configuration).
 
Configuration:
Apple Internal: disabled
Kext Signing: disabled
Filesystem Protections: disabled
Debugging Restrictions: disabled
DTrace Restrictions: disabled
NVRAM Protections: disabled
 
This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

Share this post


Link to post
Share on other sites

Correct !

 

For my part, CsrActiveConfig is set to 0x3 using Clover and 103 3 using Chameleon. I believe 0x67 or 103 is not necessary for the rest of us as it disables things that probably most users doesn't even know what they are meant for (i.e. nvram protection, DTrace etc.).

 

I think 0x3 or 3 is a good compromise. There's a good sum up of what is is what in this post at InsanelyMac (don't get me wrong, yours is very instructive too :P).

 

That said, I'm not entirely sure this post is up to date :unsure:.

 

Booting OS X 10.11GM (15A282a) with 0x3 (Clover) :

MacBook-Pro:~ polyzargone$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).

Configuration:
    Apple Internal: disabled
    Kext Signing: disabled
    Filesystem Protections: disabled
    Debugging Restrictions: enabled
    DTrace Restrictions: enabled
    NVRAM Protections: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
  • Like 1

Share this post


Link to post
Share on other sites

I've hardly looked into this actually...  :oops:

 

I just played with CsrActiveConfig on my freshly updated E6440 this afternoon, having noticed your previous post and installed Enoch r2760 on my E6220 last night.

 

Indeed, a value of 1 would be the absolute minimum -to disable kext signing- and a value of 3 probably preferred to support kexts full deletion/easy replacement from/in /S/L/E.

 

cDock works much better with FileSystem protection disabled!  :mrgreen:

  • Like 2

Share this post


Link to post
Share on other sites

Well now, I'm looking for a working way to install OS X 10.11 GM on the D830 using solely Chameleon (Enoch branch) and I must confess I didn't had any success so far.

 

I tried everything and for some unknown reason, none of the kexts seems to be injected whenever I place them in Extra or E/L in the USB pen. I didn't tried in S/L/E though but I would be very surprised that's the only way to make it work…

 

Using various revs of Enoch from r2737 to r2760 didn't change anything at all even if I can clearly see that SIP is disabled in verbose.

 

But I will open another topic for that ;).

Share this post


Link to post
Share on other sites

OK Guys !
 
Here's the ultimate update for D830 Nvidia users on El Capitan 10.11.1 Beta (15B22c).
 
Fixed a weird behavior when plugging USB device in the back port as you can see here. Actually, the fix is really simple as you just have to set UsbConnector from 255 (internal) to 3 (standard USB connector) as explained in this thread.
 
 

ba0032c3-0f41-4408-8aba-0b16fa7c4605.jpg

 
 
Also, I changed DummyUSBEHCIPCI.kext to USB_Injector.kext because it can be installed in EFI/CLOVER/kexts/10.11 (and most likely in Extra/Extensions though I did not test it) instead of Library/Extensions or S/L/E and is update proof and doesn't require to increase Bundle version number in info.plist as it is with Dummies.kext.
 
Not a big deal but seems a little bit more flexible way to fix USB on El Capitan to me ;).
 
Consequently, you now have to delete any DummyUSBEHCIPCI.kext wherever it is and rebuild cache in order to use the USB_Injector.kext ! This is a very important thing. Do not forget it ;).
 
Finally, I also added a patch in config.plist to find any EHC1/EHC2 occurrences in DSDT and replace them by EH01/EH02 to match IONameMatch in USB_Injector.kext.
 
You'll have to edit the DSDT by yourself in case you're using Chameleon's branch Enoch cause AFAIK, there's no way to do this with this bootlader. Patched DSDT attached in new Extra.zip, see above.
 
Here it is :
 

 

            <key>Name</key>
            <string>DSDT.aml</string>
            <key>Patches</key>
            <array>
                <dict>
                    <key>Comment</key>
                    <string>EHC2 to EH02</string>
                    <key>Find</key>
                    <data>
                    RUhDMg==
                    </data>
                    <key>Replace</key>
                    <data>
                    RUgwMg==
                    </data>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>EHC1 to EH01</string>
                    <key>Find</key>
                    <data>
                    RUhDMQ==
                    </data>
                    <key>Replace</key>
                    <data>
                    RUgwMQ==
                    </data>
                </dict>
            </array>

 


 
That's it. Everything should now be 100% working.
 
Enjoy
 
NB : The Extra.zip attached already contains a new patched DSDT with EHC1/EHC2 to EH01/EH02 for Enoch users (latest revision is strongly advised).
 
[uPDATE] New USB_Injector.kext_v2 attached ! Hopefully, it should fix the last issue : lack of power when connecting some devices.
 
[uPDATE 2] New simplified set of files :
 
• CLOVER.zip file with everything configured and ready to use "as it".
 
• Extra.zip with everything configured and ready to use "as it" (patched DSDT with renamed EHC1/EHC2 to EH01/EH02 included).
 
Both with USB_Injector.kext_v2.

 

 
[uPDATE 3] Now macOS Sierra 10.12 Ready (with some edits) :
 
• CLOVER_Sierra.zip file with everything configured and ready to use "as it".
 
• Extra_Sierra.zip with everything configured and ready to use "as it" (patched DSDT with renamed EHC1/EHC2 to EH01/EH02 included).
 
:excl:  SMBios changed to MacBookPro7,1 to bypass Apple's limitation for unsupported models. Your CPU must support SSE4,1 instructions !
 
Do NOT use any other SMBios or it will not work. Also, please note that the USBInjector.kext provided is designed for this particular SMBios so again, do not use any other one or you won"t have full USB support (most likely no USB at all).
 
You'll need the latest version of Clover or Enoch r2839.

Extra.zip

CLOVER.zip

Extra_Sierra.zip

CLOVER_Sierra.zip

  • Like 2

Share this post


Link to post
Share on other sites

Hi,

 

Thanks for how to replace DummyUSBEHCIPCI.kext by USB_Injector.kext. I spent an hour trying to make DummyUSBEHCIPCI.kext work from EFI/CLOVER/kexts/10.11...

 

Works also on D630.

 

Thanks a million.

 

Jief

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...