Jump to content
8755 posts in this topic

Recommended Posts

5 minutes ago, jl4c said:

@Download-Fritz, thank you.

My issue is to find correct way to call vmlinuz-linux...

Also for those interested.

Quadruple boot with OpenCore: ( Catalina, Mojave, Windows, Ubuntu ) Smooth experience :)
My path entry for Ubuntu is:

PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x2,0xFFFF,0x0)/HD(1,GPT,6764064E-FA1D-4FC7-AEF5-C94FAE30F973,0x28,0x64000)/\EFI\ubuntu\grubx64.efi

 

SCANPOLICY: 2689795

 

2071316666_ScreenShot2019-11-10at1_27_56PM.png.e1c3916a56eab8e897048a9334878437.png1064263590_ScreenShot2019-11-10at1_27_29PM.png.c89a1d3cdc3736faf0e2923ae6ab6982.png

  • Like 2

@Ellybz, thank you.

The thing is I am not using any bootloader like Grub. Am trying to use OC to boot Linux directly. You can find more information about to boot Linux through Clover in: https://wiki.archlinux.org/index.php/Clover

1 hour ago, jl4c said:

@Ellybz, thank you.

The thing is I am not using any bootloader like Grub. Am trying to use OC to boot Linux directly. You can find more information about to boot Linux through Clover in: https://wiki.archlinux.org/index.php/Clover

Not Sure I understood. Similarly to Clover, You can use OC to boot any OS you'd like. Have you tried the following boot entry ?
PciRoot(0x0)/Pci( 0xXX, 0x0 )/XXXX.(0x0xXXXX.0x0)/HD ((1,XXX,,XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,0xXX,0xXXXXX) /\EFI\Archlinux\vmlinuz-itz

You can find the hidden path thru the Clover Bootlog. ( Shell method for linux is incomplete ). 

Edited by Ellybz
18 hours ago, Addrii30 said:

Hi. How do i setup the CPU frequency and BUS speed in opencore. Because in opencore have ARTfrequency and FSB frequency. My clock is very slow.

PlatformInfo->DataHub->ARTFrequency, FSBFrequency

  • Like 1

Guys, in config.plist I've renamed the method _Q13 to XQ13 and used this code to map brightness keys:


External (\HKNO, FieldUnitObj)
External (\_SB.PCI0.LPCB.PS2K, DeviceObj)

Method (_Q13, 0, Serialized)

{
    Local0 = HKNO
    If ((Local0 == 0x07))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x0405)
    }

    If ((Local0 == 0x08))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x0406)
    }

    If ((Local0 == 0x04))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x046E)
    }

}

I wonder how can I make this code only work for Darwin (aka If (_OSI ("Darwin"))) and return to original code (XQ13) for Windows and Linux.

8 hours ago, jl4c said:

Guys, in config.plist I've renamed the method _Q13 to XQ13 and used this code to map brightness keys:

 


External (\HKNO, FieldUnitObj)
External (\_SB.PCI0.LPCB.PS2K, DeviceObj)

Method (_Q13, 0, Serialized)

{
    Local0 = HKNO
    If ((Local0 == 0x07))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x0405)
    }

    If ((Local0 == 0x08))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x0406)
    }

    If ((Local0 == 0x04))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x046E)
    }

}

 

I wonder how can I make this code only work for Darwin (aka If (_OSI ("Darwin"))) and return to original code (XQ13) for Windows and Linux.

 

Not sure, you have to test it.

DefinitionBlock ("", "SSDT", 2, "HACK", "_Q13", 0x00000000)
{
    External (_SB_.PCI0.LPCB.PS2K, DeviceObj)
    External (HKNO, FieldUnitObj)

    Method (_Q13, 0, Serialized)  // _Qxx: EC Query, xx=0x00-0xFF
    {
        If (_OSI ("Darwin"))
        {
            Local0 = HKNO /* External reference */
            If ((Local0 == 0x07))
            {
                Notify (\_SB.PCI0.LPCB.PS2K, 0x0405)
            }

            If ((Local0 == 0x08))
            {
                Notify (\_SB.PCI0.LPCB.PS2K, 0x0406)
            }

            If ((Local0 == 0x04))
            {
                Notify (\_SB.PCI0.LPCB.PS2K, 0x046E)
            }
        }
    }
}

 

@hardcorehenry, thank you

Yes, the code provided was the first one I tried, the problem is that it works for macOS (Darwin) but doesn't return to original code (XQ13) in DSDT for Windows or Linux. So the brightness keys do not work in those operating systems.

Edited by jl4c

@Regi Yassin, this I tried without success

 

Screen Shot 2019-11-11 at 12.11.21.png

 

This is the output from Linux:

[   26.811221] atkbd serio0: Unknown key pressed (translated set 2, code 0xab on isa0060/serio0).
[   26.811229] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
[   26.817616] ACPI: BIOS _OSI(Darwin) query ignored
[   26.824203] atkbd serio0: Unknown key released (translated set 2, code 0xab on isa0060/serio0).
[   26.824206] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.

 

Edited by jl4c
57 minutes ago, jl4c said:

@Regi Yassin, this I tried without success

 

Screen Shot 2019-11-11 at 12.11.21.png

 

This is the output from Linux:


[   26.811221] atkbd serio0: Unknown key pressed (translated set 2, code 0xab on isa0060/serio0).
[   26.811229] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
[   26.817616] ACPI: BIOS _OSI(Darwin) query ignored
[   26.824203] atkbd serio0: Unknown key released (translated set 2, code 0xab on isa0060/serio0).
[   26.824206] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.

 

 

Copy to Else original code _Q13 from DSDT.

42 minutes ago, jl4c said:

@Andrey1970 thank you

Yes, that is logic. What am trying to do is precisely avoid to copy the entire code from XQ13 in DSDT to this little SSDT and call the method (XQ13) from it.

 

You won't be able to use XQ13 in DSDT, because this method was deactivated by renamings _Q13 to XQ13.

Edited by Andrey1970
46 minutes ago, Andrey1970 said:

You won't be able to use XQ13 in DSDT, because this method was deactivated by renamings _Q13 to XQ13.

I am not sure of this, as an example, you can take the method with which Rehabman fix instant wake on usb ports, where the SSDT returns to the original code (XPRW) in DSDT.

DefinitionBlock ("", "SSDT", 2, "HACK", "GPRW", 0x00000000)
{
    External (XPRW, MethodObj)    // 2 Arguments
    Method (GPRW, 2, NotSerialized)
    {
        If ((0x0D == Arg0))
        {
            Return (Package (0x02)
            {
                0x0D, 
                Zero
            })
        }
        Return (XPRW (Arg0, Arg1))
    }
}

 

Edited by jl4c
14 hours ago, jl4c said:

Guys, in config.plist I've renamed the method _Q13 to XQ13 and used this code to map brightness keys:

 


External (\HKNO, FieldUnitObj)
External (\_SB.PCI0.LPCB.PS2K, DeviceObj)

Method (_Q13, 0, Serialized)

{
    Local0 = HKNO
    If ((Local0 == 0x07))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x0405)
    }

    If ((Local0 == 0x08))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x0406)
    }

    If ((Local0 == 0x04))
    {
        Notify (\_SB.PCI0.LPCB.PS2K, 0x046E)
    }

}

 

I wonder how can I make this code only work for Darwin (aka If (_OSI ("Darwin"))) and return to original code (XQ13) for Windows and Linux.

Can you just add the a Method for _Q13 instead of renaming XQ13?

55 minutes ago, jl4c said:

Not sure what you suggest. The purpose of this is to use ACPI hotpatch.

 

You can add custom method _Q13 in DSDT with IF Darwin condition. And an original method _Q13 to leave with Else condition.

And to remove a renaming patch.

Edited by Andrey1970
10 minutes ago, jl4c said:

Not sure what you suggest. The purpose of this is to use ACPI hotpatch.

You can have multi method like this:

Method (_Q13, 0, Serialized){

}
Method (XQ13, 0, Serialized){

}

and Osx will call _Q13

Others will call XQ13...

 

9 hours ago, n.d.k said:

You can have multi method like this:


Method (_Q13, 0, Serialized){

}

Method (XQ13, 0, Serialized){

}

and Osx will call _Q13

Others will call XQ13...

 

And other method will call what?

13 hours ago, jl4c said:

Not sure what you suggest. The purpose of this is to use ACPI hotpatch.

 

This should be fixed the problem

 

DefinitionBlock ("", "SSDT", 2, "HACK", "_Q13", 0x00000000)
{
    External (_SB_.PCI0.LPCB.PS2K, DeviceObj)
    External (HKNO, FieldUnitObj)

    Method (_Q13, 0, Serialized)  // _Qxx: EC Query, xx=0x00-0xFF
    {
        If (_OSI ("Darwin"))
        {
            Local0 = HKNO /* External reference */
            If ((Local0 == 0x07))
            {
                Notify (\_SB.PCI0.LPCB.PS2K, 0x0405)
            }

            If ((Local0 == 0x08))
            {
                Notify (\_SB.PCI0.LPCB.PS2K, 0x0406)
            }

            If ((Local0 == 0x04))
            {
                Notify (\_SB.PCI0.LPCB.PS2K, 0x046E)
            }
        }
      Else
      {
         Paste the original code of _Q13 from Original DSDT
      }
    }
}

 

Edited by Andres ZeroCross
  • Like 1
×
×
  • Create New...