Contribute
Register

X1C6 reboot & BT issues

Status
Not open for further replies.
Joined
May 5, 2014
Messages
200
Motherboard
X1 Carbon 6th
CPU
i7-8550U
Graphics
UHD620
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Almost everything is functional, I googled and trialed unsuccessfully for long... so still need your help. @RehabMan. Thanks!

SPEC.: X1C 6th HDR, [email protected] | UHD620 | 16Gb | 256GB m.2 PM961 | BCM4352 (DW1560).

Hereby the remaining problem (reporting files attached):
  1. Reboot after shutdown;
  2. HDMI display
    Cannot boot with HDMI monitor on, only works / connect after login screen showup but then native LCD black; Internal LCD can be activate close the lid and reopen. I notice HDMI not on 08 but 04! (DP);
  3. BT lost after sleep, although S3 sleep works(ctrl+option+end);
  4. Audio works but volume icon not show muted even if keyboard press muted and really muted;
  5. Battery warning
    Code:
    ACPIBatteryManager: WARNING! fCurrentCapacity > fMaxCapacity. adjusted fCurrentCapacity from 4965, to 4949
    (pls. see booting screenshot); Battery info not consistence with Win10, once showed healthy 98% after only 16 charge cycle. But Lenovo Vantage report all OK. WinX shows currently 97% power but MacOS shows 100%. (both no charging)
  6. Too many redundancies at bdmesg (bootlog.txt)
  7. CPU frequency: "System Overview" indicated as 1.99Ghz instead of 1.8Ghz for i7-8550U.

Many thanks!
 
Last edited:
Reboot after shutdown;

Look into the PMEE fix in my ACPI repo.

HDMI display
Cannot boot with HDMI monitor on, only works / connect after login screen showup but then native LCD black; Internal LCD can be activate close the lid and reopen. I notice HDMI not on 08 but 04! (DP);

It is typical, but an EDID override might help.
Read here:
https://www.tonymacx86.com/threads/readme-common-problems-in-10-13-high-sierra.233582/

BT lost after sleep, although S3 sleep works(ctrl+option+end);

Your USB configuration is wrong.
Refer to the guides linked by the FAQ:
http://www.tonymacx86.com/el-capita...faq-read-first-laptop-frequent-questions.html

Audio works but volume icon not show muted even if keyboard press muted and really muted;

AppleALC issue?

Battery warning
Code:
ACPIBatteryManager: WARNING! fCurrentCapacity > fMaxCapacity. adjusted fCurrentCapacity from 4965, to 4949
(pls. see booting screenshot); Battery info not consistence with Win10, once showed healthy 98% after only 16 charge cycle. But Lenovo Vantage report all OK. WinX shows currently 97% power but MacOS shows 100%. (both no charging)

It is normal; likely due to different calculations/assumptions about converting watts -> amps.
There are some options you can set (via ACPI) that control this conversion.
Refer to SSDT-ACPIBATT.dsl in the ACPIBatteryManager github.

Too many redundancies at bdmesg (bootlog.txt)

No idea what you're referring to with 'redundancies'.

CPU frequency: "System Overview" indicated as 1.99Ghz instead of 1.8Ghz for i7-8550U.

Use config.plist/CPU/FreqencyMHz to set it appropriately.
 
Thanks!
Regarding to the USB configuration, could you be more specific? In config.plist or patched SSDT or kext in /L/E?
(PS: strange If I remove USBInjectAll.kext, shutdown is normal.)
I did accordingly followed SSDT custom geneation:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
* Increased the USB numbers;
* determine the physical USB ports;
* remove the unused port in SSDT-UIAC.dsl and compile and put to patched.

I always suspect there must be something wrong with the consequence to reboot.
 
Thanks!
Regarding to the USB configuration, could you be more specific? In config.plist or patched SSDT or kext in /L/E?
(PS: strange If I remove USBInjectAll.kext, shutdown is normal.)

Must customize injected ports *and* set UsbConnector values correctly:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

Also, you forgot to implement USB power properties:
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/

I did accordingly followed SSDT custom geneation:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
* Increased the USB numbers;
* determine the physical USB ports;
* remove the unused port in SSDT-UIAC.dsl and compile and put to patched.

Your UsbConnector values are wrong.
 
Must customize injected ports *and* set UsbConnector values correctly:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

Also, you forgot to implement USB power properties:
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/

Your UsbConnector values are wrong.

Sorry miss that! Now things are getting more complicated.

I. While changing BT's UsbConnector value from 03 to 255(internal)...
  1. Do I also need to change other internal devices (detected by USBinjectAll), e.g. trackpad, integrated camera, SD/SIM card reader, to 255? (are these internal device targeted to the USB list correctly)
  2. Also reading your ssdt guide post, why your U430 final SSDT-UIAC don't have touchpad, SD-card reader as internal device(255) besides BT?
II. Regarding to the "USB power property injection", I am still confuse...
  1. Checking my IOreg, I found: IOService:/AppleACPIPlatformExpert/EC/AppleBusPowerController,
    do I still need to do the renames (H_EC->EC, or EC0->EC) and _DSM to XDSM within the config.plist hot-patch?

  2. As noted in your guide, I notice I have "ECDT.aml" in ACPI\orgin, do I need to have the fake EC? (Sorry your text there is a little confusing me.)
  3. Here is what I found in my origin\DSDT.aml about "EC in your DSDT: Device with "Name (_HID, EisaId ("PNP0C09"))","
    Code:
    Scope (\_SB.PCI0.LPCB)
        {
            Device (EC)
            {
                Name (_HID, EisaId ("PNP0C09"))  // _HID: Hardware ID
                Name (_UID, 0x00)  // _UID: Unique ID
                Name (_GPE, 0x16)  // _GPE: General Purpose Events
                Method (_REG, 2, NotSerialized)  // _REG: Region Availability
                {
                    If (LEqual (Arg0, 0x03))
                    {
                        Store (Arg1, \H8DR)
                    }
                }
    ...

  4. My SMBIOS MacBookPro 14,1 is not present in IOUSBHostFamily.kext/Contents/Info.plist, where could I find the USBX values to formulate my SSDT-USBX.dsl?
Sorry too many questions :)
 
Sorry miss that! Now things are getting more complicated.

I. While changing BT's UsbConnector value from 03 to 255(internal)...
  1. Do I also need to change other internal devices (detected by USBinjectAll), e.g. trackpad, integrated camera, SD/SIM card reader, to 255? (are these internal device targeted to the USB list correctly)
  2. Also reading your ssdt guide post, why your U430 final SSDT-UIAC don't have touchpad, SD-card reader as internal device(255) besides BT?
II. Regarding to the "USB power property injection", I am still confuse...
  1. Checking my IOreg, I found: IOService:/AppleACPIPlatformExpert/EC/AppleBusPowerController,
    do I still need to do the renames (H_EC->EC, or EC0->EC) and _DSM to XDSM within the config.plist hot-patch?

  2. As noted in your guide, I notice I have "ECDT.aml" in ACPI\orgin, do I need to have the fake EC? (Sorry your text there is a little confusing me.)
  3. Here is what I found in my origin\DSDT.aml about "EC in your DSDT: Device with "Name (_HID, EisaId ("PNP0C09"))","
    Code:
    Scope (\_SB.PCI0.LPCB)
        {
            Device (EC)
            {
                Name (_HID, EisaId ("PNP0C09"))  // _HID: Hardware ID
                Name (_UID, 0x00)  // _UID: Unique ID
                Name (_GPE, 0x16)  // _GPE: General Purpose Events
                Method (_REG, 2, NotSerialized)  // _REG: Region Availability
                {
                    If (LEqual (Arg0, 0x03))
                    {
                        Store (Arg1, \H8DR)
                    }
                }
    ...

  4. My SMBIOS MacBookPro 14,1 is not present in IOUSBHostFamily.kext/Contents/Info.plist, where could I find the USBX values to formulate my SSDT-USBX.dsl?
Sorry too many questions :)

Any/all ports connected to internal device should be UsbConnector=255.

My u430 does not have USB touchpad, nor USB card reader. It does have internal BT, webcam, and a touchscreen, all of which are marked UsbConnector=255.

No rename of EC necessary when it is already named EC.
No need for Fake EC when you have a real EC already named EC.

Read the guide for USBX samples.
 
Any/all ports connected to internal device should be UsbConnector=255.

My u430 does not have USB touchpad, nor USB card reader. It does have internal BT, webcam, and a touchscreen, all of which are marked UsbConnector=255.

No rename of EC necessary when it is already named EC.
No need for Fake EC when you have a real EC already named EC.

Read the guide for USBX samples.

OK, now I have revised 2 ssdt files. But still not confident, because sometimes still lost after sleep longer period(e.g overnight), directly go to sleep and revoke in e.g. 5min would be no issue.

Please review my SSDT-UIAC and SSDT-USBX (.aml attached)

SSDT-UIAC.dsl:
Code:
// USB ports increased, identified acc. physical ports and USBconnector corrected
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "8086_9dxx", Package()  // examples: 0x9d2f(xMac), 0x9ded
            {
                "port-count", Buffer() { 18, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package()   // HS USB3 right
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()   // HS USB3 left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()   // USB-C left billboard or docking
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package()   // USB-C hub left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS07", Package()   //Bluetooth BCM20702A0 ext.
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS08", Package()   //Integrated Camera
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "HS09", Package()   //Trackpad vendor-id:0x6cb
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 9, 0, 0, 0 },
                    },
                    "SS03", Package()   //USB3 Backside SD-card reader/SIM
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 15, 0, 0, 0 },
                    },
                },
            },
        })
    }
}

SSDT-USBX.dsl (I took your example from MacBookpro 14,3)
Code:
// USB power properties via USBX device
DefinitionBlock("", "SSDT", 2, "hack", "USBX", 0)
{
    Device(_SB.USBX)
    {
        Name(_ADR, 0)
        Method (_DSM, 4)
        {
            If (!Arg2) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                // these values from MacBookPro14,3
                "kUSBSleepPortCurrentLimit", 3000,
                "kUSBWakePortCurrentLimit", 3000,
            })
        }
    }
}
//EOF

Another questions:
* I would like to combine these 2 files into one(as you also wrote preferred), could I simply copy the 2nd to the end of the 1st file?
* How and where to find when did BT lose power after certain time? in system.log? PS: after BT lost I noticed 2 USB entries at "System Report" - USB:
View attachment 351139
 
Last edited:
OK, now I have revised 2 ssdt files. But still not confident, because sometimes still lost after sleep longer period(e.g overnight), directly go to sleep and revoke in e.g. 5min would be no issue.

Please review my SSDT-UIAC and SSDT-USBX (.aml attached)

SSDT-UIAC.dsl:
Code:
// USB ports increased, identified acc. physical ports and USBconnector corrected
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "8086_9dxx", Package()  // examples: 0x9d2f(xMac), 0x9ded
            {
                "port-count", Buffer() { 18, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package()   // HS USB3 right
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()   // HS USB3 left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()   // USB-C left billboard or docking
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package()   // USB-C hub left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS07", Package()   //Bluetooth BCM20702A0 ext.
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS08", Package()   //Integrated Camera
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "HS09", Package()   //Trackpad vendor-id:0x6cb
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 9, 0, 0, 0 },
                    },
                    "SS03", Package()   //USB3 Backside SD-card reader/SIM
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 15, 0, 0, 0 },
                    },
                },
            },
        })
    }
}

SSDT-USBX.dsl (I took your example from MacBookpro 14,3)
Code:
// USB power properties via USBX device
DefinitionBlock("", "SSDT", 2, "hack", "USBX", 0)
{
    Device(_SB.USBX)
    {
        Name(_ADR, 0)
        Method (_DSM, 4)
        {
            If (!Arg2) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                // these values from MacBookPro14,3
                "kUSBSleepPortCurrentLimit", 3000,
                "kUSBWakePortCurrentLimit", 3000,
            })
        }
    }
}
//EOF

Another questions:
* I would like to combine these 2 files into one(as you also wrote preferred), could I simply copy the 2nd to the end of the 1st file?
* How and where to find when did BT lose power after certain time? in system.log? PS: after BT lost I noticed 2 USB entries at "System Report" - USB:
View attachment 351139


"Problem Reporting" files are incomplete.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.

Although you can have multiple DefinitionBlocks in a .dsl and compile successfully, macOS ACPI layer does not support it. To combine SSDTs, you place all code that is within the DefinitionBlock of the second SSDT inside the DefinitionBlock of the first.
 
Thanks!
 
Last edited:
Debugging files regenerated. Thanks!

Your UsbConnector values are wrong.
You have 4x HSxx with UsbConnector=3, but only one SSxx UsbConnector=3.
Expect 1:1 with HSxx/SSxx UsbConnector=3.

And read BrcmPatchRAM README regarding kernel flags that may help with your BT sleep issue.

Note also that SoundFlower is preventing idle sleep:
Code:
   pid 136(coreaudiod): [0x0000001000018106] 00:00:14 PreventUserIdleSystemSleep named: "com.apple.audio.AppleHDAEngineOutput:1F,3,0,1,2:0.context.preventuseridlesleep"
   Created for PID: 433.
   pid 136(coreaudiod): [0x0000000f000180fa] 00:00:15 PreventUserIdleSystemSleep named: "com.apple.audio.SoundflowerEngine:0.context.preventuseridlesleep"
   Created for PID: 433.
 
Status
Not open for further replies.
Back
Top