ほぼ、完璧なhacintosh

| コメント(0)
hacintosh 10.7でsleepの後、USBのロストのワーニングが出てしまう。
Error.jpg"
DSDTの書き換えで何とか成る様だ。tonymacx86からGA-P35-DS3RのDSDTをDLして試してみると、USBロストワーニングは出なく成った。加えてsleepからの復帰もPWボタンでなくkeybordから可能に成った。しかし、積んでいるHDが外部ディスクとして認識されてしまいオレンジアイコンで表示される。
そこで、現行DSDTのUSB部分をtonymacx86のDSDTを参考に書き換え。

keybordからのwakeも可能で、10.6の頃よりより完璧に近く成った。

DSDT patcherの書き換え部分。

Device (USB0)
            {
                Name (_ADR, 0x001D0000)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
            }
            Device (USB1)
            {
                Name (_ADR, 0x001D0001)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
            }
            Device (USB2)
            {
                Name (_ADR, 0x001D0002)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
            }
            Device (USB3)
            {
                Name (_ADR, 0x001D0003)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x03
                })
            }
            Device (US31)
            {
                Name (_ADR, 0x001A0000)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x03
                })
            }
            Device (USB4)
            {
                Name (_ADR, 0x001A0001)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
            }
            Device (USB5)
            {
                Name (_ADR, 0x001A0002)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x20, 
                    0x03
                })
            }
            Device (USBE)
            {
                Name (_ADR, 0x001D0007)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }
            Device (USE2)
            {
                Name (_ADR, 0x001A0007)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }


Device (UHC1)
            {
                Name (_ADR, 0x001D0000)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x34, 0x3A, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (UHC2)
            {
                Name (_ADR, 0x001D0001)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x35, 0x3A, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (UHC3)
            {
                Name (_ADR, 0x001D0002)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x36, 0x3A, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (UHC4)
            {
                Name (_ADR, 0x001A0000)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x37, 0x3A, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (UHC5)
            {
                Name (_ADR, 0x001A0001)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x38, 0x3A, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (UHC6)
            {
                Name (_ADR, 0x001A0002)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x20, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x02)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x39, 0x3A, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (EHC1)
            {
                Name (_ADR, 0x001D0007)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x04)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x3A, 0x29, 0x00, 0x00
                            }, 
                            "AAPL,clock-id", 
                            Buffer (One)
                            {
                                0x01
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
            Device (EHC2)
            {
                Name (_ADR, 0x001A0007)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }
                    Return (0x03)
                }
                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x04)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                0x3C, 0x29, 0x00, 0x00
                            }, 
                            "AAPL,clock-id", 
                            Buffer (One)
                            {
                                0x02
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

に。
これに合わせて、_WAKメソッドなど呼び出しmethodのnameを変更。

Method (_WAK, 1, NotSerialized)
    {
        Store (0xFF, DBG1)
        If (LEqual (Arg0, 0x03))
        {
            Store (0x8F, SCP)
        }
        If (LEqual (Arg0, 0x04))
        {
            If (LEqual (OSFL, Zero))
            {
                If (LEqual (OSFX, 0x03))
                {
                    Store (0x59, SMIP)
                }
                Else
                {
                    Store (0x58, SMIP)
                }
            }
            If (LEqual (OSFL, One))
            {
                Store (0x56, SMIP)
            }
            If (LEqual (OSFL, 0x02))
            {
                Store (0x57, SMIP)
            }
            If (LEqual (OSFX, 0x03))
            {
                Store (0x59, SMIP)
            }
        }
        If (LEqual (Arg0, One)) {}
        If (OSFL)
        {
            Notify (\_SB.PWRB, 0x02)
        }
        Else
        {
            If (LEqual (RTCW, Zero))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }
        Notify (\_SB.PCI0.USB0, Zero)
        Notify (\_SB.PCI0.USB1, Zero)
        Notify (\_SB.PCI0.USB2, Zero)
        Notify (\_SB.PCI0.USB3, Zero)
        Notify (\_SB.PCI0.USB4, Zero)
        Notify (\_SB.PCI0.USB5, Zero)
        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }


Method (_WAK, 1, NotSerialized)
    {
        Notify (\_SB.PWRB, 0x02)
        Notify (\_SB.PCI0.UHC1, Zero)
        Notify (\_SB.PCI0.UHC2, Zero)
        Notify (\_SB.PCI0.UHC3, Zero)
        Notify (\_SB.PCI0.UHC4, Zero)
        Notify (\_SB.PCI0.UHC5, Zero)
        Notify (\_SB.PCI0.UHC6, Zero)
        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }

に、

Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB0, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB1, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L0E, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB3, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Notify (\_SB.PCI0.US31, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB4, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L20, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB5, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USBE, 0x02)
            Notify (\_SB.PCI0.USE2, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Notify (\_SB.PCI0.HDEF, 0x02)
        }


Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC1, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC2, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC3, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L0E, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC4, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC5, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L20, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.UHC6, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }
        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.EHC1, 0x02)
            Notify (\_SB.PCI0.EHC2, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Notify (\_SB.PCI0.HDEF, 0x02)
        }

に。再コンパイルでerrorなし。/Lion/Extra/DS3P.aml(名前は何でも良いと思います)として保存し、chameleonの設定画面でDSDT.amlファイルを指定しreboot。
chameleon.jpg"
完璧です。

コメントする

ポッチっとしてくださいませ!
にほんブログ村 PC家電ブログ Macへ

読んでるよ

アーカイブ

Powered by Movable Type 6.0

カレンダー

<   2011年8月   >
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

お天気

ジオターゲティング


ジオターゲティング