UEFI開發探索03 – 環境搭建2
從上次寫完部落格,過去了一個多月。中間到深圳出差,解決一個硬碟加密的專案,時間就這麼過去了。等回過神來,發現寫部落格的計劃又往後拖了。
下定決心,我想在這周搞定編譯環境。
以前我是在XP下,使用UDK2010來編譯的,比如這個:

我原本的計劃是用Ubuntu 16來搭建環境。最近正習慣在上面用vim和vscode程式設計,戒掉用了多年的UE和sublime。嘗試了一天,總是遇到各種問題,特別是到現在也沒有也沒搞明白,GCC在安裝過程中不知怎麼變為了7.x。
這麼下去,這周的計劃又完成不了。我回到了用windows安裝的老路,預備安裝UDK2018。
還是折騰了一天,搞定了。把安裝步驟和中途遇到的問題記錄下來吧。
這是參考用的幾個網址:
https://github.com/tianocore/edk2/releases
先吐槽一下,文件寫得並不友好,我的時間全花在了編譯Base Toosls上。實際上可以不用自己去編譯Base Tools,直接下載就可以了。地址如下:
https://github.com/tianocore/edk2-BaseTools-win32
我是在讀UDK2017的文件UDK2017 How to Build時發現的。
安裝步驟(Win10下安裝):
1. 安裝 VS2015。我安裝了圖中所示的項,Python Tools for Visual Studio我覺得應該是不需要的,當時順手選上了。

2. 安裝Python 2.7.16,同時選擇將Python加入Path(安裝的時候需要選擇);
3. 安裝Nasm 2.12.01,注意選擇安裝路徑為C:\Nasm。在我的電腦-屬性-高階系統設定-高階-環境變數…-系統變數-Path中新增此路徑;
4. 安裝Openssl工具和ASL工具(應該不需要,這是用來生成Base Tools用的);
5. 解壓edk2-vUDK2018.zip到C:\MyWorkspace;
6. 新增系統變數PYTHON_HOME=c:\Python27;(補充一句,新增編譯工具路徑以及系統變數,可以在edksetup.bat中新增,比如:
Path = c:\nasm;%path%
Set PYTHON_HOME=c:\python27
這樣就不需要像步驟3和6一樣操作了,對我這種強迫症比較合適);
7. 開啟“ VS2015 x64 Native Tools Command Prompt” ,執行edksetup.bat –nt32,會生成/Conf下所需的一些檔案; 8. 執行build -p NT32Pkg\Nt32Pkg.dsc -a IA32 -t VS2015x86 run,啟動SecMain.exe。
8. 執行build -p NT32Pkg\Nt32Pkg.dsc -a IA32 -t VS2015x86 run,啟動SecMain.exe。

我的安裝過程並不順利,遇到了兩個問題,記錄如下:
問題1:python編譯中找不到cxFreeze的module,無法通過編譯。
解決:cmd開啟,輸入pip install cx_freeze。(注意Path中要包含Python的路徑,否則無法執行)。
問題2:提示 File “GenFds\GenFds.py”, line 24, in <module>
ValueError: Attempted relative import in non-package
解決:將路徑BaseTools\Bin\Win32下GenFds.exe更名為GenFds.LABZ,並將BaseTools\BinWrappers\WindowsLike;新增到Path路徑中。
(此問題的解決參照 http://www.lab-z.com/udk2018coming/ 和 https://github.com/tzz1996/Blog/blob/master/compile_udk2018_in_windows.md ,感謝!)
至此,終於可以繼續探索UEFI了。明天開始將之前寫過的例子一個個編譯執行,加深理解。至於Ubuntu的開發環境,找時間再做吧。畢竟ubuntu更輕量級點,windows上光VS2015就佔了12G。我都是在虛擬機器下開發,這麼多開發環境,空間嚴重不足了。
4 total views, 4 views today