Jump to content

An almost stable laptop with El Capitan. Assistance needed.


DemisesAngel
 Share

6 posts in this topic

Recommended Posts

I've come extremely close, or at least it feels close, to getting a completely stable Toshiba laptop to run El Capitan. I pulled the DSDT using Xubuntu. I've run some basic DSDT patches to clean up the naming conventions and minor fixes. Most of those came from RehabMan's repository which included the "Intel HD 3000 Low Res Fix, Rename to IGPU, rename _DSM to XDSM" to name a few. I'll admit that I'm not really familiar with analyzing the DSDT to find the proper patching, I know the purpose of it and to look for proper patches, but it's mostly been trial and error coupled with the fact that I've trying to do this for a family member and have limited time to return it.

 

What I'm struggling with is the sleep function (Wake Reason: EHC2, EHC1) which I tried to remedy with the ECHI Fix but did not work and the integrated webcam/microphone to work (Toshiba UVC...). The audio was a bit tricky for me as I've only worked with Realtek and used toleda's guide for my other machines but this laptop has the Conexant 20585 sound source. I was able to get that working by utilizing the AppleHDA Patcher by Micky1979 and Mirone. I will say I edited the DSDT a bit based on their guide but may have misinterpreted it because I couldn't get it to work until I installed the kexts that the application generated.

 

I don't know if anyone wants to help me figure this out but I would like to get this working seeing that it's the first laptop I've done this to and I've come this far with it. I can post the DSDT (Original and Patched) and the config.plist that I'm using with Clover if anyone does want to help me.

 

Thank You :)

 

Edit: Redacted statement about SSDT's. Those are fine now.

Link to comment
Share on other sites

All USB ports work. Going off memory, I haven't seen a setting within the BIOS pertaining to the USB Wake options but I'll look again. I've had it fail to go to sleep with no devices connected to the laptop. Can the internal devices such as the webcam/microphone or touchpad be construed as a USB device?

 

As for the FakeSMC, I haven't paid attention to the versions as this one has served me well for my desktop builds and I usually pull from the guides, unless I know what I'm looking for and will just go straight to the source (i.e. trying to run OS X on a laptop). I can remove the NullCPUPM to see if I have any adverse effects. 

 

The Toshiba specifications are:

 

Intel Core i5-2430M

Intel HD 3000

Intel HM65 Chipset

Conexant 20585 Audio Codec

Synaptics Touchpad

RTL8188CE WLAN

AR8152 Ethernet

Integrated Webcam*

 

*No longer appearing in the hardware since I redid my DSDT for erroneous patches.

Link to comment
Share on other sites

Can the internal devices such as the webcam/microphone or touchpad be construed as a USB device?

 

Integrated Webcam*

 

*No longer appearing in the hardware since I redid my DSDT for erroneous patches.

 

 

 

Yes the webcam can/is linked to an internal usb bus. Have you heard about them changing something about USB in 10.11+? My internal bluetooth and webcam weren't working until I discovered this. I was trying to fix the BT and ended up fixing the webcam along with it. Basically El Capitan changed the method that it gets the information about your USB ports and internal hubs and it grabs it from ACPI now (if I understand it correctly) But since the info is usually wrong in the DSDT about your usb ports, apple's port injectors end up injecting the ports for your SMBios which it would be very unlikely your ports on your machine would match up with the mac model of the SMBios you're using.

 

I haven't figured out how to correct the DSDT with the proper port information, but RehabMan's 'USBInjectAll' kext injects every single port (I believe) and you have to rename EHC1 to EH01 and EHC2 to EH02 so apples built in port injectors for the smbios you're using don't override his port injector.

 

I installed the kext to EFI\CLOVER\kexts\10.11 and used just a clover DSDT auto patch to change the EHC1/2->EH01/2 (since it's a simple enough patch that might as well just have clover do it on-the-fly). After that point my bluetooth came back and the webcam as a bonus. Looking at the IOReg I removed the ports that were injected which didn't match my machine (werent used for anything) from the USBInjectAll.kext info.plist (since you can't really used the ALL port injector for a prolonged period of time or you'll have issues) and now my BT+wifi+webcam are all working! :)

 

I just thought I'd post this since it seems relevant, and I just fixed the same issue (non working webcam) using this method.

 

Read a little bit about it here: http://www.insanelymac.com/forum/topic/308325-guide-1011-full-speed-usb-series-89-keeping-vanilla-sle/?hl=usb

 

Then I'll save you some time, RehabMan made his ALL port injector so you don't have to look at the IOReg from an older than 10.11 version of OSX and you can just use that to see the ports you need, edit it down, and you've got a custom port injector. -> https://github.com/RehabMan/OS-X-USB-Inject-All

 

I would like to know how to do it as a DSDT edit instead just for future reference but it works perfectly fine using a custom port injector and it's how apple does it so there's that!

 

Anyway here you can see at EH02 -> PR21 -> HP25 is where the cam is connected and EH01 -> PR11 -> HP15 is where my bluetooth pci-e card is connected. (it's an AR9285 WiFi + AR3011 BT combo card) but the wifi was working but not the bluetooth before I did this port injector fix. The USB-2.0CRW not sure what that is but I kept the port since it's in use, maybe Card ReadWrite? probably the sd card reader (but still doesn't work probably needs a kext if there is one for it, but I'm not worried about that for now)

fGWPSfg.png

 

And here's what my Info.plist of my custom USBInjectAll kext looks like: (I removed everything except my ports that I saw used and made the port count the highest port value (since 'port count' is deceptive it's not a true count just the highest port address used... So HP25 was the highest and so the 'port count' on hub two, and hub one just had HP15 in use so it's value was the "port count"

 

 

 

<key>CFBundleIdentifier</key>

            <string>com.rehabman.driver.USBInjectAll</string>

            <key>Configuration</key>

            <dict>

                <key>8086_1e31</key>

                <dict>

                    <key>port-count</key>

                    <data>

                    CAAAAA==

                    </data>

                    <key>ports</key>

                    <dict>

                        <key>HS01</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            AQAAAA==

                            </data>

                        </dict>

                        <key>HS02</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            AgAAAA==

                            </data>

                        </dict>

                        <key>HS03</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            AwAAAA==

                            </data>

                        </dict>

                        <key>HS04</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            BAAAAA==

                            </data>

                        </dict>

                        <key>SSP5</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            BQAAAA==

                            </data>

                        </dict>

                        <key>SSP6</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            BgAAAA==

                            </data>

                        </dict>

                        <key>SSP7</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            BwAAAA==

                            </data>

                        </dict>

                        <key>SSP8</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>3</integer>

                            <key>port</key>

                            <data>

                            CAAAAA==

                            </data>

                        </dict>

                    </dict>

                </dict>

                <key>EH01</key>

                <dict>

                    <key>port-count</key>

                    <data>

                    AQAAAA==

                    </data>

                    <key>ports</key>

                    <dict>

                        <key>PR11</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>255</integer>

                            <key>port</key>

                            <data>

                            AQAAAA==

                            </data>

                        </dict>

                    </dict>

                </dict>

                <key>EH02</key>

                <dict>

                    <key>port-count</key>

                    <data>

                    AQAAAA==

                    </data>

                    <key>ports</key>

                    <dict>

                        <key>PR21</key>

                        <dict>

                            <key>UsbConnector</key>

                            <integer>255</integer>

                            <key>port</key>

                            <data>

                            AQAAAA==

                            </data>

                        </dict>

                    </dict>

                </dict>

                <key>HUB1</key>

                <dict>

                    <key>port-count</key>

                    <data>

                    BQAAAA==

                    </data>

                    <key>ports</key>

                    <dict>

                        <key>HP15</key>

                        <dict>

                            <key>port</key>

                            <data>

                            BQAAAA==

                            </data>

                            <key>portType</key>

                            <integer>2</integer>

                        </dict>

                    </dict>

                </dict>

                <key>HUB2</key>

                <dict>

                    <key>port-count</key>

                    <data>

                    BQAAAA==

                    </data>

                    <key>ports</key>

                    <dict>

                        <key>HP23</key>

                        <dict>

                            <key>port</key>

                            <data>

                            AwAAAA==

                            </data>

                            <key>portType</key>

                            <integer>2</integer>

                        </dict>

                        <key>HP25</key>

                        <dict>

                            <key>port</key>

                            <data>

                            BQAAAA==

                            </data>

                            <key>portType</key>

                            <integer>2</integer>

                        </dict>

                    </dict>

                </dict>

            </dict>

            <key>IOClass</key>

            <string>org_rehabman_USBInjectAll_config</string>

            <key>IOMatchCategory</key>

            <string>org_rehabman_USBInjectAll_config</string>

            <key>IOProviderClass</key>

            <string>IOResources</string>

        </dict>

        <key>EH01-internal-hub</key>

        <dict>

            <key>CFBundleIdentifier</key>

            <string>com.rehabman.driver.USBInjectAll</string>

            <key>IOClass</key>

            <string>org_rehabman_USBInjectAll</string>

            <key>IOProbeScore</key>

            <integer>5000</integer>

            <key>IOProviderClass</key>

            <string>AppleUSB20InternalHub</string>

            <key>kConfigurationName</key>

            <string>HUB1</string>

            <key>locationID</key>

            <integer>487587840</integer>

        </dict>

        <key>EH02-internal-hub</key>

        <dict>

            <key>CFBundleIdentifier</key>

            <string>com.rehabman.driver.USBInjectAll</string>

            <key>IOClass</key>

            <string>org_rehabman_USBInjectAll</string>

            <key>IOProbeScore</key>

            <integer>5000</integer>

            <key>IOProviderClass</key>

            <string>AppleUSB20InternalHub</string>

            <key>kConfigurationName</key>

            <string>HUB2</string>

            <key>locationID</key>

            <integer>437256192</integer>

        </dict>

        <key>MacBookAir5,2-EH01</key>

        <dict>

            <key>CFBundleIdentifier</key>

            <string>com.rehabman.driver.USBInjectAll</string>

            <key>IOClass</key>

            <string>org_rehabman_USBInjectAll</string>

            <key>IONameMatch</key>

            <string>EH01</string>

            <key>IOProviderClass</key>

            <string>AppleUSBEHCIPCI</string>

            <key>kConfigurationName</key>

            <string>EH01</string>

            <key>model</key>

            <string>MacBookAir5,2</string>

        </dict>

        <key>MacBookAir5,2-EH02</key>

        <dict>

            <key>CFBundleIdentifier</key>

            <string>com.rehabman.driver.USBInjectAll</string>

            <key>IOClass</key>

            <string>org_rehabman_USBInjectAll</string>

            <key>IONameMatch</key>

            <string>EH02</string>

            <key>IOProviderClass</key>

            <string>AppleUSBEHCIPCI</string>

            <key>kConfigurationName</key>

            <string>EH02</string>

            <key>model</key>

            <string>MacBookAir5,2</string>

        </dict>

        <key>MacBookAir5,2-XHC</key>

        <dict>

            <key>CFBundleIdentifier</key>

            <string>com.rehabman.driver.USBInjectAll</string>

            <key>IOClass</key>

            <string>org_rehabman_USBInjectAll</string>

            <key>IONameMatch</key>

            <string>XHC</string>

            <key>IOProviderClass</key>

            <string>AppleUSBXHCIPCI</string>

            <key>kConfigurationName</key>

            <string>XHC</string>

            <key>kIsXHC</key>

            <true/>

            <key>model</key>

            <string>MacBookAir5,2</string>

        </dict>

 

 

 

Hopefully this info will help you as it did me a couple days ago and then last night I corrected it to only inject my ports! :)

Link to comment
Share on other sites

You have a SandyBridge platform so 2 x important things you ought to know:

  1. MacBookPro5,5 SMBIOS is a wrong profile, you should use MacBookPro8,1
  2. You'll need to patch AICPUPM to avoid CPU power management-related KP once you get rid of NullCPUPM (which you should do). The patch can be applied on the fly through Clover or you can apply it directly to the vanilla kext found in /S/L/E. You'll find details of the patch through a Search for "AICPUPM patch" on this very forum. Alternatively, grab it here.

 

So, some work to be done for EC on that Tosh, but you'll be all set for Sierra!

 

So with the SSDT's that are already in my ACPI>patched folder, should I remove those and generate one with the Piker-Alpha script?

 

Edit: Wait, this still seems to be utilizing kext options. You said patching on the fly with Clover, which feels like a better option to keep a closer vanilla install (in case a format awaits in my future) but I'm not seeing that post. I'll keep looking...

 

Edit 2: Decided just to use the Patched APICPUPM kext as I couldn't achieve it through Clover. I guess I wasn't doing it right. Sleep still doesn't work, so I'll have to take a look into what WhistlingMoonTraveller posted.

Link to comment
Share on other sites

Attached.

 

Edit: I was able to get sleep achieved my removing the _PWR object from both EH01, EH02, and HDEF. When I had just removed it from EH01 and EH02 my new "Wake Reason" now included HDEF. The only downside, not a huge one by any means, is to turn it back on I need to press the power button and the menu bar sound indicator slide doesn't update if I change it within the Sound Options menu.

 

Now I need to focus on getting the Internal Microphone to be recognized and the Integrated Camera to work. The camera indicator light comes on but only a black screen appears.

DSDT.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...