Jump to content
8755 posts in this topic

Recommended Posts

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
9 hours ago, SavageAUS said:


Try layout 28: 1c000000
 

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 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

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
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
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?

 

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
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

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 ?

  

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 ?

On 12/4/2019 at 5:10 PM, karacho_ak said:

Might be an ACPI issue, old Linux kernels die with the same symptom for me because of Ryzen ACPI (no clue about the precise issue). Enable a higher kernel (preferably maximum) log level to see the error, it should be a boot arg.

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
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

@karacho_ak I didn't suggest your issue was an old kernel, just that is what caused issues for me (lack of Ryzen ACPI support) to confirm ACPI is an option. As OC loads ACPI tables and applies ACPI patches OS agnostic, that's your best bet, but check the early log as I said

  • Like 1

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 ?

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. 

@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
20 hours ago, NorthAmTrans said:

 

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

 

 

but anyone here from the dev's with a hint how to fix NVRAM  .. it is no longer working since OC 0.53 release but worked all the time earlier release (and 0.53 beta) perfectly

 

Edited by texem
53 minutes ago, texem said:

 

 

but anyone here from the dev's with a hint how to fix NVRAM  .. it is no longer working since OC 0.53 release but worked all the time earlier release (and 0.53 beta) perfectly

 

 

Actually I came back here to say I only need to run NVRAM Reset after major ACPI changes like Thunderbolt SSDT's. At least that's what I've concluded.

 

For my own knowledge, your z390 does not have native NVRAM, correct? And your saying your emulated NVRAM doesn't work?

6 hours ago, NorthAmTrans said:

 

Actually I came back here to say I only need to run NVRAM Reset after major ACPI changes like Thunderbolt SSDT's. At least that's what I've concluded.

 

For my own knowledge, your z390 does not have native NVRAM, correct? And your saying your emulated NVRAM doesn't work?

 

no, my z390 works _with_  native nvram. Thats about using a patched DSDT.

 

×
×
  • Create New...