Contribute
Register

Lenovo Carbon X1 6th gen BT on WAKE and HWP

Status
Not open for further replies.
Joined
Oct 3, 2015
Messages
153
Motherboard
Asus Z690 Strix E DDR5
CPU
i9-12900K
Graphics
RX 6900 XT
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
I got 2 minor problems other than that this Lenovo Hackintosh is working pretty well . I would greatly appreciate if anyone want to take a look at my debug files to see if you could provide any insight:

1) I am using the broadcom apple stock wifi WiFi Bluetooth Airport Card BCM943602CS. WIFI is always stable however my bluetooth hardware becomes "unavailable" sometimes after sleep about 1 out of 5 times. The only way to fix it is to restart. I have follow the USBINJECTALL SSDT guide to create the usb SSDT.

2) It seems the minimum core clock for my HWP is only at 1.2 ghz (Mac Pro 15,2) and it's at 1.3ghz (Mac Pro 14,1) . I would expect it to go down to 400 mhz idle. This is the output of AppleIntelInfo:

Code:
CPU Ratio Info:

------------------------------------------

Base Clock Frequency (BLCK)............. : 100 MHz

Maximum Efficiency Ratio/Frequency.......:  4 ( 400 MHz)

Maximum non-Turbo Ratio/Frequency........: 20 (2000 MHz)

Maximum Turbo Ratio/Frequency............: 40 (4000 MHz)


IGPU Info:

------------------------------------------

IGPU Current Frequency...................:    0 MHz

IGPU Minimum Frequency...................:  300 MHz

IGPU Maximum Non-Turbo Frequency.........:  300 MHz

IGPU Maximum Turbo Frequency.............: 1150 MHz

IGPU Maximum limit.......................: No Limit


P-State ratio * 100 = Frequency in MHz

------------------------------------------

CPU P-States [ (12) 17 24 ] iGPU P-States [ ]

CPU C3-Cores [ 1 4 5 ]

CPU C7-Cores [ 1 2 3 4 7 ]

CPU P-States [ (12) 17 20 24 ] iGPU P-States [ ]

CPU C3-Cores [ 0 1 4 5 ]

CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]

CPU P-States [ (12) 17 20 24 ] iGPU P-States [ ]

CPU C3-Cores [ 0 1 2 3 4 5 ]

CPU C3-Cores [ 0 1 2 3 4 5 6 ]

CPU P-States [ (12) 17 18 20 24 ] iGPU P-States [ ]

CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]

Attached is my debug files.
 

Attachments

  • DEBUG.zip
    3.5 MB · Views: 55
Last edited:
I have an X1 Carbon 6th Gen i7-8650u

not sure what to say regarding USB but for HWP I would use SMBIOS MacBookPro15,2 if you're on Mojave and set PluginType=1 in Clover or use SSDT-XCPM.aml from Rehabman's laptop config. That should be enough for full HWP + PM. My laptop doesn't idle lower than 1.2ghz, I changed it to 800mhz and 400mhz via CPUFriend but noticed laggy animations and no difference in battery life. Apple laptops don't idle lower than 1.2ghz (with the exception of maybe the MacBook). If you want more battery life just disable turbo boost via Volta or Turbo Boost Switcher. good luck
 
I got 2 minor problems other than that this Lenovo Hackintosh is working pretty well . I would greatly appreciate if anyone want to take a look at my debug files to see if you could provide any insight:

1) I am using the broadcom apple stock wifi WiFi Bluetooth Airport Card BCM943602CS. WIFI is always stable however my bluetooth hardware becomes "unavailable" sometimes after sleep about 1 out of 5 times. The only way to fix it is to restart. I have follow the USBINJECTALL SSDT guide to create the usb SSDT.

2) It seems the minimum core clock for my HWP is only at 1.2 ghz (Mac Pro 15,2) and it's at 1.3ghz (Mac Pro 14,1) . I would expect it to go down to 400 mhz idle. This is the output of AppleIntelInfo:

CPU Ratio Info:

------------------------------------------

Base Clock Frequency (BLCK)............. : 100 MHz

Maximum Efficiency Ratio/Frequency.......: 4 ( 400 MHz)

Maximum non-Turbo Ratio/Frequency........: 20 (2000 MHz)

Maximum Turbo Ratio/Frequency............: 40 (4000 MHz)


IGPU Info:

------------------------------------------

IGPU Current Frequency...................: 0 MHz

IGPU Minimum Frequency...................: 300 MHz

IGPU Maximum Non-Turbo Frequency.........: 300 MHz

IGPU Maximum Turbo Frequency.............: 1150 MHz

IGPU Maximum limit.......................: No Limit


P-State ratio * 100 = Frequency in MHz

------------------------------------------

CPU P-States [ (12) 17 24 ] iGPU P-States [ ]

CPU C3-Cores [ 1 4 5 ]

CPU C7-Cores [ 1 2 3 4 7 ]

CPU P-States [ (12) 17 20 24 ] iGPU P-States [ ]

CPU C3-Cores [ 0 1 4 5 ]

CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]

CPU P-States [ (12) 17 20 24 ] iGPU P-States [ ]

CPU C3-Cores [ 0 1 2 3 4 5 ]

CPU C3-Cores [ 0 1 2 3 4 5 6 ]

CPU P-States [ (12) 17 18 20 24 ] iGPU P-States [ ]

CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]


Attached is my debug files.

Your kextcache output proves kexts are not installed correctly.
All kexts you need must be installed to the system volume.
Read post #2 of the Clover guide for details:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

The idle pstates you mention are expected (as per Apple design). You can override by patching X86PlatformPlugin.kext or by using CPUFriend.kext (not really recommended though... Apple probably has reasons for choosing this idle pstate).
 
ok I have updated my kext to install kexts to /Library/Extensions however I am still experiencing the same Bluetooth wake power problem. Looking at my DSDT.dsl file I noticed there's a section related to thebluetooth module and it has some wak function. I am not verse with ACPI code do you think this has anything to do with it? I see some keyword like WAK3 and WAK4 and it seems to return the ID as intel or broadcomm.

Code:
    Scope (\_SB.PCI0.UA00)
    {
        Device (BTH0)
        {
            Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
            {
                If (LEqual (SDS8, 0x01))
                {
                    Return ("INT33E1")
                }

                If (LEqual (SDS8, 0x02))
                {
                    Return ("BCM2E40")
                }

                Return ("INT33E1")
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                SHPO (GBTI, 0x01)
                SHPO (GBTW, 0x01)
                SHPO (GBTK, 0x01)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (SBFG, ResourceTemplate ()
                {
                    UartSerialBusV2 (0x0001C200, DataBitsEight, StopBitsOne,
                        0xC0, LittleEndian, ParityTypeNone, FlowControlHardware,
                        0x0020, 0x0020, "\\_SB.PCI0.UA00",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                    GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                })
                CreateWordField (SBFG, 0x8C, INT3)
                CreateWordField (SBFG, 0x3C, WAK3)
                CreateWordField (SBFG, 0x64, KIL3)
                Store (GNUM (GBTI), INT3)
                Store (GNUM (GBTW), WAK3)
                Store (GNUM (GBTK), KIL3)
                Name (SBFI, ResourceTemplate ()
                {
                    UartSerialBusV2 (0x0001C200, DataBitsEight, StopBitsOne,
                        0xC0, LittleEndian, ParityTypeNone, FlowControlHardware,
                        0x0020, 0x0020, "\\_SB.PCI0.UA00",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                    GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                    Interrupt (ResourceConsumer, Edge, ActiveLow, ExclusiveAndWake, ,, _Y31)
                    {
                        0x00000000,
                    }
                })
                CreateDWordField (SBFI, \_SB.PCI0.UA00.BTH0._CRS._Y31._INT, INT4)  // _INT: Interrupts
                CreateWordField (SBFI, 0x3C, WAK4)
                CreateWordField (SBFI, 0x64, KIL4)
                Store (INUM (GBTI), INT4)
                Store (GNUM (GBTW), WAK4)
                Store (GNUM (GBTK), KIL4)
                If (LEqual (SDM8, 0x00))
                {
                    Return (SBFG)
                }
                Else
                {
                    Return (SBFI)
                }
            }
 

Attachments

  • DEBUG.zip
    2.7 MB · Views: 69
ok I ran the gen_debug tool here is the updated zip file
 

Attachments

  • debug_23889.zip
    1.9 MB · Views: 59
ok I ran the gen_debug tool here is the updated zip file

Does the ioreg you attached represent the scenario where BT is not working?
 
Does the ioreg you attached represent the scenario where BT is not working?

good question. I couldn't remember but I just captured 2 fresh IOReg for working vs not working just now. What I found was to get the BT working again I actually dont need to restart. If I let the laptop do a few long sleep-wake cycle sometimes it also turns BT back on without requiring a restarting.
 

Attachments

  • ioreg.zip
    1.3 MB · Views: 61
Last edited:
good question. I couldn't remember but I just captured 2 fresh IOReg for working vs not working just now. What I found was to get the BT working again I actually dont need to restart. If I let the laptop do a few long sleep-wake cycle sometimes it also turns BT back on without requiring a restarting.

Both have same data for the BT on HS07.

You might try recommended WiFi/BT hardware: BCM94352Z
 
Last edited:
Both have same data for the BT on HS07.

You might try recommended WiFi/BT hardware: BCM943252Z

thanks. I ordered a BCM943252Z to test it out.
 
Status
Not open for further replies.
Back
Top