在完成了Purple Pi OH大部分的接口測試之后,緊接著就是一個充滿挑戰的任務——利用SDK來編譯生成我們自己的鏡像文件。通過這一過程,不僅能夠讓你獲得一個可在真實硬件上運行的系統鏡像,更重要的是,它讓你對OpenHarmony系統的構建和編譯過程有了更加深刻的理解。
現在,讓我們拿起鍵盤,開始這段編譯旅程吧!
一.源碼
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'
注:獲取的是與版本發布時完全一致的源碼,如下圖所示:
1.2
1.2 打Purple Pi OH補丁
下載后將補丁放到當前代碼根目錄下,然后執行如下命令:
$ unzip purple-pi-oh-patch.zip
$ cd purple-pi-oh-patch/
$ ./ido_patch.sh
二.環境搭建
建議使用Ubuntu20.04 LTS搭建開發環境。
2.1
USB掛載查看下載安裝參考如下:
https://blog.csdn.net/weixin_55989896/article/details/123306757
注:新建虛擬機時,建議分配磁盤容量至少120GB,DDR至少4GB。
2.2
2.2 安裝工具包
將以下命令復制到終端,按照提示輸入用戶密碼和確認即可
$ 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
注:這里可能產生獲取不到軟件包、發現不到版本、在后續編譯過程中產生命令找不到的報錯等,根據錯誤提示配置需要的環境即可。
三.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命令查找不到設備
編譯成功后可以通過U盤、Samba、NFS等方法將文件導出到本機。
Samba和NFS的配置方法大家可以自行搜索下,主要方便虛擬機和物理機之間共享文件。
五.常見問題
5.1 源碼下載失敗
解決方案:嘗試“OpenHarmony4.0Release說明”gitee鏈接中其他獲取方法。
5.2 無法定位軟件包
解決方案:
①執行sudo apt update
②再次安裝命令
③仍無法定位軟件包請查詢更換鏡像源相關教程
5.3 燒錄mipi固件系統一直重啟
解決方案:
沒有接i2c觸摸屏,系統開機后檢測不到會重啟;如果觸摸壞了,可以在ido-pi-oh3566-mipi-v1.dts里關閉2c1
&i2c1 {
status = "disabled";
};
5.4 系統啟動后進入不到桌面
解決方案:
當前系統有 bug,當出現此種問題時,需要執行 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專區查找對應問題:
https://ask.industio.com/questions/OpenHarmony
記住,每一次編譯都是一次新的探索,每一次錯誤都是學習的機會。因此,即使遇到困難,也不要灰心,反而應該把它視為成長的階梯。
-
測試
+關注
關注
8文章
5315瀏覽量
126713 -
開發板
+關注
關注
25文章
5067瀏覽量
97589 -
OpenHarmony
+關注
關注
25文章
3725瀏覽量
16368
發布評論請先 登錄
相關推薦
評論