主機板 ASROCK N68-VS3
晶片組 GeForce7025/nForce630a
修復LPC跟SMBUS
下載 SystemInfo.app 找尋 LPC 跟 SMBUS 的裝置ID
Windows 下的識別方法
打開 IORegistryExplorer 查看裝置標簽
LPC 標簽是 SBRG
SMbus 標簽是 SMB0
編輯DSDT 第一件事 先打 DTGP 補丁
在最後面倒數第二行的位置插入
代碼:
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
一 LPC (ISA bridge/LPC電源管理) 修復
這塊主機板 LPC不用DSDT 因為Mac 已經抓到裝置ID
只需要在 /System/Library/Extensions/AppleLPC.kext 裡面的Info.plist 添加LPC的ID AppleLPC.kext 就會載入
代碼:
<key>IONameMatch</key>
<array>
..... 略.......
<string>pci10de,3e1</string>
</array>
DSDT 裡面 SBRG 的標簽全部替換成 LPCB
二 SBUS (MCP61 SMbus 修正)
在 Device (SMB0) 最後面插入
代碼:
Device (BUS0)
{
Name (_CID, "smbus")
Name (_ADR, Zero)
Device (DVL0)
{
Name (_ADR, 0x57)
Name (_CID, "diagsvault")
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"name",
"pci10de,3eb",
"device-id",
Buffer (0x04)
{
0xEB, 0x03, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
把標簽 SMB0 全部替換成 SBUS
三 喚醒功能相關修補
找尋 _WAK
刪除 Return (WAKP)
插入
代碼:
Return (Package (0x02)
{
Zero,
Zero
})
找尋 Device (PWRB)
Name (_HID, EisaId ("PNP0C0C"))
把HID 改為 CID
四 RTC 防止 BIOS 重置
這個不用改 原始參數就是2了
五 USB 2.0 功能修正
這個也不用改 DSDT
用變色龍精靈打開 /Extra/org.chameleon.Boot.plist
把 USBLegacyOff 項目打勾 儲存就OK了其他項目別勾
或者編輯 org.chameleon.Boot.plist 裡面插入
代碼:
<key>USBLegacyOff</key>
<string>Yes</string>
改好後編譯DSDT 把編譯好的DSDT.aml 放到 /Extra
重新開機 打開IORegistryExplorer查看標籤 SBUS 跟 LPCB
驅動都已經載入
然後打開「系統偏好設定」「能源節約器」
把「電腦當機時將自動重新開機」打勾
以上....完成後 按睡眠看看 估計會自動重開機
但至少不小心按到睡眠 喚醒時不會卡死 頂多自動重啓而已
AMD 修改 DSDT 後的心得.........
似乎是沒什麼感覺 有改跟沒改一樣
