电竞比分网-中国电竞赛事及体育赛事平台

分享

關(guān)于DSDT修改

 書*金 2016-04-10
   在此之前先說說DSDT的作用吧= =很多人老是問為什么在系統(tǒng)信息里面顯示了,但是就是沒法驅(qū)動。。。我再次聲明:DSDT沒有驅(qū)動功能,說白了它只是用來告訴Mac,電腦里面有某些硬件,所以在系統(tǒng)信息里面就能顯示了~但是有沒有驅(qū)動這要看Mac的有沒有驅(qū)動可以支持你的硬件了。。。還有我們使用的DSDT文件是DSDT.aml(dsdt.aml)不是DSDT.dsl(dsdt.dsl)

=========================================================
DSDT如何使用
變色龍引導(dǎo)或者HJmac引導(dǎo)的話直接放到Mac盤的Extra文件夾的根目錄,重啟就行了~
PS:不要在問我說放在Extra/Extensions行不行或者放到其它地方行不行
====================================================
如何提取DSDT?
提取DSDT主要分為2種~第一種:Win下提取。第二種:Mac下提取。
這2種有什么提取出來的DSDT有什么區(qū)別么~~說實(shí)話:其實(shí)沒多大區(qū)別~只要你的Mac沒有用DSDT啟動的話,提取出來的和Win是一樣的(我是沒發(fā)現(xiàn)什么不同,若是真有什么不同,請指正~)如果你的Mac已經(jīng)加載了修改過的DSDT再來提取DSDT那么生成的DSDT就會和Win下提取的不同了。。。

=========================================================

Win下提取DSDT:
1.使用AIDA64 Extrem Edition(原名:EVEREST Ultimate Edition)
2.使用DSDT Editor(需安裝JAVA)
3.其它(不做討論)

使用AIDA64提?。?/font>
1.在狀態(tài)欄空白處右鍵,如圖
1z.jpg.thumb.jpg

2.選擇ACPI Tool,如圖
1.jpg


3.這時會出現(xiàn)一大堆的信息,我們無視他直接按Save DSDT保存

至此我們就把DSDT提取出來了~不過提取出來的DSDT是bin后綴的,自行把后綴改為aml(此時請不要直接拿去用,一般提取出來的DSDT都是有錯誤的),便可在DSDT Editor軟件打開修改了。

使用DSDT Editor提?。?/font>
如圖提取便可:
2.jpg


提取后保存為dsl文件后便完成提取,此時的dsdt.dsl就是最原始的dsdt了(前提是你的Mac沒有DSDT加載)=========================================================
Mac下提取DSDT:1.使用DSDTSE2.使用DSDT Editor(需安裝JAVA)3.DSDTFixer4.其它(不做討論)

使用DSDTSE提?。?/font>如圖提取:
3.jpg
4.jpg

提取后保存為dsl文件后便完成提取,此時的dsdt.dsl就是最原始的dsdt了(前提是你的Mac沒有DSDT加載)

使用DSDT Editor提取:如圖提?。?/div>
5.jpg

6.jpg

7.jpg
提取后保存為dsl文件后便完成提取,此時的dsdt.dsl就是最原始的dsdt了(前提是你的Mac沒有DSDT加載)=========================================================
                DSDT修改軟件的使用
在Win下我只是用DSDT Editor用法和Mac下的基本一樣,所以這里我就只說明Mac下2個DSDT修改軟件的使用及技巧。先對比下這2個軟件:


  • DSDTSE不需要安裝JAVA(Lion默認(rèn)沒安裝),打開比較快~但是這軟件的流暢性明顯不如DSDT Editor(在我的電腦上是這樣的= =可能電腦太破)。而DSDT Editor就是打開文件的時候要等一會才可以開始修改(尤其是打開帶ATI顯卡代碼的dsdt,那等的時間叫人糾結(jié)?。?/li>
  • DSDTSE和DSDT Editor都可以把dsl文件編譯成aml~但是DSDTSE編譯后如果有錯誤只會提醒你什么錯誤,錯誤在哪一行,但是沒法定位到錯誤的地方需要你自己手動定位~而DSDT Editor就可以直接定位到錯誤的地方方便修改,其實(shí)無論是那個軟件,它告訴你的錯誤在哪一行不代表哪一行就有錯誤~~有時只是某些地方缺了個}就可以出現(xiàn)一堆錯誤。所以這軟件報告的錯誤不能全信,要根據(jù)實(shí)際情況進(jìn)行修改~~
  • DSDT Editor不支持有中文名的aml文件(包括路徑有中文名的都不行)~所以你要修改DSDT的時候最好不要有中文名,而DSDTSE這支持中文名的DSDT文件
  • DSDT Editor自帶很多patch,可以快速patch進(jìn)去,DSDTSE也自帶很多,但是要手動修改進(jìn)去~
  • 這2個軟件有時編譯的情況不同,DSDTSE顯示沒錯誤,但是DSDT Editor則顯示有錯誤~~不過一般DSDT Editor修復(fù)下錯誤就可以了(有時候這軟件有點(diǎn)問題,可能太自動了,反而有時候出錯~明明代碼完全沒問題可就是編譯不過去,但是換DSDTSE就可以編譯過去了)
  • DSDTSE還自帶IORegistryExplorer軟件,方便對自己的DSDT修改的時候進(jìn)行參考。
總的來說,2個軟件各有優(yōu)缺點(diǎn)~我2個都用= =你們的話就隨便吧= =喜歡就行
=========================================================
DSDT Editor使用
打開文件后

按F5進(jìn)行編譯,由圖可知此dsdt有一個錯誤,點(diǎn)一下這個錯誤,他會自動定位到12733行錯誤的位置:

8.jpg
但是有的錯誤這軟件可以自動修復(fù),此時只要直接點(diǎn)一下Fix errors錯誤就修復(fù)了~如圖:

9.jpg
當(dāng)然有些錯誤自己修復(fù),這軟件修復(fù)不了,此時就要去google或者百度了~~有的人說能不能把警告的那些也修復(fù)了,其實(shí)那些一點(diǎn)也不影響dsdt的使用~完全沒有必要~如果你是完美主義者,抱歉,我也沒辦法~~當(dāng)然我可以提供一個辦法給你,那就是使用DSDTFixer,這個軟件可以提取DSDT也修復(fù)錯誤和警告什么的,還可以打補(bǔ)丁= =個人認(rèn)為,如果自己有能力,最好自己修改DSDT。。。如果連這軟件都不能修復(fù)你的警告什么的= =那你就只能另謀高就了~~不要跟我說什么會不會因?yàn)榫孢@些影響了睡眠啊,喚醒啊,usb沒反應(yīng)啊~~這樣我會奔潰的~~完美主義者干脆買白蘋果算了(話說即使是白蘋果也不是完美的= =)

修復(fù)錯誤后,接下來是打上patch,該軟件自帶很多patch,如圖:
11.jpg

12.jpg
當(dāng)然你也可以根據(jù)它的patch自己進(jìn)行修改~畢竟有時候自動沒手動安全~在打patch的時候要注意對比before和after里面的2部分代碼~

13.jpg
確認(rèn)無誤后才按Apply,打完patch后編譯看看又沒有錯誤~~多注意保存~
當(dāng)所有工作都修改好后,編譯一次,沒錯誤后如圖保存dsdt.aml文件~~

14.jpg

名字要打dsdt.aml~~如果直接打dsdt的話保存后是沒有后綴的
15.jpg


              ========================================================
                                                                       DSDTSE使用教程


1.jpg
主界面
A:這里有相關(guān)錯誤的修改方法
2.jpg
B:這里有點(diǎn)類似于DSDT Edtiot的Patch,不過這給的只是方法,不能自動Pacth
3.jpg
C:這實(shí)際上就是IORegistryExplorer軟件,可以查看系統(tǒng)的相關(guān)信息,便于修改
4.jpg
D:自定義代碼部分(我從沒用過= =)
E:提取檔案
5.jpg
要先選擇檔案的類型,不然會提示錯誤
6.jpg
F:這個就是提取DSDT
7.jpg
G:打開編輯器面板,這個要說明下,這個的具體用途因人而已= =可以在這里面編譯也可以在這里面對比2個DSDT~(我基本沒用過)
8.jpg

右面板
9.jpg
A:編譯DSDTB:安裝DSDT(可以選擇安裝到EFI分區(qū)= =建議新手勿用= =后果自負(fù)~我也是新手,我從沒用過)C:可以定位到DSDT的某一個位置,應(yīng)該說是快捷搜索~~建議自己試試看,說不清楚= =(語文不過關(guān))
10.jpg

D:在后面的框框里面輸入你想搜索的內(nèi)容即可E:搜索下一個F:D搜索框里面的內(nèi)容全部替換為F替換框的內(nèi)容= =(表達(dá)能力欠缺啊)G:轉(zhuǎn)到DSDT某一行H:10進(jìn)制轉(zhuǎn)換為16進(jìn)制I:自定義代碼(有點(diǎn)和主面板的D一樣)其實(shí)這個的用法是你要自己新建一個空白的,然后打上你的代碼,在Name里面命名后點(diǎn)Add~~

11.jpg

12.jpg
這樣在Load里面就會多出來你自己寫的代碼~~(這代碼也只是給你以后自己參考用的=)
13.jpg

Cust .code folder就是顯示自定義代碼的文件夾
14.jpg

J:設(shè)置背景顏色
K:J設(shè)置完后要按K,下次重新打開DSDTSE顏色才會保持一直生效
L:還原默認(rèn)背景顏色,還原后同樣要按K
------------------------------------------------------------------------------------------------------------------------------
DSDTFixer使用教程
主面板:

15.jpg

可以選擇A:獲取本機(jī)DSDT
或者修復(fù)DSDT

16.jpg
點(diǎn)擊出現(xiàn)如下

17.jpg
B:顯示修復(fù)后的DSDT文件(此時得到只是修復(fù)了錯誤和警告什么的)

18.jpg
C:打開修復(fù)選項(xiàng)勾上自己需要的后Hack it!

19.jpg

然后在點(diǎn)Compile就會在編譯一次如圖
20.jpg


這時就要選B來得到編譯以及修復(fù)后的DSDT文件了(此時得到的是打了patch的DSDT)


21.jpg


D:關(guān)閉


結(jié)束??!{:22:}
帖子提到的軟件:
http://dl./c0nqdsh2w7(包含dsdtse漢化版)
最好使用瀏覽器自帶的來下載~
把DSDT Editor直接貼到論壇= =注意~需要事先安裝Java才能運(yùn)行~(裝了Java后還打不開的,自行百度~)
看看威廉第三如何介紹“DSDT到底是什么東西”
很多人都知道使用DSDT補(bǔ)丁可以開雙核,但DSDT的功能不僅僅如此,除了開雙核,還可以可以修復(fù)ACPI缺陷(不需要Disabler.kext,原版cpupowermanagement正常使用),RTC,HPET缺陷(原版kext正常工作),顯卡(代替efistring),聲卡(只是代替了HDAEnabler.kext),網(wǎng)卡(包括TimeMachine問題),此外還可以解決其他很多奇奇怪怪的問題,因此建議盡可能使用DSDT補(bǔ)丁。

      但是DSDT到底是什么東西,怎么這么神奇呢?這個要從ACPI說起了,ACPI是Intel(i386,x86_64,IA64)平臺的標(biāo)準(zhǔn)固件規(guī)范,絕大部分OS需要從BIOS得到的信息都可以從ACPI得到,并且現(xiàn)在的趨勢是未來的任何新的特性相關(guān)的信息都只能從ACPI得到。

      ACPI的信息包括:
      配置信息,這些信息從legacyPNP設(shè)備的配置,到多處理器,到NUMA,比如現(xiàn)在的MultipleCore的信息就只能從ACPI得到。Linux啟動很多代碼就是處理這些配置信息,比如APIC,IOAPIC設(shè)置等。
      ACPI相關(guān)設(shè)備,主要是筆記本電腦相關(guān)的設(shè)備,包括電源按鈕,電池,外接電源,風(fēng)扇,熱鍵等。
      底層硬件,比如PCI中斷路由,chipset(主要是南橋PCI-to-LPCbridge)操作等。
      電源管理,ACPI定義的電源管理包括CPU的電源管理(調(diào)頻率P-state,idleC-state,throtting T-state),設(shè)備電源管理(D-state),系統(tǒng)電源管理(Suspend-to-Ram,Suspend-to-Disk, power off)等。
      設(shè)備熱插拔,ACPI用一種統(tǒng)一的方式來描述設(shè)備的熱插拔,這樣的設(shè)備從單一的PCI設(shè)備,到筆記本電腦的DockingStation,到整個PCI hierarchy,CPU,Memory,甚至整個NUMA節(jié)點(diǎn)。

      可以說要理解現(xiàn)代PC平臺必須了解ACPI。ACPI主要是由很多表(Table)組成,而DSDT(Differentiated System Description Table)是其中一個最主要的ACPI表之一,它的定義如下

      DSDT is an acronym for DifferentiatedSystem Description Table. Thistable contains the Differentiated Definition Block, which supplies theinformation and configuration information about the base system.

      簡單說就是包含了所有和基本系統(tǒng)(basesystem)不同的設(shè)備的信息,basesystem每臺機(jī)器都是一樣的,這個是在acpispec里指定的,但是每臺機(jī)器都是不相同的,所以不相同的設(shè)備大都是由DSDT表來描述。它包含了很多AML代碼。大多數(shù)BIOS是針對windows開發(fā)的,而windows自己也不完全遵循acpi規(guī)范,所以因?yàn)锽IOS的bug,這些代碼本身可能有錯,導(dǎo)致其他的系統(tǒng),如linux,mac os出錯。

      我們可以手動修復(fù)這些bug使之兼容Mac系統(tǒng)。DSDT在bios里是以編譯后的aml文件存在,需要把它解出來,反編譯成aml代碼形式(dsl文件,文本文件),代碼修改完畢再重新編譯,替換掉bios里原來的dsdt表。不過PC-EFI,Chameleon的出現(xiàn),使得我們不再需要冒險刷bios,只要把制作好的DSDT.aml文件放在根目錄或者/Extra文件夾里,啟動的時候就會自動使用這個DSDT.aml,從而達(dá)到修復(fù)ACPI系統(tǒng)bug的作用。

威廉第三介紹了DSDT好處,但很多人還是選擇不使用DSDT,因?yàn)樗闹靼迥芎芎眉嫒輒ac。我也來說說這個問題:我個人不同意這觀點(diǎn),不用DSDT都能很好兼容mac,那使用DSDT總不會讓兼容性更低吧??!用DSDT只有好處又沒壞處,為什么不使用?再說了,得到DSDT又不是很難或者要付出很大的代價,還有,如果要添加HDMI音頻輸出,沒DSDT不行吧。。


接下來講一些DSDT能修復(fù)哪些不兼容問題和DSDT一些基本知識。


我們最終使用的DSDT文件是dsdt.aml【名稱不區(qū)分大小寫,但千萬不可使用不同主板的DSDT】,如果你使用變色龍【推薦】引導(dǎo),放在mac分區(qū)的Extra文件夾
完整路徑: /Extra/dsdt.aml
如果你使用Boot Think引導(dǎo),放在C盤的Darwin文件夾
完整路徑:C:\Darwin\dsdt.aml
跟DSDT很像的SSDT【非必要文件。SSDT用于控制自動降頻,提升性能、解決CPU溫度過高問題,視頻教程中有演示】文件也是放在Extra文件夾,提取的文件依次命名為SSDT.aml、SSDT-1.aml 。。。編譯通過的話在org.chameleon.Boot.plist添加
        <key>DropSSDT</key>
        <string>Yes</string>
復(fù)制代碼
想深入學(xué)習(xí)SSDT去看p.H版主的帖子
自定義SSDT - 10.7.4電源管理優(yōu)化 - 圖文版




接下來說DSDT的作用


一,修復(fù)BIOS重置問題【RTC】

不用DSDT的話一般通過ElliottForceLegacyRTC.kext或LegacyAppleRTC.kext(2選1,不可共用)來修復(fù)該問題,用DSDT修復(fù)該問題后記得要把這兩個kext刪除。


二,LPC 原生電源管理、睡眠


最近比較新的主板很少能通過修改dsdt來加載電源管理,如果添加以下代碼后還不能加載電源管理,別問為什么,這很正常。那就乖乖對kext打補(bǔ)丁吧
復(fù)制代碼


有些主板原生支持電源管理,則無需在DSDT添加相關(guān)代碼【我的HM55可以】。如果需要使用NullCPUPowerManagement.kext或者刪除AppleIntelCPUPowerManagement.kext【不推薦】才能進(jìn)系統(tǒng),那你就要在DSDT添加電源管理代碼。還有三個情況要說明一下:1,如果添加代碼后還不支持電源管理,貌似要對kext打補(bǔ)?。?,很多華碩主板無法在DSDT找到相關(guān)字段添加代碼,不知道華碩不支持電源管理還是怎樣?我沒接觸過華碩主板,遇到這些問題自行搜索;3,現(xiàn)在論壇里有Speedstep補(bǔ)丁,貌似也可以通過那個補(bǔ)丁加載電源管理。總之,先判斷主板是否原生支持電源管理,如果不行再住DSDT代碼里添加代碼,如果還不行,再使用補(bǔ)丁?!咎砑与娫垂芾砗笠惨袾ullCPUPowerManagement.kext刪除(否則還是無法加載電源管理),有刪除AppleIntel。。的話,重新安裝回去】
三,內(nèi)建網(wǎng)卡
如果沒有內(nèi)建網(wǎng)卡,無法登陸App Store、FaceTime等

10.7會提示

內(nèi)建網(wǎng)卡.png

10.8會提示

Snip20121117_5.png

可通過在org.chameleon.Boot.plist添加
        <key>EthernetBuiltIn</key>
        <string>Yes</string>
復(fù)制代碼
解決該問題。如果使用DSDT內(nèi)建網(wǎng)卡后,也要記得把該行代碼刪除。
但并不是所有主板都要手動添加內(nèi)建網(wǎng)卡代碼,我的原始DSDT已經(jīng)有內(nèi)建代碼信息,不過內(nèi)建名稱不是GIGE,而是
                 Device (PXSX)
                {
                    Name (_ADR, Zero)
                    Name (_PRW, Package (0x02)
                    {
                        0x09,
                        0x04
                    })
                }
復(fù)制代碼
上面這段代碼只是拿出來看一下?。?!不是規(guī)范的內(nèi)建代碼,規(guī)范的內(nèi)建代碼請看附件里的word文檔。內(nèi)建網(wǎng)卡后



1. 刪除/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist(顯示隱藏文件,或者用前往方式)
2. 在系統(tǒng)設(shè)置偏好里/網(wǎng)絡(luò) 里刪除所有網(wǎng)絡(luò)連接
3. 重新啟動
4. 重新在系統(tǒng)設(shè)置偏好里/網(wǎng)絡(luò) 里加所有網(wǎng)絡(luò)連接

PS:USB網(wǎng)卡不能內(nèi)建,如果不能驅(qū)動本地網(wǎng)卡(包括筆記本和臺式機(jī)PCI無線網(wǎng)卡)并內(nèi)建,意味著你永遠(yuǎn)無法登陸appstore。筆記本的話可以考慮換無線網(wǎng)卡,臺式機(jī)考慮上一個PCI以太網(wǎng)卡或者無線網(wǎng)卡。只有這樣才能解決appstore不能登陸的問題。


四,加載仿冒聲卡驅(qū)動

這個跟仿冒聲卡有關(guān),請自行查看集合帖有關(guān)仿冒聲卡的帖子。如果你沒使用仿冒聲卡,無需在DSDT添加仿冒聲卡代碼。貼一個通用簡潔的仿冒聲卡代碼【需稍作修改,該代碼附件里也有】,切記添加該段代碼不可與萬能聲卡共用?。》駝t會五國。

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"layout-id",
Buffer (0x04)
{
0x0D, 0x01, 0x00, 0x00 //此處值看附件具體介紹
},
"device-name",
Buffer (0x0F)
{
"Realtek ALC269"http://此處名稱自定義
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
五,添加顯卡信息,輔助驅(qū)動顯卡

顯卡信息代碼不通用,這邊不作具體介紹【很復(fù)雜,分A卡、N卡,就算同一個牌子的卡也有很多種代碼】。不過希望各位推薦幾篇通過DSDT來完美顯卡的帖子【特別是N卡】,給新手來個傳送門。

我先推薦我自己的一篇救助帖【只適于假免驅(qū)的A卡】
ati 5XXX和6XXX免驅(qū) 但顯卡名稱不對,DVD意外退出的DSDT解決辦法


六,USB內(nèi)建、解決硬盤橙色、關(guān)機(jī)斷電等問題

因?yàn)閁SB內(nèi)建、關(guān)機(jī)斷電代碼不通用,不一定能解決問題,這邊也不作具體介紹,要解決這些問題到集合帖看相關(guān)帖子或者搜索,【本文只提通用的DSDT代碼】關(guān)于解決硬件橙色問題,也自行搜索代碼。


看完這些你就可以開始動手提取DSDT、修改DSDT了。不過在修改DSDT之前
建議先到http://www./11-dsdt-database.html看是否有你主板的DSDT【一定要對應(yīng)你的主板型號和BIOS版本,技嘉主板幾乎都有】,如果有直接下載該DSDT來稍作修改。


雖說是視頻教程,但也寫了這么多文字。。。
關(guān)于視頻,打算多演示幾個修復(fù)DSDT錯誤,但一不小心錄長了。另外個人能力有限,視頻演示之內(nèi)容可能有錯,還請高手指出,如果視頻和本帖內(nèi)容有矛盾地方,以此貼內(nèi)容為準(zhǔn)。


推薦使用aida64extreme提取原始DSDT文件

aida64extreme、Java for Mac、DSDT工具【已經(jīng)包含DSDT基本修改文檔下載地址: 百度網(wǎng)盤
MultiBeast 下載:傳送門


【請使用本帖0.7版本的dsdt editor,在0.7編譯沒錯的dsdt在0.8編譯可能有錯。還有,DSDT文件所在路徑不能有中文】

復(fù)制代碼
視頻教程:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多