如何在虛擬機器中執行 YOCTO LINUX 作業系統

評論
評論

有時我們需要完整的開發環境來編譯、部署和測試解決方案,有時卻無法直接在硬體上執行,或是所提供的 SDK 不足以支援我們的開發計畫。舉例而言,Intel Edison 或 Galileo 可能就會發生以下情況:該如何在 Yocto Linux 作業系統上編譯整個框架、運行時間和相依性?

我將在本文示範建立可執行的 Yocto 映像,以及在 QEMU 這款基本軟體模擬器進行測試的方法,之後還會說明如何在超管理器 (如 Windows 上的 Microsoft Hyper-V) 執行映像。

進入教學前的準備事項

• Debian/Ubuntu (於 Debian 8.2 amd 64 測試)
• 網際網路連線
• 磁碟至少需有 100 GB 的可用空間

建置機器的前備作業

以 root 身份 (或以「sudo」) 執行下列指令:

2016-06-14 18.14.44

註 1:上述指令能否成功,端看所用的 Ubuntu/Debian 版本。最後,如需解決套件的相依性問題,可執行「aptitude」強制安裝所需套件的正確版本 (如「aptitude install libsdl1.2-dev」)。

註 2:至於其他的 Linux 發行版,如 RadHat、CentOS、Fedora、SuSe、Gentoo 等,建議使用正確套件管理器 (如 zypper、yum 等),各別檢查先前套件的版本。

第一步:設定作業資料夾

採用一般使用者身份 (無 root 權限)

2016-06-14 18.16.11

註 4:如需取得最先進的新版 Yocto 資源,可以擷取主開發分支,請以下列程式碼替換 wget 操作:

2016-06-14 18.17.13

註 5:此外還可用代碼來選擇特定的開發分支。例如:

2016-06-14 18.18.01

第二步:為系統殼層設定環境變數

指令碼執行後若正確運作,你的位置將變更至一個建置用子目錄,此處就是新的工作區。看起來會像這樣:/home//yocto-2.0/poky-jethro-14.0.0/build/。

第三步:設置 Bitbake

執行前述指令碼後會建立一個 conf/local.conf 檔案。

此組態檔必需設置 Yocto 的建置引擎 Bitbake (Yocto Project 的核心元件)。

請以喜好的文字編輯器編輯 Bitbake 的設定檔。此教學採用 nano,一款簡單的命令列介面,可供類似 Unix 的環境使用,操作如下:

2016-06-14 18.22.16

以下規則不做註記:

2016-06-14 18.23.53

建議將所有可用額外功能都建置於映像。雖然將得出龐大映像 (各約 8 GB),但也會十分完整,可靈活因應開發作業的各種需求。

 

2016-06-14 18.27.15

現在請同時按下 CTRL+X 鍵,將變更儲存至 local.conf 檔案。

接下來:

2016-06-14 18.28.18

此時 Hob (BitBake 用的 GTK2 型圖形使用者介面) 的實例應該已經啟動,請檢查建置系統的正確性。

001

現在請從下拉式選單中選取 qemux86 作為機器。

select-machine

請等到 Hob 結束分析 BitBake 的「配方」並產生相依樹狀結構。接下來請從上方選單的「select an image recipe (選擇映像配方)」選擇喜好的目標映像並開始建置。我們在此例選擇無 GUI 的完整核心映像:core-image-full-cmdline。

select-image-recipe

現在請點選「Advanced Configuration (進階組態)」。

advanced-configuration

如需建置最新的穩定版本,請到「Image types (映像類型)」面板,保留「Distro」選單中的 poky。然後請在「Image types (映像類型)」欄位中選擇所需格式:我通常會選擇「.iso」、「.vdi」和「.vmdk」這些最實用且直覺的格式。

iso

在「Output (輸出)」面板中,請選擇最符合自身需求的選項。建議至少為映像多留 4GB 的可用儲存空間,以便放入 i686 架構的 SDK (如使用 Edison 開發板)。此外,我還發現將「deb」設定為根檔案系統的封裝格式相當實用。如下所示:

output-pic-6

好了,儲存吧。現在可以來建置映像了!請點選「Build image (建置映像)」!

build-image

Hob 會以你喜好的設定值啟動一個 bitbake core-image-full-cmdline 實例,

building-packages

註 7:這項程序將耗時良久,才能建置最終映像。不過,根據你的主機設備的能力,「BitBake parallel threads (BitBake 平行執行緒)」和「Make parallel threads (產生平行執行緒)」上用於建置作業的處理器數目,都可予以變更。也可以在 Hob 設定視窗內修改這些變數:

build-environment

註 8:最後,你將能夠透過 Hob 來決定將哪些套件納入所需建置的映像之中。選擇「Edit image recipe (編輯映像配方)」便能在開始建置映像之前進行此動作。

step-1-edit-recipes

然後在下列視窗挑選想要加入的套件:

建置程序結束之後,就可以直接試用全新生成的映像了!點選「Run image (執行映像)」,Hob 便會啟動 QEMU 的實例來執行新建立的 qemux86 映像。

details-run-image

但在此之前,系統會要求提供超級使用者的權限密碼:

core-image-full-cmdline

另一個 UNIX 命令列控制台視窗會開啟,顯示加載狀態和 Yocto Project 作業系統的啟動畫面。

yocto-project-logo

現在可以登入新建立 Yocto 映像的 root 帳戶了。請記住:若將 EXTRA_IMAGE_FEATURES 變數中的除錯-調校參數插入 conf/local.conf,即可無需密碼直接以 root 身份登入。否則在構建映像之前就要在配方中設定好 root 密碼。

qemu

現在可以開始使用 Yocto QEMU 虛擬機器了。

註 9:依照教學說明建置 Yocto 映像後,會佔據磁碟 89.8GB 的空間。

yocto-2-0-properties

所生成映像的格式,如 .iso、.vmdk、.vdi 及其他格式,均是由下列目錄選出:~/yocto-2.0/poky-jethro-14.0.0/build/tmp/deploy/images/qemux86/*。現在,您可自由將映像載入喜好的超管理器或模擬器 (如 Microsoft* Hyper-V、vmWare Fusion、Virtualbox 等)。


精選熱門好工作

Machine Learning Engineer (Visual Creativity)

PicCollage 拼貼趣
臺北市.台灣

獎勵 NT$20,000

PopDaily 業務企劃-公標案專責

數果網路股份有限公司
臺北市.台灣

獎勵 NT$20,000

Android 工程師

Omlet Arcade 美商歐姆雷特
臺北市.台灣

獎勵 NT$20,000

評論