Giter Club home page Giter Club logo

oc-little's Introduction

OpenCore 0.5+ 部件补丁

说明

依据 OpenCore 0.5+ 的要求和建议,制作本部件补丁。

在线手册

本仓库依赖 GitBook 并使用 GitHub Actions 构建了 Pages 服务和 PDF 手册。

主要内容

  1. 总述

    1. ASL 语法基础
    2. SSDT 补丁加载顺序
    3. ACPI 表单
    4. ASL-AML 对照表
  2. 关于AOAC

    1. 禁止S3睡眠
    2. AOAC禁用独显
    3. 电源空闲管理
    4. AOAC唤醒补丁
    5. 睡眠自动关闭蓝牙WIFI
  3. 预置变量

    1. OC I2C-GPIO 补丁
    2. 补丁库
  4. 仿冒设备

    1. 仿冒EC
    2. RTC0
    3. 仿冒环境光传感器
  5. 操作系统补丁

  6. 注入设备

    1. 注入 X86
    2. PNLF 注入方法
    3. SBUS(SMBU) 补丁
  7. 添加缺失的部件

  8. PS2 键盘映射及亮度快捷键 @OC-xlivans

  9. 笔记本电池驱动

  10. 禁用 EHCx

  11. PTSWAK 综合扩展补丁

  12. PNP0C0E 睡眠修正方法

  13. 0D6D 补丁

    1. 普通的 060D 补丁
    2. 惠普特殊的 060D 补丁
  14. 仿冒以太网和重置以太网 BSD Name

  15. CMOS 相关

    1. CMOS 内存和 RTCMemoryFixup
  16. ACPI 定制 USB 端口

  17. 禁止PCI设备及设置ASPM工作模式

    1. 禁止PCI设备
    2. 设置ASPM工作模式
  18. ACPIDebug

  19. 品牌机器特殊补丁

    1. Dell机器特殊补丁
    2. 小新 PRO13 特殊补丁
    3. ThinkPad 机器专用补丁
  20. I2C 专用部件

  21. SSDT屏蔽独显方法

  22. 声卡IRQ补丁

保留部件:

  1. 电池补丁
    1. Thinkpad
    2. 其它品牌
    3. 电池信息辅助补丁
    4. 说明示例
  2. CMOS 重置补丁

常见驱动加载顺序:

  1. config-1-Lilu-SMC-WEG-ALC 驱动列表
  2. config-2-PS2 键盘驱动列表
  3. config-3-BCM 无线和蓝牙驱动列表
  4. config-4-I2C+PS2 驱动列表
  5. config-5-PS2Smart 键盘驱动列表
  6. config-6-Intel 无线和蓝牙驱动列表

Credits

  • 特别感谢:

    • @宪武 制作的适用于 OpenCore 的 ACPI 部件补丁
    • @Bat.bat, @黑果小兵, @套陆, @iStar丶Forever 审核完善
  • 感谢:

    • @冬瓜-X1C5th
    • @OC-xlivans
    • @Air 13 IWL-GZ-Big Orange (OC perfect)
    • @子骏oc IWL
    • @大勇-小新air13-OC-划水小白
    • ......
  • Thanks for Acidanthera maintaining OpenCorePkg

oc-little's People

Contributors

gzxiaobai avatar sukkaw avatar the-eric-kwok avatar williambj1 avatar xjn819 avatar xstar-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oc-little's Issues

屏幕亮度无法调节

你好,我的笔记本是联想E490安装bigsur11.5以后,亮度无法调节,显示器也没有亮度调节滑块,SSDT-PNLF.aml补丁已经注入

使用Maciasl.app编译报错

使用的模板文件SSDT-PLUG-_SB.PR00.dsl,用Maciasl.app(版本为v1.4)打开,然后另存为SSDT-PLUG-_SB.PR00.aml(ACPI Machine Language Binary),报一堆的错误,错误如下:

  1. Maciasl程序结果

    The document “SSDT-PLUG-_SB.PR00.dsl” could not be saved as “SSDT-PLUG-_SB.PR00.aml”. 
    The compiler returned one or more errors.
    
  2. Maciasl报错信息

    line  code     Message
    12    4096    syntax error, unexpect '('
    12    4096    Inalid character (0x3D), expecting ASL keyword or name.
    25    4096    syntax error, unexpect '('
    25    4096    Inalid character (0x3D), expecting ASL keyword or name.
    等等等等
    

是否是我另存为的方式的问题?

亮度调节问题

你好,我的笔记本是Y7000P 2020H,安装好后Monterey 12.6后,核显能正常驱动,显示器设置界面中有亮度调整滑块,按功能键Fn+F5、F6也能显示(常说的小太阳),但是拖动亮度调节滑块或按功能键后,屏幕亮度没有变化。按PNLF注入方法中的方式处理后还是不行,请问有没有解决办法啊。

ACPIDebug - maybe something is missing

I followed your guide inside ACPIDebug.
I put "ACPIDebug.kext", that is correctly running:
antonio@MacBook-Pro ~ % sudo kextstat -l|grep rehab Executing: /usr/bin/kmutil showloaded --list-only 71 0 0 0xa000 0xa000 com.rehabman.driver.ACPIDebug (0.1.4) 9A0916D1-E9C6-3570-90E9-4DDC4BB19FB7 <13 5 3>
I created a custom SSDT for almost every EC Query in my DSDT (lost hours...):

DefinitionBlock ("", "SSDT", 2, "REMAP", "_KBD", 0x00000000)
{
    External (_SB_.PCI0.LPCB.H_EC, DeviceObj)
    External (RMDT.PUSH, MethodObj)   

    Scope (\_SB.PCI0.LPCB.H_EC)
    {
        Method (_Q50, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            \RMDT.PUSH ("Q50")
        }

        Method (_Q51, 0, NotSerialized)  
        {
            \RMDT.PUSH ("Q51")
        }

        Method (_Q6C, 0, NotSerialized)
        {
            \RMDT.PUSH ("Q6C")
        }

and so on...

I made and applied all the rename patches on config.plist.
ACPI table correctly loads but I don't have any sign of life of the EC Queries when I press a key in my log.

Your guide is the only found online that uses custom SSDT to make ACPIDebug work.
Maybe I'm missing something from your folder or maybe there is some operation that is not reported. I hope this reporting could be useful in case something is missing. Sorry if it's my mistake but I can't find other solutions at the moment and I think I did all that was described (helping with google translate).

Thanks in advance
System: Big Sur Beta 9

EDIT: tried to patch DSDT directly with patches by RehabMan. DSDT correctly loaded, with RMDT.PUSH for every EC Query. I don't have any log, though. Maybe the kext doesn't work with Big Sur?

手贱导致的问题

我之前在5代CPU上使用了EHCx-OFF,导致现在一个USB端口3.0无法使用

每隔2小时自动唤醒,该怎么处理呢?

2021-01-24 02:34:52.011013+0800 0x722fe    Default     0x0                  72     0    powerd: [powerd:sleepWake] Wake reason: "<private>"  identity: "<private>"
2021-01-24 03:05:52.018013+0800 0x75       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC0 (Alarm)
2021-01-24 03:05:52.018014+0800 0x75       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC0 (Alarm)
2021-01-24 05:36:27.172503+0800 0x8a8c0    Default     0x0                  72     0    powerd: [powerd:sleepWake] Wake reason: "<private>"  identity: "<private>"
2021-01-24 05:36:45.421419+0800 0x75       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC0 (Alarm)
2021-01-24 05:36:45.421420+0800 0x75       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC0 (Alarm)
2021-01-24 08:07:41.849282+0800 0x75       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC0 (Alarm)
2021-01-24 08:07:41.849282+0800 0x75       Default     0x0                  0      0    kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC0 (Alarm)

PTSWAK - DGPU 操作相关疑问

  1. DGPU 对象的 ONOFF 方法

DGPU 下的方法是在屏蔽独显 SSDT 中定义的。虽然添加了 CodeRefOf,但是仍然显得冗余。

  1. 关于在 PTSWAK 过程中操作 DGPU 的必要性

PTSWAK 期间操作独显 源于 Rehabman 的 Clover HotPatch,在 Rehabman 的 SSDT-RMCF 中也没有说明其必要性,且此值默认为 0 (禁用)。

私以为,操作 DGPU 应该作为可选的 EXT 插件实现。

IRQ补丁自动重启

打了这个IRQ补丁以后大概几分钟后自动重启,有没有办法在不重名的前提下解决

English Translation

Hi there.
Thank you for your great work ,but would you consider translate the guide in English?
Thank you again.

Pls help

Hey, how do you set the keys to adjust the screen brightness on a laptop keyboard ?? Right now it's fn + f12 and fn + key pause. My bootloader is opencore. In my laptop acer v3-371, the shortcut from adjusting the screen brightness on the keyboard is the shortcut fn + left arrow key and fn + arrow right key.

使用0D/6D补丁睡眠后关机黑屏无法断电

个人觉得是bios和电源管理的锅
1.型号是傻多戴的灵越3543,bios是最新版
2.使用了SSDT-GPRW补丁,电脑才能正常睡眠不被网卡唤醒
3.重置bios后如果不睡眠一样可以关机,但睡眠后不重置bios就不能关机
4.使用opencore引导系统,0.61和0.62都试过,是一样的问题
5.使用了安装mojava和catlina也是这个问题

惠普2代笔记本使用HPAE会导致开机后无故重启

https://github.com/daliansky/OC-little/blob/master/21-%E5%A3%B0%E5%8D%A1IRQ%E8%A1%A5%E4%B8%81/SSDT-HPET_RTC_TIMR-fix.dsl

使用该hotpatch,笔记本原始DSDT如下:
` Device (HPET)
{
Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (BUF0, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y0F)
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((OSYS >= 0x07D1))
{
If (HPAE)
{
Return (0x0F)
}
}
ElseIf (HPAE)
{
Return (0x0B)
}

                    Return (Zero)
                }

                Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                {
                    If (HPAE)
                    {
                        CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y0F._BAS, HPT0)  // _BAS: Base Address
                        If ((HPAS == One))
                        {
                            HPT0 = 0xFED01000
                        }

                        If ((HPAS == 0x02))
                        {
                            HPT0 = 0xFED02000
                        }

                        If ((HPAS == 0x03))
                        {
                            HPT0 = 0xFED03000
                        }
                    }

                    Return (BUF0) /* \_SB_.PCI0.LPCB.HPET.BUF0 */
                }
            }`

所以直接使用HPAE=0禁用HPET,开机后通过IOREG确实看到HPET被禁用,只有HPE0存在,但是开机后1分钟左右电脑便会突然断电,无任何征兆,无五国,无KernelPanic信息,就是无故断电。

除了HPAE=0,还有其余的方法可以禁用并且仿冒HPET么?

About battery hotpatch guide

Can someone help me with battry patch according to new guide : https://xstar-dev.github.io/hackintosh_advanced/Guide_For_Battery_Hotpatch.html#如何排查错误 ?

I cannot find any way to download the ssdt from baidu and guide seems laso to difficult for me.

My problem is that my battery percentage is 5-6% off (compared to coconut battery and windows).

Here is my dsdt if anyone can help (seems I havea BAT0 and a BAT1 , but my laptop has only 1 battery installed).
System DSDT.aml.zip

Thanks in advance.

禁止PCI设备会导致进入WIndows出现ACPI BIOS ERROR

https://github.com/daliansky/OC-little/tree/master/16-%E7%A6%81%E6%AD%A2PCI%E8%AE%BE%E5%A4%87%E5%8F%8A%E8%AE%BE%E7%BD%AEASPM%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F/16-1-%E7%A6%81%E6%AD%A2PCI%E8%AE%BE%E5%A4%87

使用这个SSDT禁用SD卡,RP02,在macOS下面没问题,禁用成功,但是进入Windows的时候会提示ACPI BIOS ERROR,里面有Darwin判断语句不知道为啥还会报错,删掉那个STA语句开机就不报错了,但是进入macOS禁用失效。。。

关于02-04仿冒环境光传感器中已存在ALSD环境光传感器情况

这里给出的SSDT-ALSD默认了ALSD设备在_SB下,但有的电脑的ALSD设备在\下,希望可以更新一下文档,分两种情况。改成这样即可,虽然区别不大
DefinitionBlock ("", "SSDT", 2, "OCLT", "ALSD", 0)
{
External (ALSE, IntObj)

Scope (\)
{
    If (_OSI ("Darwin"))
    {
        Store (0x02, ALSE)
    }
}

}

DefinitionBlock ("", "SSDT", 2, "OCLT", "ALSD", 0)
{
External (ALSE, IntObj)

Scope (_SB)
{
    If (_OSI ("Darwin"))
    {
        Store (0x02, ALSE)
    }
}

}

其实不用drop掉SSDT也可以用hotpatch方法定制USB的

我的机型原始GUPC方法为:

Method (GUPC, 1, Serialized)
        {
            Name (PCKG, Package (0x04)
            {
                Zero, 
                0xFF, 
                Zero, 
                Zero
            })
            PCKG [Zero] = Arg0
            Return (PCKG)
        }

然后任一端口的_UPC Method均调用序列化GUPC方法:

Method (_UPC, 0, NotSerialized) 
        {
            Return (GUPC(One)) 
        }

Method (_UPC, 0, NotSerialized) 
        {
            Return (GUPC(Zero)) 
        }

可以看出问题在于把所有的端口都内建了,GUPC函数又只有一个参数用于定义端口存在(One)或被屏蔽(Zero)

故我的处理如下,hotpatch重命名GUPC为XUPC,然后在自定义SSDT重写该方法:

        Name (USBP, Zero)
        Method (GUPC, 1, Serialized)
        {
            Name (PCKG, Package (0x04)
            {
                0xFF, 
                0x03, 
                Zero, 
                Zero
            })
            USBP += One
            If (((USBP == 0x04) || (Arg0 == Zero)))
            {
                PCKG [Zero] = Zero
            }

            If ((((USBP == 0x04) || (USBP == 0x05)) || (USBP == 0x06)))
            {
                PCKG [One] = 0xFF
            }

            Return (PCKG) 
        }

因为GUPC方法是序列化的,而且每个USB端口(从HS01到HS10,以及USR1,USR2,SS01到SS06,)均会调用一次,所以定义了USBP并且通过自增实现了端口的一一对应。
本人主要实现了:修正端口连接类型(HS04,HS05,HS06分别为内建指纹识别,相机,蓝牙),并且屏蔽HS04端口。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.