Contribute
Register

[Guide] HP ProBook/EliteBook/Zbook using Clover UEFI hotpatch

Status
Not open for further replies.
Tried disabling Shiki.kext to no avail. Same with the ALC kext.
Also A little confused with building from the commit before 9408935cab5cde5babdbdc0d6e10db5a00c8fccf
Am I supposed to use every thing from the repo at commit f5eff9c5ff51c1fe740e1aac92c12334941e7bf5 ?
Like sstdt's, kexts and config.plist?

Thanks.

I would revert just the files changed by that commit.
 
You can inject device-id 0x43ba.
Then use a custom FakePCIID injector kext to attach to 43ba.
Refer to existing FakePCIID injector kexts for inspiration (and read the FakePCIID README and/or source code).
If [14e4:43a3] works on my laptop, is it possible to let AirPortBrcm4360.kext recognize it as [14e4:43ba]? So the driver perform a [43ba] behavior instead of [43a3].
 
If [14e4:43a3] works on my laptop, is it possible to let AirPortBrcm4360.kext recognize it as [14e4:43ba]? So the driver perform a [43ba] behavior instead of [43a3].

You can certainly make the driver think it is 43ba.
That is the purpose of device-id inject (you can use ACPI or FakeID), and FakePCIID.

Whether it works that way is another question completely.
It would depend on how compatible 43a3 hardware is to software written for 43ba.
 
You can certainly make the driver think it is 43ba.
That is the purpose of device-id inject (you can use ACPI or FakeID), and FakePCIID.

Whether it works that way is another question completely.
It would depend on how compatible 43a3 hardware is to software written for 43ba.
To be honesty, I am not very familiar with these technique.
device-id inject method:

FakeID: config.plist: ACPI/Devices/FakeID/"WIFI": "0x43ba14e4" is only enough? No other settings?

ACPI:
SSDT patch:
Code:
DefinitionBlock ("", "SSDT", 1, "toleda", "ami8arpt", 0x00003000)
{
    External (_SB_.PCI0.RP09, DeviceObj)    // Warning: Unknown object
    External (_SB_.PCI0.RP09.PXSX, DeviceObj)    // Warning: Unknown object
    External (PXSX, DeviceObj)    // Warning: Unknown object
    Scope (\_SB.PCI0.RP09)
    {
        Scope (PXSX)
        {
            Name (_STA, Zero)  // _STA: Status
        }
        Device (ARPT)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x09, 
                0x04
            })
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If ((Arg2 == Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03                                           
                    })
                }
                Return (Package (0x02)
                {
                    "compatible", 
                    "pci14e4,43ba"
                })
            }
        }
    }
}
Clover AddProperties:
Code:
config.plist: ACPI/Devices/AddProperties
    "Devices": {
        "AddProperties": [
            {
                "Device": "what_fill_here",
                "Key": "what_fill_here",
                "Value": "0x43ba14e4"
            }
        ]

Does these method are correct? How to check the result of those change?
 
To be honesty, I am not very familiar with these technique.
device-id inject method:

FakeID: config.plist: ACPI/Devices/FakeID/"WIFI": "0x43ba14e4" is only enough? No other settings?

I don't use that feature, so I'm not sure if you need other settings. Try it and see what happens.
Personally, I would use ACPI.

ACPI:
SSDT patch:
Code:
DefinitionBlock ("", "SSDT", 1, "toleda", "ami8arpt", 0x00003000)
{
    External (_SB_.PCI0.RP09, DeviceObj)    // Warning: Unknown object
    External (_SB_.PCI0.RP09.PXSX, DeviceObj)    // Warning: Unknown object
    External (PXSX, DeviceObj)    // Warning: Unknown object
    Scope (\_SB.PCI0.RP09)
    {
        Scope (PXSX)
        {
            Name (_STA, Zero)  // _STA: Status
        }
        Device (ARPT)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x09,
                0x04
            })
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If ((Arg2 == Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03                                        
                    })
                }
                Return (Package (0x02)
                {
                    "compatible",
                    "pci14e4,43ba"
                })
            }
        }
    }
}

No.
Much simpler... let's assume your WiFi is at _SB.PCI0.RP09.WNIC (you would need to verify).
Code:
DefinitionBlock("", "SSDT", 2, "hack", "_WIFI", 0)
{
    External(_SB.PCI0.RP09.WNIC, DeviceObj)
    // inject fake device-id for WiFi
    Method(_SB.PCI0.RP09.WNIC._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return (Package()
        {
            "device-id", Buffer(4) { 0xba, 0x43, 0, 0 },
            "compatible", "pci14e4,43ba",
        })
    }
}
//EOF

Clover AddProperties:

Not sure if Clover recognizes AddProperties for WiFi.
You would need to read the Clover documentation and source code.

How to check the result of those change?

Probably best to use a device-id that DOES NOT match a kext (so no kext loads) while verifying your setup is correct.
Then verify by looking at device-properties for that node in ioreg IOACPIPlane.
Once you have it injecting the device-id, you can change it to the real device-id you want to spoof.

And then you can work on the FakePCIID injector kext part.
 
Last edited:
That is for power management.
Power management and ACPI configuration are two separate sections in post #1.


yes i just skeppted Power Management when you said DO NOT generate SSDT

thank you
RehabMan
for your hellp


 
I would revert just the files changed by that commit.
Reverted the files, copied over to AppleHDA but no luck. Seems nothing is working for this Jack.

I forgot to mention, Audio keeps playing from the speakers even with the headphone jack plugged in.
 
Last edited:

Attachments

  • reporting.zip
    2.4 MB · Views: 72
Reverted the files, copied over to AppleHDA but no luck. Seems nothing is working for this Jack.

I forgot to mention, Audio keeps playing from the speakers even with the headphone jack plugged in.

Jack detection issue.
Did you try after a sleep/wake cycle.
You attached no files representing your AppleALC attempt (nor the attempt with reverting the mentioned commit), so no ideas can be provided there.
 
Status
Not open for further replies.
Back
Top