本文將介紹如何為QEMU RISC-V虛擬平臺構(gòu)建OpenHarmony輕量系統(tǒng)。得益于QEMU的CPU指令集模擬執(zhí)行能力,該方法可以在沒有開發(fā)板的情況下調(diào)試和運行OpenHarmony系統(tǒng)源碼。本文介紹的該方法,可以用于OpenHarmony操作系統(tǒng)源碼的學(xué)習(xí)和研究。
一、背景介紹
QEMU是一個開源的虛擬化平臺,它可以實現(xiàn)目標(biāo)平臺的CPU指令級別的模擬。因此,可以使用QEMU進行操作系統(tǒng)的學(xué)習(xí)和研究,也可以在沒有硬件的情況下對開發(fā)板進行模擬。
QEMU是一款開源的虛擬機監(jiān)控程序,可模擬多種硬件環(huán)境,并支持多種處理器架構(gòu)。它能夠在不同平臺上實現(xiàn)虛擬化,運行各種操作系統(tǒng)。QEMU具有高度的靈活性和可移植性,被廣泛用于開發(fā)、測試和部署虛擬化環(huán)境。
二、準(zhǔn)備OpenHarmony源代碼
開始之前,需要準(zhǔn)備:
- Ubuntu 系統(tǒng)的開發(fā)環(huán)境(可以是物理主機也可以是虛擬機);
- 下載OpenHarmony 4.1 Release源代碼,參考此前帖子:
- [【開源鴻蒙】下載 OpenHarmony 4.1 Release 源代碼]
三、準(zhǔn)備hb命令
3.1 安裝hb命令
編譯OpenHarmony源碼之前,需要先安裝hb命令。
# 跳轉(zhuǎn)到OpenHarmony源碼目錄,例如上一篇文章介紹的 OpenHarmony 4.0 Release
cd ohos/openharmony
# 如果沒有 pip 命令,則需要先安裝 python3-pip
# sudo apt install python3-pip
# 安裝 hb 命令:
pip install build/hb
安裝成功如下圖所示:
3.2 檢查hb命令
安裝完成后,可以通過 hb help命令測試是否可以正常使用。
如果 報告 command not found ,如下圖所示:
則表明hb所在目錄沒有加到PATH環(huán)境變量中,如果是Ubuntu系統(tǒng),需要先檢查~/.profile文件是否存在,并檢查其中是否有如下代碼:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
如果有以上代碼,關(guān)閉當(dāng)前shell會話,重新打開,就可以正常使用hb命令了。
如果沒有~/.profile文件,則可以將以上代碼添加到 ~/.bashrc 文件中。
如果報告Please call hb utilities inside ohos source directory,則是正常的,需要在ohos源碼目錄下執(zhí)行hb命令。
四、編譯RISC-V架構(gòu)的OpenHarmony輕量系統(tǒng)
4.1 設(shè)置hb構(gòu)建目標(biāo)
開始編譯之前,首先需要設(shè)置hb構(gòu)建的目標(biāo)產(chǎn)品或開發(fā)板是什么。使用hb set命令,進行交互式設(shè)置。
依次選擇 mini → qemu_riscv_mini_system_demo
設(shè)置完成后,會在源碼目錄的頂層生成 ohos_config.json 文件,內(nèi)容如下:
4.2 啟動hb構(gòu)建過程
使用hb set設(shè)置完目標(biāo)平臺后,就可以使用hb build命令進行編譯了。
構(gòu)建完成后,輸出如下:
五、問題解決
5.1 hb set 報錯問題解決
如果遇到報錯:cannot import name 'Mapping' from 'collections’
這個報錯是因為Python 3.10中,Mapping已經(jīng)不在collections包中了。
解決方法,修改文件: ~/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py
手動將 collections 改為 collections.abc 即可。
六、參考鏈接
- OpenHarmony官網(wǎng): [https://www.openharmony.cn/]
- OpenHarmony編譯形態(tài)整體說明: [https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-appendix-compiledform.md]
- OpenHarmony代碼倉: [https://gitee.com/openharmony/]
審核編輯 黃宇
-
開源
+關(guān)注
關(guān)注
3文章
3402瀏覽量
42711 -
RISC-V
+關(guān)注
關(guān)注
45文章
2322瀏覽量
46587 -
qemu
+關(guān)注
關(guān)注
0文章
57瀏覽量
5393 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2392瀏覽量
43048 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3744瀏覽量
16574
發(fā)布評論請先 登錄
相關(guān)推薦
評論