本文將介紹如何為QEMU RISC-V虛擬平臺(tái)構(gòu)建OpenHarmony輕量系統(tǒng)。得益于QEMU的CPU指令集模擬執(zhí)行能力,該方法可以在沒有開發(fā)板的情況下調(diào)試和運(yùn)行OpenHarmony系統(tǒng)源碼。本文介紹的該方法,可以用于OpenHarmony操作系統(tǒng)源碼的學(xué)習(xí)和研究。
一、背景介紹
QEMU是一個(gè)開源的虛擬化平臺(tái),它可以實(shí)現(xiàn)目標(biāo)平臺(tái)的CPU指令級別的模擬。因此,可以使用QEMU進(jìn)行操作系統(tǒng)的學(xué)習(xí)和研究,也可以在沒有硬件的情況下對開發(fā)板進(jìn)行模擬。
QEMU是一款開源的虛擬機(jī)監(jiān)控程序,可模擬多種硬件環(huán)境,并支持多種處理器架構(gòu)。它能夠在不同平臺(tái)上實(shí)現(xiàn)虛擬化,運(yùn)行各種操作系統(tǒng)。QEMU具有高度的靈活性和可移植性,被廣泛用于開發(fā)、測試和部署虛擬化環(huán)境。
二、準(zhǔn)備OpenHarmony源代碼
開始之前,需要準(zhǔn)備:
- Ubuntu 系統(tǒng)的開發(fā)環(huán)境(可以是物理主機(jī)也可以是虛擬機(jī));
- 下載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命令測試是否可以正常使用。
如果 報(bào)告 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會(huì)話,重新打開,就可以正常使用hb命令了。
如果沒有~/.profile文件,則可以將以上代碼添加到 ~/.bashrc 文件中。
如果報(bào)告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命令,進(jìn)行交互式設(shè)置。
依次選擇 mini → qemu_riscv_mini_system_demo
設(shè)置完成后,會(huì)在源碼目錄的頂層生成 ohos_config.json 文件,內(nèi)容如下:
4.2 啟動(dòng)hb構(gòu)建過程
使用hb set設(shè)置完目標(biāo)平臺(tái)后,就可以使用hb build命令進(jìn)行編譯了。
構(gòu)建完成后,輸出如下:
五、問題解決
5.1 hb set 報(bào)錯(cuò)問題解決
如果遇到報(bào)錯(cuò):cannot import name 'Mapping' from 'collections’
這個(gè)報(bào)錯(cuò)是因?yàn)镻ython 3.10中,Mapping已經(jīng)不在collections包中了。
解決方法,修改文件: ~/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py
手動(dòng)將 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文章
3676瀏覽量
43801 -
RISC-V
+關(guān)注
關(guān)注
46文章
2555瀏覽量
48752 -
qemu
+關(guān)注
關(guān)注
0文章
57瀏覽量
5670 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2617瀏覽量
44020 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3851瀏覽量
18562
發(fā)布評論請先 登錄
RISC-V中***會(huì)子活動(dòng)之一:基于RISC-V的鴻蒙開發(fā)板設(shè)計(jì)
【匯總】OpenHarmony輕量系統(tǒng)開發(fā)目錄和個(gè)人感悟
從零移植OpenHarmony輕量系統(tǒng)【1】移植思路
從零開始移植OpenHarmony輕量系統(tǒng)
每周精選 | 16款RISC-V生態(tài)開發(fā)板開放申請,全志系列項(xiàng)目開源分享
我了解的RISC-V
設(shè)備仿真模擬軟件 QEMU 8.0 發(fā)布:改進(jìn)對 ARM / RISC-V 架構(gòu)支持
潤開鴻基于高性能RISC-V開源架構(gòu)DAYU800通過OpenHarmony兼容性測評
OpenHarmony生態(tài)論壇:OpenHarmony與賽昉Risc-V共建開源軟硬件體系

【直播預(yù)告】OpenHarmony“芯”進(jìn)展,RISC-V專場
openKylin成功適配VisionFive 2,并推出RISC-V架構(gòu)QEMU版本系統(tǒng)鏡像

為什么IAR編譯器對開源ISA:RISC-V業(yè)務(wù)至關(guān)重要?
潤開鴻基于高性能RISC-V開源架構(gòu)DAYU800通過OpenHarmony兼容性測評

潤開鴻基于高性能RISC-V開源架構(gòu)DAYU800通過OpenHarmony兼容性測評

【開源鴻蒙】使用QEMU運(yùn)行OpenHarmony輕量系統(tǒng)

評論