Contribute
Register

Dell Inspiron 15 3542

Status
Not open for further replies.
I am just following the next increment.

Unpatched method:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x07D3, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2006")))
                {
                    Store (0x07D6, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2009")))
                {
                    Store (0x07D9, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2012")))
                {
                    Store (0x07DC, OSYS)
                }

                If (_OSI ("Windows 2013"))
                {
                    Store (0x07DD, OSYS)
                }
            }
        }

Patched method:
Code:
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (0x07D0, OSYS)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2001.1"))
                {
                    Store (0x07D3, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2006")))
                {
                    Store (0x07D6, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2009")))
                {
                    Store (0x07D9, OSYS)
                }

                If(LOr(_OSI("Darwin"),_OSI("Windows 2012")))
                {
                    Store (0x07DC, OSYS)
                }

                If (_OSI ("Windows 2013"))
                {
                    Store (0x07DD, OSYS)
                }

                If(_OSI("Darwin"))
                {
                    Store (0x07DE, OSYS)
                }
            }
        }

That is the _INI method, not OSID.

Note: The idea is to simulate a version of Windows when _OSI("Darwin") is true. You cannot make up a brand new number for OSYS.
 
That is the _INI method, not OSID.

Note: The idea is to simulate a version of Windows when _OSI("Darwin") is true. You cannot make up a brand new number for OSYS.

I think I found the OSID method:
Code:
    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, Zero))
        {
            Store (One, MIS3)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI (WXP))
                {
                    Store (0x10, MIS3)
                }

                If (_OSI (WLG))
                {
                    Store (0x20, MIS3)
                }

                If (_OSI (WIN7))
                {
                    If (LOr (LEqual (_REV, 0x03), LEqual (_REV, 0x05)))
                    {
                        Store (0x41, MIS3)
                    }
                    Else
                    {
                        Store (0x80, MIS3)
                    }
                }

                If (_OSI (WIN8))
                {
                    Store (0x81, MIS3)
                }

                If (_OSI (LNX))
                {
                    Store (0x40, MIS3)
                }
            }
            Else
            {
                If (STRE (_OS, W98S))
                {
                    Store (0x02, MIS3)
                }

                If (STRE (_OS, NT5S))
                {
                    Store (0x08, MIS3)
                }

                If (STRE (_OS, WINM))
                {
                    Store (0x04, MIS3)
                }
            }
        }

        \_SB.PCI0.LPCB.EC.PCA1 (0x90, MIS3)
        Store (MIS3, OTP)
        \_SB.PCI0.LPCB.EC.PCA1 (0x42, Zero)
        Store (\_SB.PCI0.LPCB.EC.ECRB (0x02), MFGM)
        Return (MIS3)
    }

But I don't think I have the knowledge to add a case for DARWIN. I tried to google my way through it, but no luck.

Could you please tell me what I should add to this method in order to fix the multiple OS Check Fix patches.
 
I think I found the OSID method:
Code:
    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, Zero))
        {
            Store (One, MIS3)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI (WXP))
                {
                    Store (0x10, MIS3)
                }

                If (_OSI (WLG))
                {
                    Store (0x20, MIS3)
                }

                If (_OSI (WIN7))
                {
                    If (LOr (LEqual (_REV, 0x03), LEqual (_REV, 0x05)))
                    {
                        Store (0x41, MIS3)
                    }
                    Else
                    {
                        Store (0x80, MIS3)
                    }
                }

                If (_OSI (WIN8))
                {
                    Store (0x81, MIS3)
                }

                If (_OSI (LNX))
                {
                    Store (0x40, MIS3)
                }
            }
            Else
            {
                If (STRE (_OS, W98S))
                {
                    Store (0x02, MIS3)
                }

                If (STRE (_OS, NT5S))
                {
                    Store (0x08, MIS3)
                }

                If (STRE (_OS, WINM))
                {
                    Store (0x04, MIS3)
                }
            }
        }

        \_SB.PCI0.LPCB.EC.PCA1 (0x90, MIS3)
        Store (MIS3, OTP)
        \_SB.PCI0.LPCB.EC.PCA1 (0x42, Zero)
        Store (\_SB.PCI0.LPCB.EC.ECRB (0x02), MFGM)
        Return (MIS3)
    }

But I don't think I have the knowledge to add a case for DARWIN. I tried to google my way through it, but no luck.

Could you please tell me what I should add to this method in order to fix the multiple OS Check Fix patches.

If you wanted to simulate Win8:
Code:
    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, Zero))
        {
            Store (One, MIS3)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI (WXP))
                {
                    Store (0x10, MIS3)
                }

                If (_OSI (WLG))
                {
                    Store (0x20, MIS3)
                }

                If (_OSI (WIN7))
                {
                    If (LOr (LEqual (_REV, 0x03), LEqual (_REV, 0x05)))
                    {
                        Store (0x41, MIS3)
                    }
                    Else
                    {
                        Store (0x80, MIS3)
                    }
                }

               [B] If (LOr(_OSI("Darwin"),_OSI (WIN8)))[/B]
                {
                    Store (0x81, MIS3)
                }

                If (_OSI (LNX))
                {
                    Store (0x40, MIS3)
                }
            }
            Else
            {
                If (STRE (_OS, W98S))
                {
                    Store (0x02, MIS3)
                }

                If (STRE (_OS, NT5S))
                {
                    Store (0x08, MIS3)
                }

                If (STRE (_OS, WINM))
                {
                    Store (0x04, MIS3)
                }
            }
        }

        \_SB.PCI0.LPCB.EC.PCA1 (0x90, MIS3)
        Store (MIS3, OTP)
        \_SB.PCI0.LPCB.EC.PCA1 (0x42, Zero)
        Store (\_SB.PCI0.LPCB.EC.ECRB (0x02), MFGM)
        Return (MIS3)
    }
 
If you wanted to simulate Win8:
Code:
    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, Zero))
        {
            Store (One, MIS3)
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI (WXP))
                {
                    Store (0x10, MIS3)
                }

                If (_OSI (WLG))
                {
                    Store (0x20, MIS3)
                }

                If (_OSI (WIN7))
                {
                    If (LOr (LEqual (_REV, 0x03), LEqual (_REV, 0x05)))
                    {
                        Store (0x41, MIS3)
                    }
                    Else
                    {
                        Store (0x80, MIS3)
                    }
                }

               [B] If (LOr(_OSI("Darwin"),_OSI (WIN8)))[/B]
                {
                    Store (0x81, MIS3)
                }

                If (_OSI (LNX))
                {
                    Store (0x40, MIS3)
                }
            }
            Else
            {
                If (STRE (_OS, W98S))
                {
                    Store (0x02, MIS3)
                }

                If (STRE (_OS, NT5S))
                {
                    Store (0x08, MIS3)
                }

                If (STRE (_OS, WINM))
                {
                    Store (0x04, MIS3)
                }
            }
        }

        \_SB.PCI0.LPCB.EC.PCA1 (0x90, MIS3)
        Store (MIS3, OTP)
        \_SB.PCI0.LPCB.EC.PCA1 (0x42, Zero)
        Store (\_SB.PCI0.LPCB.EC.ECRB (0x02), MFGM)
        Return (MIS3)
    }

I replaced the OSID method with the one you gave. The following line throws a compiler error "Object does not exist (OTP_)":
Code:
        Store (MIS3, OTP)
 
I replaced the OSID method with the one you gave. The following line throws a compiler error "Object does not exist (OTP_)":
Code:
        Store (MIS3, OTP)

Error not possible to diagnose without the actual file.
 

Attachments

  • DSDT.dsl.zip
    42.5 KB · Views: 104

Attachments

  • origin.zip
    41.6 KB · Views: 111
Zipped folder attached.

No such code in your originals:
Code:
    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, Zero))
        {
...

        \_SB.PCI0.LPCB.EC.PCA1 (0x90, MIS3)
       [B] Store (MIS3, OSTP)[/B]
        \_SB.PCI0.LPCB.EC.PCA1 (0x42, Zero)
        Store (\_SB.PCI0.LPCB.EC.ECRB (0x02), MFGM)
        Return (MIS3)
    }

Variable name is OSTP, not OTP. You must have accidentally changed it.
 
No such code in your originals:
Code:
    Method (OSID, 0, NotSerialized)
    {
        If (LEqual (MIS3, Zero))
        {
...

        \_SB.PCI0.LPCB.EC.PCA1 (0x90, MIS3)
       [B] Store (MIS3, OSTP)[/B]
        \_SB.PCI0.LPCB.EC.PCA1 (0x42, Zero)
        Store (\_SB.PCI0.LPCB.EC.ECRB (0x02), MFGM)
        Return (MIS3)
    }

Variable name is OSTP, not OTP. You must have accidentally changed it.

In built keyboard and trackpad have stopped working after replacing the changed DSDT in EFI/Clover/ACPI/patched.

Attached files for debugging.

Code:
bash-3.2$ kextstat|grep -y acpiplat
   13    1 0xffffff7f82ec6000 0x66000    0x66000    com.apple.driver.AppleACPIPlatform (4.0) 295F7A91-2DF7-3FFE-9550-A0C1A6F9D575 <12 11 7 6 5 4 3 1>
bash-3.2$ kextstat|grep -y appleintelcpu
bash-3.2$ kextstat|grep -y applelpc
  100    0 0xffffff7f829a0000 0x3000     0x3000     com.apple.driver.AppleLPC (3.1) 0C90B22D-637B-3000-8C44-B7955D57E10A <76 12 5 4 3>


Code:
bash-3.2$ sudo touch /System/Library/Extensions && sudo kextcache -u /
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_XHCIMux.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Intel_HDMI_Audio.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Intel_HD_Graphics.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_Broadcom_WiFi.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext CodecCommander.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-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBatteryManager.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext ACPIBacklight.kext

Edit: Trackpad and in-built keyboard function again when the changes are reverted.
 

Attachments

  • CLOVER.zip
    3.3 MB · Views: 144
  • RehabMan.zip
    34.2 KB · Views: 86
  • Ashin’s MacBook Pro.ioreg
    2.8 MB · Views: 132
Last edited:
Status
Not open for further replies.
Back
Top