Jump to content

OpenCore General Discussion


dgsga
8,887 posts in this topic

Recommended Posts

Hi All. Maybe someone can point me to the right direction to boot my Linux on a separate SSD with OpenCore. OpenCore boots without any error Message to Boot Picker and into macOS and Windows (all on separate Drives). When i try to boot Linux, it boots fine to the Grub Menu. But then, the Backlight on my Keyboard and Mouse going off and nothing more happens. I'm also not able to install a new Linux from a Pendrive when booting with OpenCore. Grabbing the Pendrive from UEFI-Bootmenu works fine. I guess something with USB Power went wrong when using OpenCore to boot Linux, because Lights on Keyboard and Mouse turn off. Have my EFI attached.

 

Thank You.

 

*bump*

 

EFI.zip

Edited by karacho_ak
Link to comment
Share on other sites

I am trying to move from Clover to Opencore and got most everything working, except my Sound card. I have a Dell Optiplex 7060 with ALC3234 sound chip. In Clover, I used Audio device, inject 27. In opencore I added in DeviceProperties/Add: PciRoot(0x0)/Pci(0x1f,0x3) / layout-id: 1B000000 of my config.plist file, but no device appears in my Sound preferences.

 

I attach a IOReg capture of the device.

 

Is this a bug or am I doing something wrong?

 

Thank you for any pointers!

 

 

 

Screenshot 2019-12-04 at 22.28.05.png

Link to comment
Share on other sites

Hi, here again ... I've upgraded to Catalina but the same opencore configuration that was working for high sierra doesn't work for Catalina and i'm stuck.


Here is my EFI folder and here is a screeshot where it freezee at boot (it seems to hangs after VoodooPS2 keyboard or if i enable it after VoodooI2C) .. maybe after that it shoud load Whatevergreen ... i'm not sure

 

P.S. All the kexts  i'm using EFI.zipare up to date 

20191204_231639.jpg

Link to comment
Share on other sites

I am trying to move from Clover to Opencore and got most everything working, except my Sound card. I have a Dell Optiplex 7060 with ALC3234 sound chip. In Clover, I used Audio device, inject 27. In opencore I added in DeviceProperties/Add: PciRoot(0x0)/Pci(0x1f,0x3) / layout-id: 1B000000 of my config.plist file, but no device appears in my Sound preferences.
 
I attach a IOReg capture of the device.
 
Is this a bug or am I doing something wrong?
 
Thank you for any pointers!
 
 
 
1242118179_Screenshot2019-12-04at22_28_05.thumb.png.a8e889622441a4dd97958e21656b76cf.png

Try layout 28: 1c000000


Sent from my iPhone using Tapatalk
Link to comment
Share on other sites

I am not in front of my hack right now, but will try that tonight.
 
I've found all the different numbers to test in the layout-id on the AppleALC supported codecs page, but is there a method here, or just trial and error? Why do you suggest 28? Thanks!
 

I have the same codec on one of my hacks.


Sent from my iPhone using Tapatalk
Link to comment
Share on other sites

New update worked.

X99 and X299 try this EFI 0.5.4

EFI.zip

Before boot add your TSCAdjustReset.kext

Every open core update you have to update Drivers (AppleSupportPKG) too.

After boot you can patch or add kext & Kernel & Bios & SSDT or DSDT.

 

 

 

Edited by nmano
Link to comment
Share on other sites

14 hours ago, meaganmargaret said:

So, the 11-05-2019 version of 0.5.3 works, and the 11-14-2019 (the released version, the date on the file is 12-2) is a bit of a stinker.....

Not just change OpenCore.efi and BOOTx64.efi. You have to install the new .efi Drivers with the release version too. 

  • Like 2
Link to comment
Share on other sites

11 hours ago, SavageAUS said:


I have the same codec on one of my hacks.
 

 

Totally noob question, but how can I verify that the layout-id was correctly applied? I have tried all the layout-ids from the AppleALC wiki and none of them work. Now I wonder if I didn't make a typo or something else is off.

 

I tried checking in "About this Mac" then "System Report" and in the "PCI" section, but there's nothing there. So, where can I check this?

 

Link to comment
Share on other sites

3 hours ago, DanielMac said:

 

Totally noob question, but how can I verify that the layout-id was correctly applied? I have tried all the layout-ids from the AppleALC wiki and none of them work. Now I wonder if I didn't make a typo or something else is off.

 

I tried checking in "About this Mac" then "System Report" and in the "PCI" section, but there's nothing there. So, where can I check this?

 

Have you tried all layouts for your codec?

layout 3, 11, 13, 15, 17, 18, 21, 27, 28, 30, 31, 99

Upload your config. Remove serials.

Edited by SavageAUS
Link to comment
Share on other sites

4 hours ago, DanielMac said:

Totally noob question, but how can I verify that the layout-id was correctly applied? I have tried all the layout-ids from the AppleALC wiki and none of them work. Now I wonder if I didn't make a typo or something else is off.

 

Use gfxutil for check HDEF PciRoot.

  • Like 2
Link to comment
Share on other sites

Hi,

 

unfortunately NVRAM handling seems to be broken on 0.53 RELEASE. I had a working native NVRAM on older versions (and beta 0.53 as well)

But since I had to replace FwRuntimeServices.efi for successful booting the official release , NVRAM is no longer persistent.

Yes, I am on z390 here but in my case this was never a problem (works on Clover till today.)

I have two scenarios , one without any DSDT and a fully patched DSDT version. Both fails now.

 

 

Whats going on here ?

  

Link to comment
Share on other sites

17 hours ago, SavageAUS said:

Have you tried all layouts for your codec?

layout 3, 11, 13, 15, 17, 18, 21, 27, 28, 30, 31, 99

Upload your config. Remove serials.

 

Yes, I tried all of those. I put it back to 27 in the config.plist below because that's what was working with Clover.

 

I also attach my EFI folder structure, just in case. Thank you!

 

 

config.plist

Screenshot 2019-12-06 at 18.14.57.png

16 hours ago, Andrey1970 said:

 

Use gfxutil for check HDEF PciRoot.

 

HDEF is definitively on 0x1f,0x3:

PCI0.pci8086,3ec2 = PciRoot(0x0)/Pci(0x0,0x0)
PCI0.IGPU = PciRoot(0x0)/Pci(0x2,0x0)
PCI0.pci8086,1911 = PciRoot(0x0)/Pci(0x8,0x0)
PCI0.pci8086,a379 = PciRoot(0x0)/Pci(0x12,0x0)
PCI0.XHC = PciRoot(0x0)/Pci(0x14,0x0)
PCI0.pci8086,a36f = PciRoot(0x0)/Pci(0x14,0x2)
PCI0.I2C0 = PciRoot(0x0)/Pci(0x15,0x0)
PCI0.IMEI = PciRoot(0x0)/Pci(0x16,0x0)
PCI0.SAT0 = PciRoot(0x0)/Pci(0x17,0x0)
PCI0.LPCB = PciRoot(0x0)/Pci(0x1f,0x0)
PCI0.HDEF = PciRoot(0x0)/Pci(0x1f,0x3)
PCI0.SBUS = PciRoot(0x0)/Pci(0x1f,0x4)
PCI0.pci8086,a324 = PciRoot(0x0)/Pci(0x1f,0x5)
PCI0.GLAN = PciRoot(0x0)/Pci(0x1f,0x6)

Question I had was how to check which layout-id was injected by AppleALC ?

Link to comment
Share on other sites

Thx for reply @Download-Fritz, but i'm already with the newest Kernel on Manjaro Deepin (Arch). Kernelversion is vmlinuz-5.4-x86_64

 

Will try the find the Issue. Do you recommend to use the OC Debug Version?

Edited by karacho_ak
Link to comment
Share on other sites

3 hours ago, texem said:

Hi,

 

unfortunately NVRAM handling seems to be broken on 0.53 RELEASE. I had a working native NVRAM on older versions (and beta 0.53 as well)

But since I had to replace FwRuntimeServices.efi for successful booting the official release , NVRAM is no longer persistent.

Yes, I am on z390 here but in my case this was never a problem (works on Clover till today.)

I have two scenarios , one without any DSDT and a fully patched DSDT version. Both fails now.

 

 

Whats going on here ?

  

 

I'm having similar issues with native NVRAM on my z370. I have to reset NVRAM to get in often.

  • Haha 1
Link to comment
Share on other sites

I understand the importance of If (_OSI ("Darwin")) in order to be able to boot other operating systems without being affected by macOS patches, but i would like to know what should be the best approach / recommended way to patch Methods/Devices/Objects in ACPI.

I don't want to used patched DSDT, i prefer hotpatch because Patched DSDT has it's own issue of SystemMemory address changes that can happen by changing a single bios setting, you will have to re-dump, re-extract, re-patch and re-place the DSDT every time you do a single change and that is a PITA which also means that no one can use your files if you have a guide.

Hotpatch doesn't have that problem at all, it is working perfect for me with renames and stuff (Rehabman's way) but that remains a "working perfect" scenario if the only OS present will be macOS.

 

As of now, i can't figure out a good/possible way to do a If (_OSI ("Darwin")) hotpatch for Laptop Battery Status (especially ones that have dual batteries) and the other thing is Keyboard Function (FN) keys.

 

Keyboard:

 

Current excellent working Keyboard Map but macOS only is this way: Method (_Q14,Q15,Q... renamed to XQ14,XQ15... etc)

Then patched Methods are available on this addon SSDT-KBD:

// Lenovo ThinkPad X240 Keyboard Map.
// Note: aside from Brightness keys, the rest of these should be assigned from SysPrefs > Keyboard > Shortcuts. 
// My examples are provided in comments of each Method.

DefinitionBlock("", "SSDT", 2, "X240", "_KBD", 0)
{
    External (_SB.PCI0.LPC.EC, DeviceObj)
    External (_SB.PCI0.LPC.KBD, DeviceObj)

    Scope (_SB.PCI0.LPC.EC)
    {
        Method (_Q14, 0, NotSerialized)  // (F15) - Brightness Up
        {
            Notify (KBD, 0x0406)
        }
        Method (_Q15, 0, NotSerialized)  // (F14) - Brightness Down
        {
            Notify (KBD, 0x0405)
        }
        Method (_Q6A, 0, NotSerialized)  // (F4) Microphone Mute - Siri
        {
            Notify (KBD, 0x033E)
        }
        Method (_Q16, 0, NotSerialized)  // Projector / Mirror mode
        {
            Notify (KBD, 0x046E)
        }
        Method (_Q64, 0, NotSerialized)  // (F8) Radio ON/OFF - Notification Center
        {
            Notify (KBD, 0x0342)
        }
        Method (_Q66, 0, NotSerialized)  // (F16) Settings - System Preferences...
        {
            Notify (KBD, 0x0367)
        }
        Method (_Q67, 0, NotSerialized)  // (F17) Windows Search - Spotlight Search
        {
            Notify (KBD, 0x0368)
        }
        Method (_Q68, 0, NotSerialized)  // (F18) App Switcher - Mission Control
        {
            Notify (KBD, 0x0369)
        }
        Method (_Q69, 0, NotSerialized)  // (F19) Start Menu - Launchpad
        {
            Notify (KBD, 0x036A)
        }
    }
}

Original method example from my DSDT (example Q14):

            Method (_Q14, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x8000))
                {
                    \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1010)
                }

                If (\NBCF)
                {
                    If (\VIGD)
                    {
                        Notify (\_SB.PCI0.VID.LCD0, 0x86) // Device-Specific
                    }
                    Else
                    {
                        Notify (\_SB.PCI0.PEG.VID.LCD0, 0x86) // Device-Specific
                    }
                }
                Else
                {
                    Local0 = \BRLV
                    If ((Local0 != 0x0F))
                    {
                        Local0++
                        \BRLV = Local0
                    }

                    If (\VIGD)
                    {
                        \UCMS (0x16)
                        \_SB.PCI0.LPC.EC.BRNS ()
                    }
                    Else
                    {
                        \VBRC (Local0)
                    }

                    \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6050)
                }
            }

What would be the proper way of implementing Keyboard (Fn) function keys in this case so they work only with Darwin and possibly as you recommend: without renames ?

Link to comment
Share on other sites

1 hour ago, Sniki said:

I don't want to used patched DSDT, i prefer hotpatch because Patched DSDT has it's own issue of SystemMemory address changes that can happen by changing a single bios setting, you will have to re-dump, re-extract, re-patch and re-place the DSDT every time you do a single change

 

For this case there is RebaseRegions quirk. 

Link to comment
Share on other sites

@Sniki, renaming _Q14 to XQ14 is just fine, it will work on Windows too, as long as in your _Q14 method you immediately call the original method for anything but Darwin. I.e. you do if OSI Darwin check and put keyboard notification inside, and then else and call XQ14().

  • Thanks 2
Link to comment
Share on other sites

×
×
  • Create New...