dsdt ssdt hackintosh 黑蘋果


轉(zhuǎn)載請注明出處
原貼地址:http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html
本貼地址:http://bbs.pcbeta.com/viewthread-1571455-1-1.html


\color{blue}{概述}

為了能讓OS X的特性能夠在普通PC上正常工作,就需要修改(可以利用補?。〥SDT和SSDT。本教程的目的,就是介紹如何利用現(xiàn)有補丁,修改你電腦的原始OEM DSDT/SSDT。

雖然你可以用其它型號的電腦的DSDT,但這樣的后果是會造成更多問題。你不能保證用別的型號電腦的DSDT是沒問題的。如果你用了別的電腦的ACPI文件,即便是硬件配置非常相似,也可能會造成 系統(tǒng)不穩(wěn)定 和 一些奇葩的問題。

使用補丁修改DSDT/SSDT包含了以下步驟:

  • 提取原始ACPI文件
  • 反編譯原始文件
  • 分析并篩選這些原始文件
  • 使用補丁修改
  • 編譯并保存,再放到引導特定的目錄

\color{blue}{提取原始ACPI文件}

所有BIOS都實現(xiàn)了把ACPI文件提交給操作系統(tǒng)的功能。所以,基于任何操作系統(tǒng),你都可以通過操作系統(tǒng)提取出原始ACPI文件,之后再進行修改。Linux、OS X、Windows、Clover都可以用來提取原始ACPI文件。這些方式提取的文件是完全相同的,只是由于使用的提取工具不同,文件名會不同。

本教程將主要介紹3種提取方式:在OS X使用patchmatic工具(Rehabman編寫的終端程序),在Clover啟動界面按F4,還有使用Linux。


\color{blue}{使用patchmatic工具提取}

如果你已經(jīng)有了OS X環(huán)境,并且還沒有使用修改過的DSDT/SSDT,就可以使用patchmatic工具提取原始DSDT/SSDT。到這里下載編譯好的patchmatic工具:https://github.com/RehabMan/OS-X-MaciASL-patchmatic (仔細閱讀patchmatic工具的README)。為了方便使用,你可以把程序拷貝到 /usr/bin 文件夾。(放到這里,在任何地方都可以調(diào)用)

放好patchmatic之后,就可以在終端調(diào)用它了:

cd ~/Desktop
mkdir extract
cd extract
patchmatic -extract

patchmatic工具將會提取這次啟動被加載的ACPI文件 到當前目錄。如果你用了Clover的Fix功能(Clover會向DSDT/SSDT注入代碼),那么得到的就不是原始文件了,所以,要確認你沒有使用Clover的Fix功能。另外的情況是,如果你設置了(變色龍) DropSSDT=Yes,,或者 (Clover) DropOem=true,那么,引導程序就會自動屏蔽原始的SSDT,這時用patchmatic提取,就不會得到SSDT文件。還有就是,變色龍的GeneratePStates/GenerateCStates=Yes,參數(shù),或Clover的 /ACPI/SSDT/Generate/CStates、/ACPI/SSDT/Generate/PStates參數(shù),會生成并注入新的SSDT(非原始SSDT),這時,提取的SSDT在反編譯的時候會出現(xiàn)問題。

以上就是提取原始文件的注意事項。一般,在Linux提取或在Clover啟動界面按F4提取更容易一些。

注意:使用 'patchmatic -extract’ 命令可以作為 確認你修改的DSDT/SSDT是否被成功加載了的非常有用的診斷工具。


\color{blue}{在Clover啟動界面按F4提取}

在Clover啟動界面,你可以按 “F4”鍵,Clover會把原始ACPI文件提取到 EFI/Clover/ACPI/origin 目錄。再進入系統(tǒng),就可以在那個目錄看到提取到的原始文件了。之后,就可以開始反編譯、修改了。注意,有的BIOS可能按F4鍵沒用,而需要Fn+F4,所以,如果不確定的話,F(xiàn)4 和 Fn+F4 都按一次。提取的時候,你不會看到任何是否完成的提示,只是會因為正在寫文件而出現(xiàn)一點延遲現(xiàn)象。如果是用Clover的USB設備(U盤、硬盤)啟動的,文件會被提取到USB設備,這樣會感到比較明顯的延遲。

有時候,Clover提取的SSDT可能會重復。重復的文件,會影響到反編譯。如果你反編譯的時候看到了這樣的提示信息(duplicate definitions),就需要仔細檢查重復的是哪個了(例如,看大小)。由于存在這樣的問題,所以在Linux提取比較好。因為我還沒有見過在Linux提取的出現(xiàn)重復的情況。


\color{blue}{在Linux提?。ㄍ扑],還可以順便提取聲卡codec)}

在Linux系統(tǒng)里,可以直接在系統(tǒng)分區(qū)里找到原始ACPI文件。你可以在 /sys/firmware/acpi/tables 和 /sys/firmware/acpi/tables/dynamic 看到??梢院唵蔚赜妹钸M行拷貝。

Linux系統(tǒng)不需要安裝,做一個啟動U盤就可以了:http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows
(3樓有樓主翻譯的制作步驟)

打開Linux的終端輸入:
sudo cp -R /sys/firmware/acpi/tables DEST
注意: 用FAT32格式的USB設備(U盤、硬盤)的掛載點的路徑,替換命令里的 DEST

(提取DSDT/SSDT的圖文說明,請看下一樓)

你的U盤或硬盤需要是FAT32格式的。FAT32格式可以避免出現(xiàn)文件權(quán)限問題,因為FAT32格式在Linux系統(tǒng)里沒有文件權(quán)限的問題。用于替換DEST的 自動掛載的USB設備的名字,取決于你的Linux版本和它的啟動方式。你可以在終端輸入 mount 命令,來查看當前的掛載點?;蛘?,在圖形界面,把鼠標移到文件管理器上相應的USB設備名上。


\color{blue}{反編譯ACPI文件}

雖然提取到的aml文件可以用MaciASL直接打開,但不建議這樣做。用MaciASL直接打開aml文件,是軟件在做對打開的這個文件的單獨反編譯。然而,ACPI文件之間有著緊密的聯(lián)系,只對一個文件單獨反編譯,得到的文件會包含許多難于修復的錯誤。

所以,最好的方法是,使用iasl編譯器,同時反編譯所有文件。要做的準備工作有,新建一個文件夾用于存放所有DSDT和SSDT文件,并重命名所有文件,例如加上 .aml 擴展名。下載最新的iasl編譯器來進行反編譯。這里是Rehabman的修改版編譯器:https://bitbucket.org/RehabMan/acpica/downloads。把iasl編譯器拷貝到/usr/bin目錄,會讓調(diào)用iasl更方便。


\color{blue}{終端的反編譯命令:}

cd “你存放DSDT和SSDT的文件夾名”

iasl -da -dl *.aml

(樓主補充:
1、反編譯介紹:http://bbs.pcbeta.com/viewthread-1475332-1-1.html
2、視頻教程:http://bbs.pcbeta.com/viewthread-1569867-1-1.html

注意:不要用-da 命令去反編譯 DSDT和SSDT以外的 ACPI文件,那將是無效的。

反編譯成功后,你將得到 所有文件的dsl形式,修改就是使用dsl文件進行。修改好dsl文件后,使用MaciASL的 另存為,并選擇 文件格式 "ACPI Machine Language Binary” ,再在文件名那里加上 .aml擴展名,保存。編譯保存為aml之后,把它們放到引導程序規(guī)定的加載目錄(變色龍 /Extra,Clover /EFI/Clover/ACPI/patched)。保存好dsl文件,以后修改還要用dsl文件。


\color{blue}{篩選ACPI文件}

生成的SSDT和原始的SSDT會產(chǎn)生沖突。大部分關(guān)于電源管理的貼子,會讓刪除所有原始的SSDT。但刪除所有SSDT并不好,特別是對于一些新的電腦來說,很多代碼都從DSDT移到了SSDT里,最好不要一棒子把所有SSDT都打掉。只需要 把和CPU相關(guān)的SSDT刪除就可以了,因為這樣的SSDT對黑蘋果沒有效果(也許它們還會造成其它問題),留下其它有用的SSDT,用于打補丁或者就保留著不做修改。

在反編譯成功后,一個一個地打開檢查dsl文件,以確認每一個具有的功能。如果是和CPU有關(guān)的,就把它拖到其它地方(也可以直接刪除),最后放到加載目錄的,不需要這些提取的CPU相關(guān)的SSDT。一般,和CPU相關(guān)的SSDT包含了 Scope _PR.CPIx 這樣的聲明,可以通過這樣的名字排除文件。

額外說明:對于Rehabman的聯(lián)想U430,他試驗了使用這些提取的CPU相關(guān)的SSDT(當然,是修復了錯誤的)。不確定這是不是有什么好處,但使用了提取的CPU相關(guān)SSDT,使得他的DSDT不再需要打"Fix PNOT/PPNT”這樣的補丁了,好像電腦工作得很完美。


\color{blue}{以下是常見的SSDT的特點和功能:}

-SATA:可以留,也可以不留,自己決定就好。
-PTID:一般對蘋果系統(tǒng)來說,是沒用的。也許這個文件還會有很多錯誤。一種比較少的應用情況是,在這個文件里,可以找到 讀取風扇轉(zhuǎn)速,溫度,或者其它系統(tǒng)狀態(tài) 的線索。
-IAOE:如果存在這個文件,通常來講,它會在DSDT里的 _PTS 和 _WAK 方法被調(diào)用。如果刪除這個文件,就會影響到睡眠。
-GFX0:通常包含了 Device GFX0 的SSDT,是和 集成顯卡 相關(guān)的。亮度補丁就是針對這樣的文件的。老的筆記本(Haswell以前的),GFX0一般是定義在DSDT里。Haswell的筆記本,它被定義在SSDT里(雖然也可以移到DSDT里)。
-PEGP:包含PEGP的文件,一般是和 獨顯 和 雙顯卡切換 有關(guān)。有時候不只有一個這樣的SSDT,為了實現(xiàn) 屏蔽獨顯 等功能,你需要保留所有包含PEGP的SSDT,并對它們做一些修改。

我們需要弄清楚,每個SSDT的大概是做什么的,哪些需要刪除,哪些需要不做修改地保留,哪些需要修改。


\color{blue}{修復錯誤}

即使同時反編譯所有文件(使用iasl的-da參數(shù)),還是難免存在錯誤。反編譯后的文件之所以還會有錯誤,是因為一直以來iasl編譯器的版本都在更新、iasl的實現(xiàn)細節(jié)變化了、不同的電腦與系統(tǒng)環(huán)境。存在這些錯誤的原因可能是(Rehabman認為),里面調(diào)用到的一些方法,實際上是Windows內(nèi)部實現(xiàn)的(例如 MMTB方法和MDBG方法)。實際也有這樣的情況,ACPI文件的代碼原本就存在缺陷或者某些代碼本來就是無效的(很難說得清楚)。

好了,在確認哪些文件是你需要的之后,就需要開始對它們進行修改了(修復錯誤、添加功能性代碼),直到編譯沒有錯誤?,F(xiàn)在有很多補丁源可以提供使用。

MaciASL軟件:https://github.com/RehabMan/OS-X-MaciASL-patchmatic
Rehabman的綜合補丁源:https://github.com/RehabMan/Laptop-DSDT-Patch

(樓主補充:
1、MaciASL漢化版:http://bbs.pcbeta.com/viewthread-1495779-1-1.html
2、Rehabman補丁源(漢化版自帶,添加到軟件才能訪問):http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master

注意:以上補丁源里的補丁,沒有在DSDT Editor軟件里測試過。DSDT Editor軟件存在著很多bug,內(nèi)置的編譯器也很老了。

在看別人的項目頁面的時候,都請仔細閱讀作者提供的README,到正確的地址下載軟件,學習配置MaciASL。修復語法錯誤的補丁的名字,以[syn]開頭。例如,對于一些比較老的電腦,提供了"Fix _PLD Buffer/Package Error", "Fix TNOT Error", 和 "Fix FPED Parse Error”補丁。為了確定你需要用哪個補丁,需要看 編譯結(jié)果 窗口給出的 提示信息,再定位到提示的行,查看錯誤行前后都有什么樣的代碼。你也可以嘗試,只要Changes不為0或者預覽框里有顯示(說明可以打)的補丁,都可以打。如果你不熟悉編譯結(jié)果的錯誤提示,可以一個一個試驗看看能不能打。

對于一些錯誤,你可以簡單地刪除造成錯誤的那行代碼來解決。當然,這要取決于這一行代碼對于功能的實現(xiàn),是否是必需的。例如,對于由External語句造成的錯誤,一般可以刪除那行代碼以修復錯誤。如果需要,你自己可以做一個刪除這樣的錯誤行代碼的補丁。

學習一下ACPI規(guī)范 和 具有一些編程經(jīng)驗,有助于處理DSDT和SSDT。

我們的最終目的,是得到 編譯沒有錯誤的dsl文件(warnings/remarks/optimizations都不用管)。一旦你修復了所有錯誤,就可以開始為了你的黑蘋果 添加功能、解決某些問題,而修改dsl文件了(使用現(xiàn)有補丁或手工修改)。


\color{blue}{常用補丁}

一般,你需要先弄清自己的需求,再根據(jù)需求選擇要用的補丁。但也有一些補丁是通用的,并且這些補丁一般不會造成什么問題。例如,Rehabman的補丁源里的:

"Fix _WAK Arg0 v2"
"HPET Fix"
"SMBUS Fix"
"IRQ Fix"
"RTC Fix"
"OS Check Fix"
"Fix Mutex with non-zero SyncLevel"
"Fix PNOT/PPNT"
"Add IMEI”

USB補丁,用于解決 睡眠自動喚醒 的問題。

根據(jù)自己電腦的硬件配置選擇USB補?。?/p>

"7-series/8-series USB”

USB3 Mutliplex補丁,有助于加載AppleUSBXHCI.kext(原生USB3.0驅(qū)動),于是就不需要安裝第三方的GenericUSBXCHI.kext了。這個補丁是基于Mieze的發(fā)現(xiàn)而制作的。大部分DSDT需要對它做一些修改,才能使用(不然可能會提示有錯誤)。例如,對于惠普的Probook,Rehabman制作了這個補丁的修改版本。聯(lián)想u310/u410可以直接使用這個補?。?br> "7-series USB3 Multiplex”

如果你的電腦是Haswell架構(gòu)、8系列芯片組的,并且還沒有加載AppleLPC.kext(電源管理的一種),你可以使用這個補丁,注入一個兼容ID,以加載AppleLPC:
"Haswell LPC”

還需要考慮對一些設備名進行改名,并且,改名還要改得徹底??梢园岩恍┰O備名改成符合蘋果規(guī)范的名字。(例如,使用"Rename GFX0 to IGPU”補丁,可以加載集成顯卡的電源管理)。對于這一情況,DSDT/SSDT里,包含的所有GFX0,都需要改成IGPU(對所有含有GFX0的文件,都應用這個補?。?。

關(guān)于重復的標識符定義:你必須確保,你修改后的文件,不包含重復的標識符。典型的例子有,在需要添加一個_DSM方法的時候,在同一個范圍里,原本已經(jīng)存在_DSM方法了。編譯器就會提示標識符重復。為了避免這樣的問題,你可以一開始就對DSDT/SSDT用”Remove _DSM methods”補丁,刪除原本存在的所有_DSM方法。


\color{blue}{關(guān)于一些特別的需求的修改}

電池狀態(tài)顯示:
1、原貼:GUIDE] How to patch DSDT for working battery status
2、樓主翻譯:http://bbs.pcbeta.com/viewthread-1521462-1-1.html
屏幕亮度調(diào)節(jié):
1、原貼:http://www.tonymacx86.com/yosemite-laptop-support/152659-guide-patching-dsdt-ssdt-laptop-backlight-control.html
2、樓主翻譯:http://bbs.pcbeta.com/viewthread-1571456-1-1.html

屏蔽 英偉達/AMD Radeon獨顯:TBW,To Be Written,以后再寫。

當你在看某個特定型號的安裝教程的時候,作者都會介紹用了哪些補丁,或者直接提供下載。你能容易的看出來,他們的補丁和Rehabman的補丁,在語法上是相似的。(例如這樣的語法:'into_all method label FOO code_regex xxyy removeall_matched;’)。這些補丁語句需要粘貼到MaciASL的補丁窗口,再應用。

如果你對制作補丁有興趣,可以去看這里的MaciASL補丁語法說明:http://sourceforge.net/p/maciasl/wiki/Patching%20Syntax%20Grammar/

注意:在許多情況下,DSDT的補丁是和某個第三方kext、打過補丁的kext、Clover實時打補丁的kext相結(jié)合使用的(通過DSDT代碼加載kext)。

仿冒聲卡驅(qū)動相關(guān)的補丁
有兩個和仿冒聲卡驅(qū)動相關(guān)的補丁,需要和仿冒的聲卡kext一起使用:
"Audio Layout 12" (根據(jù)實際情況,自己修改 layout-id,例如把 12 改成 28 等)
"IRQ Fix”(解決需要-f才能加載聲卡驅(qū)動的問題)

注意,你需要有適合你的聲卡的AppleHDA,還要知道這個仿冒聲卡驅(qū)動用的是哪個layout-id。layout-id的值,是由修改驅(qū)動的人決定的。

要查看別人修改的AppleHDA用的layout-id是哪個值,首先,你需要知道自己聲卡的codec id的十進制形式(例如,0x10ec0269 = 283902569)。然后,去查看 AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist,查看HDAConfigDefault節(jié)點下面的codec id(這個節(jié)點下,可能有一組或多組數(shù)據(jù),所以,剛才的283902569就用上了)。和你的codec id匹配的那組里,LayoutID的值,就是你需要的layout-id值。有的驅(qū)動修改者,同一個codec id可能會對應多個layout-id,選擇一個你需要的layout-id注入。


\color{blue}{讓引導加載修改、編譯好的文件}

為了使用你修改、編譯好的DSDT/SSDT,你需要把它們放到引導能加載它們的目錄。每種引導的加載目錄是唯一的,且對文件的命名要求也不同。如果用MaciASL保存,另存為的時候,文件格式一定要選擇"ACPI Machine Language Binary”(文件-另存為-文件格式),再自己加上 .aml 后綴。如果不選擇文件格式,就相當于,硬是把dsl文本文件,存成了aml字節(jié)碼文件(沒有經(jīng)過編譯器轉(zhuǎn)換),這會造成無法預知的問題。

Clover:aml文件應該放到Clover所在的分區(qū)(通常是EFI分區(qū)),如果存在 EFI/Clover/ACPI/patched. DSDT.aml,引導程序就會用這里的DSDT,替代掉原始的DSDT,提交給系統(tǒng)。Clover 3062版本以前,SSDT的命名必須是這樣的:SSDT-x 或 SSDT-xx,x是一個整數(shù)(一直支持到SSDT-19)。Clover允許SSDT的名字不連續(xù)(例如,SSDT-1.aml, SSDT-5.aml, SSDT-6.aml是可以的)。Clover 3062以后的版本,會加載所有在ACPI/patched里的aml文件,對名字沒有嚴格限制了。一定要注意,SSDT的加載順序非常重要,你留下來的SSDT,要保持提取的時候的順序。

關(guān)于Clover 3062版本以后的注意事項:ACPI/patched里SSDT的加載方式的改變,造成了加載順序的不確定性。你應該要使用 config.plist/ACPI/SortedOrder 功能,指定SSDT的加載順序。到這里可以看到更多細節(jié):http://www.projectosx.com/forum/index.php?showtopic=2656&view=findpost&p=43690。Clover 3088版本以后,實現(xiàn)了SortedOrder參數(shù)。更多相關(guān)信息可以到這里查看:http://www.projectosx.com/forum/index.php?showtopic=2562&view=findpost&p=43674

變色龍(或Chimera):修改、編譯好的DSDT/SSDT,應該放到 系統(tǒng)盤的 /Extra(或者你的引導程序所在的其它地方的 /Extra)。如果/Extra里存在DSDT.aml,引導程序就會用這里的DSDT,替代掉原始的DSDT,提交給系統(tǒng)。變色龍要求,SSDT的名字是連續(xù)的。這樣的情況,文件都會被加載:SSDT.aml, SSDT-1.aml, SSDT-2.aml, SSDT-3.aml,直到引導找不到接下來的名字的文件。另外,這樣的情況:SSDT.aml, SSDT-1.aml, SSDT-4.aml, SSDT-5.aml,只會加載SSDT.aml 和 SSDT-1.aml。SSDT-4.aml 和 SSDT-5.aml不會被加載(變色龍會忽略這些文件)。

最后,如果不先屏蔽原始的OEM SSDT,就不能放自己修改的SSDT。最簡單的方法,是設置DropSSDT=Yes(變色龍) 或者 ACPI/SSDT/DropOem=true(Clover),從而在系統(tǒng)啟動的時候,先屏蔽原始的SSDT,之后再把目錄里的SSDT(沒有修改或修改過)提交給系統(tǒng)。


\color{blue}{Floating regions}

根據(jù)ACPI規(guī)范,OperationRegion可以被具體定義為 MMIO region, SystemMemory region, EmbeddedControl region 等。這些region通常包含了 修正過的 地址值,這些地址值 由 硬件構(gòu)成、BIOS版本、BIOS設置 決定。這些region隨時可能 隨機地、不可預計地 發(fā)生改變。也就是所謂的"floating regions”(動態(tài)域)。

我們提取的DSDT/SSDT里的Regin,只是某一個時間點的狀態(tài),當BIOS發(fā)出命令,需要變動地址值時,我們提取的文件是做不到這樣的變動的。在這樣的情況下,你也許能注意到,某一個特定的功能變得斷斷續(xù)續(xù),或者可能隨機地出現(xiàn)一些穩(wěn)定性問題。

綜上而論,使用Clover的FixRegions功能,將是很好的解決辦法。你可以在Clover的Wiki找到關(guān)于這個功能的說明。(國外的)論壇里的安裝教程提供的config.plist都配置了這個參數(shù)。注意:只有在DSDT里的floating region,才能用這個參數(shù)修復。要修復SSDT里的floating region是非常困難的,目前,除了不處理SSDT里隨機變動的floating region以外,還沒有什么好的解決方案。研究floating region的處理,超出了本教程討論的范圍。


\color{blue}{本教程用到的資源}

MaciASL (RehabMan fork): https://github.com/RehabMan/OS-X-MaciASL-patchmatic
patchmatic: https://github.com/RehabMan/OS-X-MaciASL-patchmatic
iasl (RehabMan fork): https://bitbucket.org/RehabMan/acpica/downloads
ACPI 規(guī)范: http://acpi.info/spec.htm

RehabMan github: https://github.com/RehabMan?tab=repositories

Clover laptop guide: [GUIDE] Booting the OS X installer on LAPTOPS with Clover UEFI
Clover config.plist files for laptops: https://github.com/RehabMan/OS-X-Clover-Laptop-Config

Clover thread: http://www.projectosx.com/forum/index.php?showtopic=2562
Clover changes: http://www.projectosx.com/forum/index.php?showtopic=2656
Clover installer discussion: http://www.projectosx.com/forum/index.php?showtopic=3191


\color{blue}{問題反饋}

本教程的方法,是基本的方法,不要全部照搬到你自己的電腦,只需要理解原理。如果你對自己的筆記本的黑蘋果有什么問題,不要在這里問,請自己發(fā)一個求助貼。如果你發(fā)現(xiàn)貼子存在錯誤,或者想幫助完善貼子,請在本貼回復。(針對于Rehabman的原貼)


\color{blue}{樓主總結(jié)}

對DSDT/SSDT的修改,首先,提取這一步也很關(guān)鍵,雖然提取的方法很多,但最推薦的是用Linux提取。對提取好的文件,同時反編譯所有文件,可以得到錯誤少的dsl文件。修改就用這些dsl文件修改,根據(jù)教程,篩選出要留下來的文件。再用很多現(xiàn)有的補丁源(有修復的,也有添加某些功能的)修改。修改好后,編譯成aml文件使用(不要用軟件打開aml文件)。還要注意SSDT的命名,最好名字連續(xù)。最后,放到相應的加載目錄。


\color{blue}{可以結(jié)合樓主錄制的視頻教程學習:}

1、新視頻(2015.1.2發(fā)布):http://bbs.pcbeta.com/viewthread-1569867-1-1.html
2、老視頻(2014.6.8發(fā)布):http://bbs.pcbeta.com/viewthread-1517830-1-1.html

3、反編譯介紹:http://bbs.pcbeta.com/viewthread-1475332-1-1.html
4、MaciASL漢化版:http://bbs.pcbeta.com/viewthread-1495779-1-1.html


\color{blue}{制作Ubuntu啟動U盤}

(感謝stevechen962464的點評,對于UEFI引導的,可以這樣:直接下載Ubuntu的x64版本。然后所有文件丟進U盤。即可從UEFI啟動ubuntu。不需要這樣寫入。)

以下為傳統(tǒng)BIOS引導的情況:
要在U盤運行Ubuntu,需要一個空閑空間至少2G的U盤。
制作Ubuntu啟動U盤的最簡單的方法,是使用 Universal USB installer 。
軟件下載地址:
http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/#button


\color{blue}{制作步驟:}

  1. 下載制作軟件:http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/#button

  2. 下載Ubuntu
    樓主提供的是 Ubuntu 14.10 64位。如果需要其它版本,或者下載速度慢的話,請自行搜索下載。
    下載地址:http://pan.baidu.com/s/1o6zD0Lk
    提取碼:6u9d

  3. 在下拉列表選擇Ubuntu

  4. 點擊“Browser”瀏覽,選擇下載好的iso鏡像

  5. 選擇U盤,點擊“Create”,開始創(chuàng)建啟動U盤

  6. 從U盤啟動,選擇 試用Ubuntu


\color{blue}{提取DSDT/SSDT}

一、查看U盤或硬盤的掛載點(把鼠標移動到U盤名字上)。

如圖,樓主的U盤掛載點是 /media/ubuntu/DISK_IMG

二、點擊左上角第一個圖標,搜索,找到終端

搜索 ter,找到終端

三、使用命令拷貝文件

(注意,不能使用圖形界面的復制、粘貼,會提示權(quán)限不允許)
如圖,前面一個路徑都是一樣的,我們需要從這個獲取文件。中間空格隔開。后面一個路徑,是你第一步看好的掛載點。(還可以 在空格 后把自己的目標目錄拖至此處。也就是先輸好前面的命令和路徑,再輸一個空格,再在圖形界面把U盤拖到終端。)

四、在U盤新建一個文件夾,放DSDT/SSDT(U盤必須是FAT32格式)

因為,我們拷貝的目錄結(jié)構(gòu)是這樣的:
tables (有DSDT和SSDT)
----dynamic (還有SSDT)
我們需要把兩處的文件,移動到同一個文件夾。這樣才好管理,也方便以后一起反編譯。
如圖,樓主在U盤新建了一個名為my_acpi的文件夾(文件夾名自己取就行),來存放文件。

五、給所有文件,都加上 .aml 后綴名

操作如圖所示:(樓主用的是虛擬機,文件不全)

六、所有操作完成后,可以再按下面的方法提取聲卡codec

制作Ubuntu啟動U盤,一方面,可以提取ACPI文件。另一方面,還可以提取聲卡codec。
提取ACPI文件,請看本貼前面的內(nèi)容。這里補充下提取聲卡codec。

打開終端(Terminal):
輸入 cat /proc/asound/card0/codec#0 > ~/Desktop/Codec.txt,
或者 cat /proc/asound/card0/codec#1 > ~/Desktop/Codec.txt,
或者 cat /proc/asound/card0/codec#2 > ~/Desktop/Codec.txt,

(取決聲卡的 Address,這幾個命令都試試,直到看到桌面出現(xiàn)了Codec.txt文件)
成功的話,在桌面會出現(xiàn)一個 Codec.txt (打開看看,應該有很多內(nèi)容,確認不是空的)
把Codec.txt拷貝到U盤。

這種方法是先把文件拷貝到桌面,就可以用圖形界面的復制、粘貼了。

(拷貝文件,可以和前面的結(jié)合參考,哪種方便用哪種。只是要注意,U盤格式最好是 FAT32 格式。)

點評

這里注意下,如果是中文Ubuntu系統(tǒng)提取codec的話,得把Desktop改成桌面才能正確提取,不然是會提示找不到目錄的。

直接下載ubuntu14.04的x64版本。然后所有文件丟盡U盤。即可從UEFI啟動ubuntu。不需要這樣寫入的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 圖的表示:鄰接矩陣和鄰接表 鄰接矩陣:大小為|V|的二維數(shù)組,對于每條邊(u, v),置A[u][v]=1或...
    第八天的蟬啊閱讀 276評論 0 0
  • 地球母親祈禱文祝福你母親,我們在這里,我們聽見了你,請以你的智慧指引我們,以你的愛保護我們,以你創(chuàng)造支持我們,并且...
    元嘉Grace閱讀 539評論 0 0
  • 論道提壺不夜天,酬神總盼早團圓。 山鄉(xiāng)新貌憑君手,水木清輝伴友肩。 我自歸來無以報,誰先醉去枉稱賢。 繁星送客雞啼...
    尚柳閱讀 198評論 0 0

友情鏈接更多精彩內(nèi)容