Linux下UEFI模擬器編譯和啟動

2021-07-05 00:19:51 字數 3206 閱讀 6394

作業系統

linux系統:

deepin 2014.3 desktop

1.edk2或者

udk2014

最新版edk2

獲取**:

官網上的穩定版,有

udk2010

和udk2014

,此時要按照要求配置好整個

workspace

和根目錄的關係。

1.首先為系統安裝git:

a) 在shell

下執行指令:

sudo apt-get install git

。就可以為系統安裝

git

2.使用git

的clone

工具,獲得最新的

edk2原始碼

a) 指令如下:git clone 

3.建立工作目錄:edk2

a) 在/home/kair/

目錄下建立

edk2

目錄,作為

edk2

的工作空間(此處

kair

目錄是使用者名稱,也就是使用者操作空間)

中的檔案和

basetools

(unix

)中的檔案統一放到目錄

edk2

下面。

設定好之後的目錄如下:

4.配置好環境變數,設定好需要的配置檔案,如下圖:

a) 執行指令:source edksetup.sh

該指令執行成功後,在/edk2/conf/

目錄下,會自動生成

target.txt,tools_def.txt

等一些重要的配置檔案。

b )  target.txt和

tools_def.txt

這些檔案配置了要編譯工程是

64為還是

32位置,使用的

c編譯器的型別和版本等資訊,在這裡配置後,檔案中的資訊就是預設資訊。

5.編譯uefi

模擬器

a) 編譯指令:emulatorpkg/build.sh -a ia32或者

emulatorpkg/build.sh -a x64(64位)

b) 預設編譯指令:build

c) 預設編譯指令對應的是在conf

目錄下面,

target.txt

檔案下配置的相關資訊,按照其中的配置資訊進行的編譯。

6.啟動uefi

模擬器

a) 啟動指令:

emulatorpkg/build.sh -a ia32 run或者

emulatorpkg/build.sh -a x64 run(

64位)

b) 預設啟動指令:build run(

對應上面的預設編譯指令,前提是配置檔案中已經配置 好需要說明的資訊)

1.版本問題:

a) emulatorpkg取代了

unixpkg

。網上很多資料,包括官方文件的資料,都是對應於

unixpkg

被取代之前的內容。這一點需要注意。

b) gcc的版本可能導致問題出現:

較低版本的gcc

可能回和

edk2

的新版本,在編譯的時候出現問題,如果使用

edk2

或者udk2014

穩定版,建議用

gcc4.6

及以上的版本。

2.編譯和啟動的問題:

a) 預設的編譯命令為build。

i. 只需要配置好target.txt

等配置檔案)之後,就可以編譯成功

ii. 特別注意,這裡要編譯成功的前提有兩個:第一,需要在basetools

目錄下執行

make

命令,生成編譯

uefi

的工具鏈;第二,修改

target.txt

檔案,將預設的

nt32pkg

修改為embeddedpkg。

b) 新版本下正確的便以指令是:

emulatorpkg/build.sh -a ia32或者

emulatorpkg/build.sh -a x64(64位)

c) 正確的執行指令,也就是在上面編譯指令後面,加上run

,即可啟動

uefi

模擬器。

這裡只執行預設的build run

指令,不能成功啟動模擬器。

d) 上述的問題的詳細原因還在探索和學習的過程中。

3.環境中缺少某些第三方庫檔案

a) 32位編譯的時候,報錯

b) 64位編譯的時候,可以通過

c) 提示缺少gdb

,安裝後問題會解決

d) 安裝後,還有錯誤,如下:

4.系統中缺少某些東西

d) 根據提示資訊,修改**即可成功

c) 成功解決問題:

d) 成功編譯輸出hello world

linux下對gens遊戲模擬器的編譯

gens版本 gens gs v2.15.5 gs m5 gens gs linux版本 version 2.6.27.9 159.fc10.i686 gcc版本 4.3.2 編譯過程 因為源 中已經存在configure檔案,所以不需要通過工程管理工具autoconf自動生成 首先在源 目錄下執行...

linux下街機模擬器聯機

最近中午比較喜歡和同事打打kof97 因為我用linux所以每次用模擬器需要切換到window。久而久之感覺比較麻煩。最後想使用wine模擬winkawaks達到linux也能聯機模擬器遊戲目的。首先,應該在linux安裝wine 這個是在linux系統裡面模擬執行window程式的工具。每個使用l...

mtk模擬器及編譯命令

編譯命令 make custom gprs gsm new remake update clean module name 編譯時進入dos下工程所在的目錄,然後輸入上面的命令語句即可開始編譯。引數 custom 是不同的軟體版本,編譯時可忽略引數 custom 系統會自動判斷。gprs gsm是說...