- UID
- 512654
- 最后登录
- 1970-1-1
- 阅读权限
- 205
- 精华
- 主题
- 回帖
- 0
- 积分
- 730
- PB币
-
- 威望
-
- 贡献
-
- 技术
-
- 活跃
-
|
本帖最后由 紫米 于 2010-2-7 09:09 编辑
『DSDT 重要系統參數修改』最為重要的參數修改 (12/08)
此項,將收集影響系統開機登入的參數修改,
想使用 DSDT 就必須修改的部份。
<1> RTC、CMOS 重置修改 (12/08)
適用情況:
開機發生錯誤重新起動,會造成 BIOS 設定遺失恢復成預設值。
修改前:

修改後:

『DSDT 重大修復』重要的參數修改 (02/03)
<1> 不使用 PlatformUUID.kext 修復 UUID Error (12/16)
適用情況:
1. 在 DSDT 中的 Device (PCI0) 有定義 Name (_UID, X)
2. 使用最新的 Chameleon 2.0 RC4



<2> 讓 EHCI USB 2.0 識別為內建 (02/03)
適用情況:
如果識別為擴展槽,將會發生睡眠後出現裝置移除的問題。

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"AAPL,clock-id",
Buffer (One)
{
0x01
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"AAPL,clock-id",
Buffer (One)
{
0x02
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

請務必確認你已在 DSDT 前方加上以下物件:
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)
}
否則在編譯時會發生錯誤。
<3> 使用 USB 裝置喚醒睡眠 (02/03)
適用情況:
裝置可以睡眠,但只能透過電源鈕喚醒。
第一部份:

第二部份:

第三部份:







以上也許會跟你原始的 DSDT 有些不同,
請無須在意,只要針對紫米提及要修改的部份做修正就行了。
其它部份可以無視。
請務必確認三個部份的參數名稱要相符才行,
若確定相同,其可重新開機試試是否可以使用鍵盤或滑鼠喚醒。
<4> 使用 Speedstep 達到 CPU 降頻節能 ()
適用情況:
避免 CPU 一直處於高速狀態,可根據情況調整頻率速度。
還尚未瞭解所有參數的意義,若有需要可以先參考這個帖子:
venicehuang 的帖子
『DSDT 加載驅動引導』參數修改 (02/04)
使用 DSDT 加載原生驅動,基本上都會需要以下這個物件:
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)
}
請先確認你已經添加到 DSDT 中。
之後只需要添加強制修改 device-id 的參數即可達到效果。
<1> 引導加載 AppleLPC.kext 增加對裝置的管理 (02/04)
適用情況:
可以在能源節約器增加一個選項。

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x18, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
其中的 device-id 有以下的選擇:
0x02, 0x3B, 0x00, 0x00 是 5 Series/3400 Series
0x01, 0x3B, 0x00, 0x00 是 Mobile 5 Series
0x00, 0x3B, 0x00, 0x00 是 5 Series
0x18, 0x3A, 0x00, 0x00 是 ICH10
0x16, 0x29, 0x00, 0x00 是 ICH9R
0x15, 0x28, 0x00, 0x00 是 ICH8M
0x11, 0x28, 0x00, 0x00 是 ICH8M-E
0xBD, 0x27, 0x00, 0x00 是 ICH7M DH
0xB9, 0x27, 0x00, 0x00 是 ICH7M
0x70, 0x26, 0x00, 0x00 是 ICH6 ESB
<2> 引導加載顯示卡驅動 (02/04)
適用情況:
可以在不使用任何第三方驅動,達到加載系統原生驅動。


Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
Name (_ADR, Zero)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x18)
{
"AAPL,slot-name",
Buffer (0x07)
{
"Slot-1"
},
"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},
"model",
Buffer (0x17)
{
"NVIDIA Geforce 9800 GT"
},
"NVCAP",
Buffer (0x14)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},
"rom-revision",
Buffer (0x06)
{
"3173a"
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x20
},
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},
"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
關於 NVCAP 需要兩個小工具:
(1) NVFlash (Win) 用來取出顯示卡原始資料
(2) NVCAP Maker (Mac) 用來查詢 NVCAP 值
請先到 Win 下使用 NVFlash,
會出現 DOS 介面,輸入指令 nvflash -b nvidia.rom
會在同資料夾理出現 nvidia.rom 這個檔案。
之後,開啓 Mac
使用 NVCAP Maker 1.4 開啓 nvidia.rom
就能得到一串數字,04000000000003000c0000000000000700000000
然後兩兩分開 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0x00, 0x00, 0x00, 0x00 即可。
<3> 引導加載音效卡驅動 (02/04)
適用情況:
可以在不使用 HDAEnable.kext 情況下,達到加載系統原生驅動。

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"layout-id",
Buffer (0x04)
{
0x78, 0x03, 0x00, 0x00
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
附件:
NVCAP Maker 1.4
NVCAP Maker 1.4.zip
(351.39 KB, 下载次数: 1107)
NVFlash 檔案過大,請自行上 Google 搜索 NVFlash for Windows
未完待續... |
|