Contribute
Register

Samsung Ativ Book 6 - wake not working

Status
Not open for further replies.
Joined
Aug 21, 2014
Messages
46
Motherboard
Samsung Ativ Book 6
CPU
i7-3635QM / HM76
Graphics
HD4000 / AMD8870M / 1366x768
Mobile Phone
  1. Android
I'm not getting my laptop to wake from sleep. System goes down to sleep fine, but when I press the power button to wake, it just starts the fans, but doesn't show anything on screen. I need to shutdown holding power button.

- DSDT patches:
Code:
"Rename _DSM methods to XDSM"
"Rename GFX0 to IGPU"
"Fix *pnp/pnp lower case Error"
"Fix _WAK Arg0 v2"
"HPET Fix"
"SMBUS Fix"
"IRQ Fix"
"RTC Fix"
"OS Check Fix (Windows 8)"
"Fix Mutex with non-zero SyncLevel"
"Add IMEI"
"7-series/8-series USB"
"Audio Layout 3"
"Samsung Ativ Book 7" //battery
"Brightness fix (ACPI 100)"
"HD4000 Low Resolution"

- SSDT's common patches like renaming GFX0 to IGPU.

- SSDT-7 added call to _OFF from _INI.
- SSDT-8 moved EC code from _OFF to _REG on DSDT.

- Output of: "sudo touch /System/Library/Extensions && sudo kextcache -u /"
Code:
kext org.rehabman.injector.FakePCIID-Broadcom-WiFi  103019000 is in exception list, allowing to load
kext org.tw.CodecCommander  206019000 is in exception list, allowing to load
kext com.no-one.BrcmPatchRAM2  202079000 is in exception list, allowing to load
kext com.no-one.BrcmFirmwareStore  202079000 is in exception list, allowing to load
kext org.emlydinesh.driver.ApplePS2Keyboard  405009000 is in exception list, allowing to load
kext org.emlydinesh.driver.ApplePS2Controller  405009000 is in exception list, allowing to load
kext org.emlydinesh.driver.ApplePS2SmartTouchPad  405009000 is in exception list, allowing to load
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleKextExcludeList.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDAHardwareConfigDriver.kext
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AppleHDA.kext
kext org.rehabman.driver.AppleSmartBatteryManager  170019000 is in exception list, allowing to load
kext com.darwin.driver.ACPIBacklight  300049000 is in exception list, allowing to load

- I've also attached the usual logs requested on the topic of disabling the discrete GPU.

If anything else is needed to find out why "wake" is not working, please let me know.
 

Attachments

  • SamsungAtivBook6.zip
    2.3 MB · Views: 89
I'm not getting my laptop to wake from sleep. System goes down to sleep fine, but when I press the power button to wake, it just starts the fans, but doesn't show anything on screen. I need to shutdown holding power button.

- DSDT patches:
Code:
"Rename _DSM methods to XDSM"
"Rename GFX0 to IGPU"
"Fix *pnp/pnp lower case Error"
"Fix _WAK Arg0 v2"
"HPET Fix"
"SMBUS Fix"
"IRQ Fix"
"RTC Fix"
"OS Check Fix (Windows 8)"
"Fix Mutex with non-zero SyncLevel"
"Add IMEI"
"7-series/8-series USB"
"Audio Layout 3"
"Samsung Ativ Book 7" //battery
"Brightness fix (ACPI 100)"
"HD4000 Low Resolution"

- SSDT's common patches like renaming GFX0 to IGPU.

- SSDT-7 added call to _OFF from _INI.
- SSDT-8 moved EC code from _OFF to _REG on DSDT.

- Output of: "sudo touch /System/Library/Extensions && sudo kextcache -u /"
Code:
kext org.rehabman.injector.FakePCIID-Broadcom-WiFi  103019000 is in exception list, allowing to load
kext org.tw.CodecCommander  206019000 is in exception list, allowing to load
kext com.no-one.BrcmPatchRAM2  202079000 is in exception list, allowing to load
kext com.no-one.BrcmFirmwareStore  202079000 is in exception list, allowing to load
kext org.emlydinesh.driver.ApplePS2Keyboard  405009000 is in exception list, allowing to load
kext org.emlydinesh.driver.ApplePS2Controller  405009000 is in exception list, allowing to load
kext org.emlydinesh.driver.ApplePS2SmartTouchPad  405009000 is in exception list, allowing to load
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleKextExcludeList.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDAHardwareConfigDriver.kext
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AppleHDA.kext
kext org.rehabman.driver.AppleSmartBatteryManager  170019000 is in exception list, allowing to load
kext com.darwin.driver.ACPIBacklight  300049000 is in exception list, allowing to load

- I've also attached the usual logs requested on the topic of disabling the discrete GPU.

If anything else is needed to find out why "wake" is not working, please let me know.

Kexts are not installed correctly. All kexts you need should be installed to the system volume.

USB is not implemented correctly. Plan on creating a custom SSDT for USBInjectAll.kext such that only active ports are injected with the correct UsbConnector value. You can use SSDT-UIAC-ALL.dsl as a template.

See guide: http://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
 
Kexts are not installed correctly. All kexts you need should be installed to the system volume.

Should I install all kexts from Clover to S/L/E? Even FakeSMC?

USB is not implemented correctly. Plan on creating a custom SSDT for USBInjectAll.kext such that only active ports are injected with the correct UsbConnector value. You can use SSDT-UIAC-ALL.dsl as a template.

See guide: http://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/

Do I need to patch DSDT again without "7-series/8-series USB"? I'll read the guide later and see what I can do.

Thanks for now.
 
Moved all kexts to /S/L/E. Thanks.

Nothing wrong with the 7-series/8-series patch. All it does is inject power properties.

I manage to get sleep and wake working (still need to double click power button, but it was exactly the same with Yosemite, so "no problem"), indeed it was related to USB ports.

However, I didn't create the custom SSDT yet. What I have done so far:
- Renamed EHCx->EH0x in DSDT;
- Using FakePCIID_XHCIMux and FakePCIID (only work when injected with Clover, when Installing to /S/L/E not a single USB port works. I've update permissions and boot without kernel caches).

With those changes sleep/wake is working, but one of the USB ports is not working (2.0). All other 3 ports are fine, even after sleep.

I'm attaching the ioreg for you take a brief look and see whats going on with that port. Also, any ideas why FakePCIID and Fake PCIID_XHCIMux only work when injected with Clover? I'll try later at night create the custom SSDT and see if I can get that usb port to work.

I've also tested USBInjectAll.kext (no changes, that one port is still dead).
 

Attachments

  • ioreg.zip
    567.2 KB · Views: 65
- Using FakePCIID_XHCIMux and FakePCIID (only work when injected with Clover, when Installing to /S/L/E not a single USB port works. I've update permissions and boot without kernel caches).

With a correct setup, Clover should not be injecting any kext when you boot your system volume.
You have a mistake somewhere.

You need to customize USBInjectAll.kext with a SSDT to remove unused ports and set UsbConnector correctly for each port.
 
I've mapped the usb ports using FakePCIID, FakePCIID_XHCIMux and USBInjectAll as:
EH01->PR11->HP11 //USB3.0 left (with a usb 2.0 device connected)
EH01->PR11->HP12 //USB3.0 left (with a usb 2.0 device connected)
EH01->PR11->HP13 //USB2.0-CRW (CardReader?)
EH01->PR11->HP14 //USB2.0 right
EH01->PR11->HP15 //Bluetooth
EH02->PR21->HP22 //USB2.0 right
EH02->PR21->HP24 //Webcam

XHC->XHC->SSP5 //USB3.0 left (with a usb 3.0 device connected)
XHC->XHC->SSP6 //USB3.0 left (with a usb 3.0 device connected)

Now how should I proceed? If I read right, now I need to keep USBInjectAll.kext installed and build a SSDT that will override it, right? I came with this code below, based on your SSDT. Can I remove the ports between that aren't used (like HP21, HP23, SSP4...)?

Code:
// SSDT-UIAC-ALL.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//

DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "HUB1", Package()
            {
                "port-count", Buffer() { 5, 0, 0, 0 },
                "ports", Package()
                {
                    "HP11", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HP12", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HP13", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HP14", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HP15", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                },
            },
            "HUB2", Package()
            {
                "port-count", Buffer() { 4, 0, 0, 0 },
                "ports", Package()
                {
                    "HP21", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HP22", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HP23", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HP24", Package()
                    {
                        //"UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                },
            },
            "EH01", Package()
            {
                "port-count", Buffer() { 1, 0, 0, 0 },
                "ports", Package()
                {
                    "PR11", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                },
            },
            "EH02", Package()
            {
                "port-count", Buffer() { 1, 0, 0, 0 },
                "ports", Package()
                {
                    "PR21", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                },
            },
            "8086_1e31", Package()
            {
                "port-count", Buffer() { 8, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "SSP5", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "SSP6", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "SSP7", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "SSP8", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                },
            },
        })
    }
}

//EOF

Wake is broken again using USBInjectAll.kext, but I think this is normal because I don't have the correct USB ports configured.
 
If I read right, now I need to keep USBInjectAll.kext installed and build a SSDT that will override it, right? I came with this code below, based on your SSDT. Can I remove the ports between that aren't used (like HP21, HP23, SSP4...)?

Yes... just remove the ports you don't need. Change UsbConnector as appropriate for the remaining ports (eg. internal devices should be 255, USB3 ports should be 3, USB2 only ports should be 0).
 
Yes... just remove the ports you don't need. Change UsbConnector as appropriate for the remaining ports (eg. internal devices should be 255, USB3 ports should be 3, USB2 only ports should be 0).

Got all USB ports to work, but still no sleep. ioreg also attached.

SSDT used:
Code:
// SSDT-UIAC-ALL.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//

DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "HUB1", Package()
            {
                "port-count", Buffer() { 8, 0, 0, 0 },
                "ports", Package()
                {
                    "HP11", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HP12", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HP13", Package()
                    {
                        "UsbConnector", 255,
                        "portType", 2,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HP14", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HP15", Package()
                    {
                        "UsbConnector", 255,
                        "portType", 2,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                },
            },
            "HUB2", Package()
            {
                "port-count", Buffer() { 6, 0, 0, 0 },
                "ports", Package()
                {
                    "HP22", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HP24", Package()
                    {
                        "UsbConnector", 255,
                        "portType", 2,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                },
            },
            "EH01", Package()
            {
                "port-count", Buffer() { 1, 0, 0, 0 },
                "ports", Package()
                {
                    "PR11", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                },
            },
            "EH02", Package()
            {
                "port-count", Buffer() { 1, 0, 0, 0 },
                "ports", Package()
                {
                    "PR21", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                },
            },
            "8086_1e31", Package()
            {
                "port-count", Buffer() { 8, 0, 0, 0 },
                "ports", Package()
                {
                    "SSP5", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "SSP6", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                },
            },
        })
    }
}

//EOF

The only time so far that I got the wake from sleep to work, was when I renamed EHCx->EH0x in DSDT and nothing else, not even FakePCIID, FakePCIID_XHCIMux or USBInjectAll installed (I had them wrongly injected on Clover, tested without them too). Using this method I lose one USB port that won't work. I'm wondering, would it not be more simple just fix my DSDT to get this one port working?
 

Attachments

  • ioreg.zip
    477.1 KB · Views: 80
Got all USB ports to work, but still no sleep. ioreg also attached.

SSDT used:
Code:
// SSDT-UIAC-ALL.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//

DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "HUB1", Package()
            {
                "port-count", Buffer() { 8, 0, 0, 0 },
                "ports", Package()
                {
                    "HP11", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HP12", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HP13", Package()
                    {
                        "UsbConnector", 255,
                        "portType", 2,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HP14", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HP15", Package()
                    {
                        "UsbConnector", 255,
                        "portType", 2,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                },
            },
            "HUB2", Package()
            {
                "port-count", Buffer() { 6, 0, 0, 0 },
                "ports", Package()
                {
                    "HP22", Package()
                    {
                        "UsbConnector", 0,
                        "portType", 2,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HP24", Package()
                    {
                        "UsbConnector", 255,
                        "portType", 2,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                },
            },
            "EH01", Package()
            {
                "port-count", Buffer() { 1, 0, 0, 0 },
                "ports", Package()
                {
                    "PR11", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                },
            },
            "EH02", Package()
            {
                "port-count", Buffer() { 1, 0, 0, 0 },
                "ports", Package()
                {
                    "PR21", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                },
            },
            "8086_1e31", Package()
            {
                "port-count", Buffer() { 8, 0, 0, 0 },
                "ports", Package()
                {
                    "SSP5", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "SSP6", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                },
            },
        })
    }
}

//EOF

The only time so far that I got the wake from sleep to work, was when I renamed EHCx->EH0x in DSDT and nothing else, not even FakePCIID, FakePCIID_XHCIMux or USBInjectAll installed (I had them wrongly injected on Clover, tested without them too). Using this method I lose one USB port that won't work. I'm wondering, would it not be more simple just fix my DSDT to get this one port working?

Please provide details on the sleep problem.

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Provide output (in Terminal):
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc
kextstat|grep -y applehda

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.
 
Status
Not open for further replies.
Back
Top