6

戴尔/Dell M4700/M6700 使用Clover提取DSDT及Patch修补笔记

 2 years ago
source link: https://www.itpwd.com/419.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
戴尔/Dell M4700/M6700 使用Clover提取DSDT及Patch修补笔记_黑苹果笔记_IT密码

有条件的用户最好还是制作自己的专用文件

纯粹记录,按以下步骤进行

开机到Clover引导界面,按F4保存原始DSDT文件

拷贝EFI-Clover-ACPI-Origin目录出来

进入macOS,参考教程使用iasl执行以下命令对Origin内的DSDT.aml文件进行转换,得到DSDT.dsl文件

./iasl -da -dl DSDT.aml

使用MaciASL(赠送上述使用的iasl程序)打开DSDT.dsl文件,点击编译会发现很多error

主要修改以下地方,代码位置可参考MaciASL提示错误位置或者搜索查找

修复一:主要是PM6H和PM0H的代码混在一起了,这是常见的问题

                If (LEqual (PM6H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, ECRW)  // _RW_: Read-Write Status
                    Store (Zero, ECRW (If (PM0H)
                            {
                                CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN)  // _LEN: Length
                                Store (Zero, F0LN)
                            }))
                }
                If (LEqual (PM6H, One))
                {
                    CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, ECRW)  // _RW_: Read-Write Status
                    Store (Zero, ECRW)
                }
                
                If (PM0H)
                {
                    CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN)  // _LEN: Length
                    Store (Zero, F0LN)
                }

修复二:留意最后一行

    Scope (_SB)
    {
        Device (AMW0)
        {
            Mutex (WMIX, 0x01)
            Name (_HID, "*pnp0c14")  // _HID: Hardware ID
    Scope (_SB)
    {
        Device (AMW0)
        {
            Mutex (WMIX, 0x01)
            Name (_HID, "PNP0C14")  // _HID: Hardware ID

修复三:留意第一行,启用USB3的支持

                If (_OSI ("Windows 2006"))
                {
                    Store (0x07D6, OSYS)
                }
                If (LOr (_OSI ("Darwin"), _OSI ("Windows 2006")))     // Injects Darwin to enable USB3/XHC support
                {
                    Store (0x07D6, OSYS)
                }

再试下编译,发现已经没有error了,还有很多警告的内容可以忽略不用管

最后再另存文件格式为“ACPI Machine Language Binary”可以保存修复好的DSDT.aml文件使用


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK