在完成了Purple Pi OH大部分的接口測試之后,緊接著就是一個充滿挑戰(zhàn)的任務(wù)——利用SDK來編譯生成我們自己的鏡像文件。通過這一過程,不僅能夠讓你獲得一個可在真實硬件上運行的系統(tǒng)鏡像,更重要的是,它讓你對OpenHarmony系統(tǒng)的構(gòu)建和編譯過程有了更加深刻的理解。
現(xiàn)在,讓我們拿起鍵盤,開始這段編譯旅程吧!
一.源碼
OpenHarmony4.0Release說明地址如下:
https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v4.0-release.md
1.1 源碼獲取
$repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
$repo sync -c
$repo forall -c 'git lfs pull'
注:獲取的是與版本發(fā)布時完全一致的源碼,如下圖所示:
1.2
1.2 打Purple Pi OH補丁
下載后將補丁放到當(dāng)前代碼根目錄下,然后執(zhí)行如下命令:
$ unzip purple-pi-oh-patch.zip
$ cd purple-pi-oh-patch/
$ ./ido_patch.sh
二.環(huán)境搭建
建議使用Ubuntu20.04 LTS搭建開發(fā)環(huán)境。
2.1
USB掛載查看下載安裝參考如下:
https://blog.csdn.net/weixin_55989896/article/details/123306757
注:新建虛擬機時,建議分配磁盤容量至少120GB,DDR至少4GB。
2.2
2.2 安裝工具包
將以下命令復(fù)制到終端,按照提示輸入用戶密碼和確認即可
$ sudo apt-get update
$ sudo apt-get install aptitude
$ sudo aptitude install -y binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools git-lfs
$ sudo apt-get install -y pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 vim ssh locales gcc-arm-linux-gnueabi
注:這里可能產(chǎn)生獲取不到軟件包、發(fā)現(xiàn)不到版本、在后續(xù)編譯過程中產(chǎn)生命令找不到的報錯等,根據(jù)錯誤提示配置需要的環(huán)境即可。
三.SDK編譯
3.1 完整編譯
編譯命令如下:
$bash build/prebuilts_download.sh
$./build.sh --product-name purple_pi_oh --ccache --no-prebuilt-sdk
編譯成功后,輸出日志如下:
[OHOS INFO] purple_pi_oh build success
[OHOS INFO] Cost time: 012
=====build successful=====
2023-11-01 1108
失敗時log所在位置:
./out/purple_pi_oh/build.log
編譯成功后生成的固件所在位置:
./out/purple_pi_oh/packages/phone/images/
3.2 編譯不同dts
device/board/industio/purple_pi_oh/kernel/build_kernel.sh
中的修改為IDO-RK3566-PI-HDMI
編譯為MIPI固件則改為:IDO-RK3566-PI-MIPI
刪除out/kernel/后再編譯。
3.3四. 固件燒錄
4.1hdc list targets命令查找不到設(shè)備
編譯成功后可以通過U盤、Samba、NFS等方法將文件導(dǎo)出到本機。
Samba和NFS的配置方法大家可以自行搜索下,主要方便虛擬機和物理機之間共享文件。
五.常見問題
5.1 源碼下載失敗
解決方案:嘗試“OpenHarmony4.0Release說明”gitee鏈接中其他獲取方法。
5.2 無法定位軟件包
解決方案:
①執(zhí)行sudo apt update
②再次安裝命令
③仍無法定位軟件包請查詢更換鏡像源相關(guān)教程
5.3 燒錄mipi固件系統(tǒng)一直重啟
解決方案:
沒有接i2c觸摸屏,系統(tǒng)開機后檢測不到會重啟;如果觸摸壞了,可以在ido-pi-oh3566-mipi-v1.dts里關(guān)閉2c1
&i2c1 {
status = "disabled";
};
5.4 系統(tǒng)啟動后進入不到桌面
解決方案:
當(dāng)前系統(tǒng)有 bug,當(dāng)出現(xiàn)此種問題時,需要執(zhí)行 killall com.ohos.launcher。
里面的hap文件替換applications\standard\hap\下的同名文件。
5.5 雙頻WIFI模塊藍牙打不開
解決方案:
雙頻WIFI模塊為AW-NM256需要更換hcd文件:
把vendor\industio\purple_pi_oh\bluetooth\src\hardware.c中的BCM43430A1.hcd改為BCM4345C0.hcd再編譯。
5.6 怎樣編譯full-sdk
解決方案:
./build.sh --product-name ohos-sdk
編譯完成后在out\sdk\packages\ohos-sdk則為不同平臺的full-sdk
注:其它FAQ問題可以進入FAQ專區(qū)查找對應(yīng)問題:
https://ask.industio.com/questions/OpenHarmony
記住,每一次編譯都是一次新的探索,每一次錯誤都是學(xué)習(xí)的機會。因此,即使遇到困難,也不要灰心,反而應(yīng)該把它視為成長的階梯。
-
測試
+關(guān)注
關(guān)注
8文章
5303瀏覽量
126666 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5052瀏覽量
97499 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3722瀏覽量
16323
發(fā)布評論請先 登錄
相關(guān)推薦
評論