Jump to content

Opencore black screen on Lenovo IdeaPad 3 15IML05


Xflash2006
 Share

20 posts in this topic

Recommended Posts

1. Add -wegnoegpu boot arg.

External graphics devices that are not supported in macOS must be disabled.

 

2. igfxmetal=1 is unnecessary, so remove it.

Keep the -igfxblr and igfxonln=1 boot args.

 

3. Remove all frambuffer-conX connector patch properties.

 

4. In Kernel - Add, move the order of loading WhateverGreen.kext between Virtual SMC and AppleALC.

 

5. Remove all ACPI Rename patches related to Audio and USB.

Not required for your laptop specification and some are automatically renamed by Lilu and Lilu Plugins.

 

6. If you are using USB Port Map Kext (e.g. USBMap.kext, USBPorts.kext, etc.), set the XhciPortLimit to False.

Edited by shl628
Link to comment
Share on other sites

8 hours ago, shl628 said:

1. Add -wegnoegpu boot arg.

External graphics devices that are not supported in macOS must be disabled.

 

2. igfxmetal=1 is unnecessary, so remove it.

Keep the -igfxblr and igfxonln=1 boot options intact.

 

3. Remove all frambuffer-conX connector patch properties.

 

4. In Kernel - Add, move the order of loading WhateverGreen.kext between Virtual SMC and AppleALC.

 

5. Remove all ACPI Rename patches related to Audio and USB.

Not required for your laptop specification and some are automatically renamed by Lilu and Lilu Plugins.

 

6. If you are using USB Port Map Kext (e.g. USBMap.kext, USB Ports.kext, etc.), set the XhciPortLimit to False.

 

Now everything works except the touchpad.

The touchpad type I have is I2C HID and the brand does not appear in the device manager.

Touchpad BIOS name:     \_SB.PCI0.I2C0.TPD0

 

config.plist

Edited by Xflash2006
Link to comment
Share on other sites

10 hours ago, Xflash2006 said:

 

Now everything works except the touchpad.

The touchpad type I have is I2C HID and the brand does not appear in the device manager.

Touchpad BIOS name:     \_SB.PCI0.I2C0.TPD0

 

config.plist 38.18 kB · 1 download

 

The I2C touchpad requires an ACPI patch.
Please send me the original DSDT extracted from OEM ACPI Table.


Also, use VoodooInput.kext as plugins for VoodooI2C.kext, not plugins for VoodooPS2.kext
And, move the VoodooInput.kext load order between VoodooGPIO.kext and VoodooI2C.kext

 

Before proceeding with the ACPI patch for the I2C touchpad, check the following :


1. Did you check the value of APIC Pin of TPD0 Device?
    If the value of the APIC Pin exceeds 2F, Interrupt (APIC) mode is not available and Interrupt mode should only be used through the GPIO Controller.

2. Did you enable GPIO Controller (GPI0 Device)?

3. Did you apply Darwin OS Check Fix using SSDT-XOSI.aml or SSDT-OSYS.aml?

4. Check the Resource Template object that needs to be returned to operate in Interrupt (GPIO) mode in the _CRS Method.

Edited by shl628
Link to comment
Share on other sites

  

On 1/30/2023 at 3:11 AM, Xflash2006 said:

Hi I have a problem, I can't see the opencore boot menu.

Before resetting windows it was working fine.

I attach the cofig.plist and the logs.

 

Could anyone help me please?

 

CPU: Intel i5 10210U

GPU: Intel UHD Graphics + NVIDIA GeForce MX 130

config.plist 65.29 kB · 4 downloads opencore-2023-01-29-221840.txt 256 kB · 2 downloads

 

The same issue also affects me.

Edited by JackLyons
Link to comment
Share on other sites

13 hours ago, shl628 said:

 

The I2C touchpad requires an ACPI patch.
Please send me the original DSDT extracted from OEM ACPI Table.


Also, use VoodooInput.kext as plugins for VoodooI2C.kext, not plugins for VoodooPS2.kext
And, move the VoodooInput.kext load order between VoodooGPIO.kext and VoodooI2C.kext

 

Before proceeding with the ACPI patch for the I2C touchpad, check the following :


1. Did you check the value of APIC Pin of TPD0 Device?
    If the value of the APIC Pin exceeds 2F, Interrupt (APIC) mode is not available and Interrupt mode should only be used through the GPIO Controller.

2. Did you enable GPIO Controller (GPI0 Device)?

3. Did you apply Darwin OS Check Fix using SSDT-XOSI.aml or SSDT-OSYS.aml?

4. Check the Resource Template object that needs to be returned to operate in Interrupt (GPIO) mode in the _CRS Method.

Are the kexts correct now?

The XOSI patch is enabled.

My decompiled dsdt and SSDT-GPI0:

dsdt.dsl

SSDT-GPI0.dsl

config.plist

Edited by Xflash2006
Link to comment
Share on other sites

12 hours ago, Xflash2006 said:

Are the kexts correct now?

The XOSI patch is enabled.

My decompiled dsdt and SSDT-GPI0:

dsdt.dsl 1.7 MB · 0 downloads

SSDT-GPI0.dsl 809 B · 0 downloads

config.plist 38.27 kB · 0 downloads

 

1. The contents of the SSDT-GPI0 are invalid.
The _STA Method of GPI0 Device in your OEM DSDT is as follows.

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((GPHD == One))
                {
                    Return (0x03)
                }

                Return (0x0F)
            }

Therefore, you should assign 'Zero' to 'GPHD' instead of 'One' to 'GPEN'.

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "GPI0", 0x00000000)
{
    External (GPHD, FieldUnitObj)

    If (_OSI ("Darwin"))
    {
        GPHD = Zero
    }
}

 

2. SSCN, FMCN called I2C bus speed objects are already injected into Scope (_SB.PCI0.I2C0).

Therefore, a patch to add SSCN and FMCN is not needed.

    Scope (_SB.PCI0.I2C0)
    {
        Method (SSCN, 0, NotSerialized)
        {
            Return (PKG3 (SSH0, SSL0, SSD0))
        }

        Method (FMCN, 0, NotSerialized)
        {
            Return (PKG3 (FMH0, FML0, FMD0))
        }
	...

 

3. SBFB, SBFI, and SBFG exist in the TPD0 Device, but there is no sentence in the _CRS Method to return ConcatenateResTemplate (SBFB, SBFG).

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If ((OSYS < 0x07DC))
                {
                    Return (SBFI) /* \_SB_.PCI0.I2C0.TPD0.SBFI */
                }

                Return (ConcatenateResTemplate (SBFB, SBFI))
            }

I think you should use SSDT to patch the _CRS method of TPD0 Device separately using ACPI Hot Patch method.

 

4. Additionally, you may need to set 'Force unlock on all GPIO pads' to 'Enabled' in the BIOS settings.
Unlock the BIOS Hidden menu by referring to the site below.

https://forums.lenovo.com/t5/Lenovo-IdeaPad-1xx-3xx-5xx-7xx-Edge-LaVie-Z-Flex-Laptops/Ideapad-5-14IIL05-Enter-Hidden-BIOS/m-p/5018261?page=1

 

Edited by shl628
Link to comment
Share on other sites

12 hours ago, shl628 said:

 

1. The contents of the SSDT-GPI0 are invalid.
The _STA Method of GPI0 Device in your OEM DSDT is as follows.

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((GPHD == One))
                {
                    Return (0x03)
                }

                Return (0x0F)
            }

Therefore, you should assign 'Zero' to 'GPHD' instead of 'One' to 'GPEN'.

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "GPI0", 0x00000000)
{
    External (GPHD, FieldUnitObj)

    If (_OSI ("Darwin"))
    {
        GPHD = Zero
    }
}

 

2. SSCN, FMCN called I2C bus speed objects are already injected into Scope (_SB.PCI0.I2C0).

Therefore, a patch to add SSCN and FMCN is not needed.

    Scope (_SB.PCI0.I2C0)
    {
        Method (SSCN, 0, NotSerialized)
        {
            Return (PKG3 (SSH0, SSL0, SSD0))
        }

        Method (FMCN, 0, NotSerialized)
        {
            Return (PKG3 (FMH0, FML0, FMD0))
        }
	...

 

3. SBFB, SBFI, and SBFG exist in the TPD0 Device, but there is no sentence in the _CRS Method to return ConcatenateResTemplate (SBFB, SBFG).

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If ((OSYS < 0x07DC))
                {
                    Return (SBFI) /* \_SB_.PCI0.I2C0.TPD0.SBFI */
                }

                Return (ConcatenateResTemplate (SBFB, SBFI))
            }

I think you should use SSDT to patch the _CRS method of TPD0 Device separately using ACPI Hot Patch method.

 

4. Additionally, you may need to set 'Force unlock on all GPIO pads' to 'Enabled' in the BIOS settings.
Unlock the BIOS Hidden menu by referring to the site below.

https://forums.lenovo.com/t5/Lenovo-IdeaPad-1xx-3xx-5xx-7xx-Edge-LaVie-Z-Flex-Laptops/Ideapad-5-14IIL05-Enter-Hidden-BIOS/m-p/5018261?page=1

 

It doesn't work. Where did I go wrong?

My bios doesn't have the onekeybattery option and I can't get into the hidden bios.

dsdt.dsl SSDT-GPI0.dsl

Edited by Xflash2006
Link to comment
Share on other sites

11 hours ago, Xflash2006 said:

It doesn't work. Where did I go wrong?

My bios doesn't have the onekeybattery option and I can't get into the hidden bios.

dsdt.dsl 1.64 MB · 0 downloads SSDT-GPI0.dsl 758 B · 0 downloads

 

1. Why are the SSCN and FMCN in Scope (_SB.PCI0.I2C0) removed from the attached DSDT.dsl?

Please revert to the original.

 

2. Did you check if GPI0 Device, TPD0 Device is loaded and displayed in IOReg?

  • Make sure that VoodooGPIOCannonLakeLP is loaded under the GPI0 Device.
  • Make sure that the VoodooI2C related kexts are loaded under the TPD0 Device.
  • Select TPD0 Device and tell me how the values of 'gpioPin' and 'Interrupt Mode' properties appear on the right.

Or, please extract the IOReg and send it to me.

 

3. Did you patch the _CRS Method to return 'ConcatenateResTemplate (SBFB, SBFG)'?

Link to comment
Share on other sites

15 hours ago, shl628 said:

 

1. Why are the SSCN and FMCN in Scope (_SB.PCI0.I2C0) removed from the attached DSDT.dsl?

Please revert to the original.

 

2. Did you check if GPI0 Device, TPD0 Device is loaded and displayed in IOReg?

  • Make sure that VoodooGPIOCannonLakeLP is loaded under the GPI0 Device.
  • Make sure that the VoodooI2C related kexts are loaded under the TPD0 Device.
  • Select TPD0 Device and tell me how the values of 'gpioPin' and 'Interrupt Mode' properties appear on the right.

Or, please extract the IOReg and send it to me.

 

3. Did you patch the _CRS Method to return 'ConcatenateResTemplate (SBFB, SBFG)'?

How do I patch _CRS Method?

I attached IOReg and dsl files

Archivio.zip

Edited by Xflash2006
Link to comment
Share on other sites

Have you read VoodooI2C's official Installaion & GPIO Pinning document?

https://voodooi2c.github.io/#Installation/Installation

https://voodooi2c.github.io/#GPIO Pinning/GPIO Pinning

 

I checked your IOReg and the APIC Pin value of TPD0 Device is 0x6E.

In addition, referring to the GPIO Pinning Guide document above, the conversion of APIC Pin = 0x6E to the GPIO Pin value is as follows.

 

- GPP_D14_IRQ

Hardware Pin = 82 (Dec)

GPIO Pin = 82 - 68 + 96 = 110 (Dec) = 0x6E (Hex)


- GPP_G2_IRQ
Hardware Pin = 53 (Dec)
GPIO Pin = 53 - 51 + 64 = 66 (Dec) = 0x42 (Hex)

 

I created SSDT-TPD0.aml to patch the _CRS Method using ACPI Hot Patch method.

SSDT-TPD0.aml.zip

 

Add the ACPI Rename patch below to ACPI - Patch in Config.plist and use it together.

  • Base : \_SB.PCI0.I2C0.TPD0
  • TableSignature : DSDT
  • Find : 5F435253
  • Replace : 58435253
  • Comment : Rename _CRS to XCRS in TPD0 Device

 

And, It is integrated with SSDT-GPI0 and does not require the existing SSDT-GPI0.aml

DefinitionBlock ("", "SSDT", 2, "hack", "TPD0", 0x00000000)
{
    External (_SB_.PCI0.I2C0.TPD0, DeviceObj)
    External (_SB_.PCI0.I2C0.TPD0.SBFB, IntObj)
    External (_SB_.PCI0.I2C0.TPD0.SBFG, IntObj)
    External (_SB_.PCI0.I2C0.TPD0.XCRS, MethodObj)    // 0 Arguments
    External (GPHD, FieldUnitObj)

    If (_OSI ("Darwin"))
    {
        GPHD = Zero
    }

    Scope (\_SB.PCI0.I2C0.TPD0)
    {
        Name (SBFX, ResourceTemplate ()
        {
            GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                )
                {   // Pin list
                    0x0042
                }
        })
        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
        {
            If (_OSI ("Darwin"))
            {
                Return (ConcatenateResTemplate (SBFB, SBFG))
            }
            Else
            {
                Return (\_SB.PCI0.I2C0.TPD0.XCRS ())
            }
        }
    }
}

Also, the ConcatenateResTemplate (SBFB, SBFG) was returned in the _CRS Method to use GPIO Pin=0x6E using SBFG in the existing OEM DSDT.
If it doesn't work well with GPIO Pin = 0x6E, I created a ResourceTemplate object called SBFX to apply GPIO Pin = 0x42.
Change SBFG to SBFX in the Return sentence of the _CRS Method and try rebooting.

 

If it still doesn't work, apply -vi2c-force-polling boot arg to force the touchpad into Polling mode and use it.

Edited by shl628
  • Thanks 1
Link to comment
Share on other sites

9 hours ago, shl628 said:

Have you read VoodooI2C's official Installaion & GPIO Pinning document?

https://voodooi2c.github.io/#Installation/Installation

https://voodooi2c.github.io/#GPIO Pinning/GPIO Pinning

 

I checked your IOReg and the APIC Pin value of TPD0 Device is 0x6E.

In addition, referring to the GPIO Pinning Guide document above, the conversion of APIC Pin = 0x6E to the GPIO Pin value is as follows.

 

- GPP_D14_IRQ

Hardware Pin = 82 (Dec)

GPIO Pin = 82 - 68 + 96 = 110 (Dec) = 0x6E (Hex)


- GPP_G2_IRQ
Hardware Pin = 53 (Dec)
GPIO Pin = 53 - 51 + 64 = 66 (Dec) = 0x42 (Hex)

 

I created SSDT-TPD0.aml to patch the _CRS Method using ACPI Hot Patch method.

SSDT-TPD0.aml.zip 873 B · 1 download

 

Add the ACPI Rename patch below to ACPI - Patch in Config.plist and use it together.

  • Base : \_SB.PCI0.I2C0.TPD0
  • TableSignature : DSDT
  • Find : 5F435253
  • Replace : 58435253
  • Comment : Rename _CRS to XCRS in TPD0 Device

 

And, It is integrated with SSDT-GPI0 and does not require the existing SSDT-GPI0.aml

DefinitionBlock ("", "SSDT", 2, "hack", "TPD0", 0x00000000)
{
    External (_SB_.PCI0.I2C0.TPD0, DeviceObj)
    External (_SB_.PCI0.I2C0.TPD0.SBFB, IntObj)
    External (_SB_.PCI0.I2C0.TPD0.SBFG, IntObj)
    External (_SB_.PCI0.I2C0.TPD0.XCRS, MethodObj)    // 0 Arguments
    External (GPHD, FieldUnitObj)

    If (_OSI ("Darwin"))
    {
        GPHD = Zero
    }

    Scope (\_SB.PCI0.I2C0.TPD0)
    {
        Name (SBFX, ResourceTemplate ()
        {
            GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                )
                {   // Pin list
                    0x0042
                }
        })
        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
        {
            If (_OSI ("Darwin"))
            {
                Return (ConcatenateResTemplate (SBFB, SBFG))
            }
            Else
            {
                Return (\_SB.PCI0.I2C0.TPD0.XCRS ())
            }
        }
    }
}

Also, the ConcatenateResTemplate (SBFB, SBFG) was returned in the _CRS Method to use GPIO Pin=0x6E using SBFG in the existing OEM DSDT.
If it doesn't work well with GPIO Pin = 0x6E, I created a ResourceTemplate object called SBFX to apply GPIO Pin = 0x42.
Change SBFG to SBFX in the Return sentence of the _CRS Method and try rebooting.

 

If it still doesn't work, apply -vi2c-force-polling boot arg to force the touchpad into Polling mode and use it.

Thank you very much! Now it works.

Is there any way to fix turbo boost, because the max frequency when the battery is charging it's 2.4Ghz instead of 4.2Ghz.

If I lock the screen the screen won't turn on anymore, is there a way to fix it?

Is the dsdt.aml file still needed?

 

config.plist

  • Like 1
Link to comment
Share on other sites

22 minutes ago, Xflash2006 said:

Thank you very much! Now it works.

Is there any way to fix turbo boost, because the max frequency when the battery is charging it's 2.4Ghz instead of 4.2Ghz.

If I lock the screen the screen won't turn on anymore, is there a way to fix it?

Is the dsdt.aml file still needed?

 

config.plist 39.8 kB · 0 downloads

 

Try using CPUFriendFriend.

https://github.com/corpnewt/CPUFriendFriend

 

igfxonln=1 is already applied, but I'm not sure about the display Black Screen issue.

DSDT.aml is not required for the touchpad, only SSDT-TPD0.aml is required.

Link to comment
Share on other sites

1 hour ago, shl628 said:

 

Try using CPUFriendFriend.

https://github.com/corpnewt/CPUFriendFriend

 

igfxonln=1 is already applied, but I'm not sure about the display Black Screen issue.

DSDT.aml is not required for the touchpad, only SSDT-TPD0.aml is required.

Black screen issue:

To be precise, the screen turns on but shows nothing.

Is there a way to make the screen not turn off when I lock the user?

 

Turbo boost issue:

I tried but it still doesn't go to 4GHz

The TDP remains at TPD down.

In the BIOS, power saving is Extreme performance.

https://ark.intel.com/content/www/us/en/ark/products/195436/intel-core-i510210u-processor-6m-cache-up-to-4-20-ghz.html

7FD89EBF-DC20-45EF-8ECA-A5249B809948.jpeg

ssdt_data.aml config.plist

Edited by Xflash2006
Link to comment
Share on other sites

On 2/4/2023 at 4:31 PM, Xflash2006 said:

Black screen issue:

To be precise, the screen turns on but shows nothing.

Is there a way to make the screen not turn off when I lock the user?

 

Turbo boost issue:

I tried but it still doesn't go to 4GHz

The TDP remains at TPD down.

In the BIOS, power saving is Extreme performance.

https://ark.intel.com/content/www/us/en/ark/products/195436/intel-core-i510210u-processor-6m-cache-up-to-4-20-ghz.html

7FD89EBF-DC20-45EF-8ECA-A5249B809948.jpeg

ssdt_data.aml 25.7 kB · 0 downloads config.plist 41.27 kB · 1 download

Does anyone have a solution to this problem?

Link to comment
Share on other sites

  • 5 months later...
On 1/29/2023 at 11:41 PM, Xflash2006 said:

Hi I have a problem, I can't see the opencore boot menu.

Before resetting windows it was working fine.

I attach the cofig.plist and the logs.

 

Could anyone help me please?

 

CPU: Intel i5 10210U

GPU: Intel UHD Graphics + NVIDIA GeForce MX 130

config.plist 65.29 kB · 5 downloads opencore-2023-01-29-221840.txt 256 kB · 3 downloads

 

 

 

 

The same issue also affects me. Any reference to a district generally refers to any substitute distinct district. If you're searching for a good online casino site but are having trouble finding one, don't worry; I was too. I discovered one at https://casinosanalyzer.com/online-casinos/amazon-gift-card where you can choose the greatest casino site for you on this page. I can see numerous online casinos on this website, and I enjoy playing casino games there as well. 

If you're facing issues with the Opencore boot menu after resetting Windows, here are some helpful tips to try. Check your BIOS settings to ensure proper boot configurations, verify the config.plist file for accurate settings, and consider re-creating the Opencore USB installer. Additionally, disable Secure Boot if enabled, and test booting from a different drive if possible. Always ensure your hardware is compatible with Opencore and use the latest version available. For further assistance, reach out to Opencore forums or communities where experienced users can provide tailored support based on your situation. Happy troubleshooting!

 

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...