本文來源電子發燒友社區,作者:ITMING, 帖子地址:https://bbs.elecfans.com/jishu_2307430_1_1.html
前言
通過【軟通動力鴻湖萬聯揚帆系列“競”開發板試用體驗】認識"競"筆者帶大家認識了揚帆系列“競”開發板,本節將講解OpenHarmony源碼編譯環境搭建以及將編譯OpenHarmony標準系統燒錄到“競”開發板。
OpenHarmony標準系統位開發者提供了兩種源碼編譯、燒錄的方式:
- IDE方式:完全采用IDE(DevEco Device Tool)進行一站式開發,編譯依賴工具的安裝及編譯、燒錄、運行都通過IDE進行操作。
- 安裝包方式:通過命令進行編譯依賴工具的下載安裝,編譯操作也通過命令實現。
筆者更喜歡使用第二種安裝包方式,但本文中筆者使用Ubuntu+瑞芯微開發工具的方式進行源碼編譯及燒錄。
1 安裝VMware Workstation Player
VMware Workstation Player(以下簡稱VM Player)是一款桌面虛擬化應用,可以在當前計算機上運行一個或多個其他操作系統,在后面小節中編譯OpenHarmony源代碼需要使用Ubuntu操作系統,因而小節會帶讀者安裝VM Player。當然讀者也可以選擇其他的虛擬化應用程序,如需要授權的VMware Workstation Pro,或者Virtual Box,甚至讀者還可以使用云虛擬機。
1.1 下載VM Player
在瀏覽器中打開VM Player下載地址,展開左側菜單欄下的工作空間,點擊桌面Hypervisor菜單,右側內容區定位到具體的模塊,點擊Workstation Player卡片進入到下載界面,如圖1-1所示。
點擊頁面中的“免費下載”按鈕,等待下載完成,如圖1-2所示。
1.2 安裝VM Player
下載完成后,讀者會在下載存儲路徑文件夾中得到VM Player安裝包,如VMware-player-full-xxx.exe文件,然后雙擊安裝包,打開安裝向導,如圖1-3所示。
點擊安裝向導界面中“下一步”按鈕,打開VMware最終用戶許可協議,勾選“我接受許可協議中的條款”(感興趣的話也可以讀一讀),如圖1-4所示。
接著點擊“下一步”按鈕,進入到VM Player安裝路徑設置界面,如圖1-5所示。點擊“更改”按鈕設置VM Player安裝位置,建議安裝到除C盤之外的其他磁盤中,若只有一個磁盤,則忽略,如圖1-6所示。
更改完路徑后,點擊“確定”按鈕回到自定義安裝界面,點擊“下一步”按鈕,進入用戶體驗設置界面,可默認,也可取消勾選,如圖1-7所示。
接著點擊“下一步”按鈕,進入快捷方式設置界面,勾選桌面和開始菜單程序文件夾,方便打開應用程序,如圖1-8所示。
點擊“下一步”按鈕,進入到VM Player安裝界面,點擊“安裝”按鈕進行安裝,如圖1-9所示。
等待安裝完成后,點擊“完成”按鈕(若個人使用點擊“跳轉許可”按鈕即可),如圖1-10所示。
1.3 初次體驗VM Player
雙擊桌面VMware Workstation 16 Player圖標,打開VM Player應用程序,如圖1-11所示。
由于開發板需要連接到主機上,所以此處做額外的設置,點擊菜單欄Player,選擇文件選項下的首選項,在USB列表中勾選“將設備連接到主機”,如圖1-12所示。
2 準備Ubuntu 20.04 系統鏡像包
Ubuntu是一個以桌面為主的Linux操作系統,是編譯OpenHarmony源代碼必要的環境之一,打開官網下載鏈接下載Ubuntu 20.04桌面版(64位),如圖2-1所示。
注:由于下載的文件格式為.torrent,因此需要使用迅雷下載完整的ISO文件,當然讀者也可以使用國內鏡像網站下載Ubuntu 20.04。
3 創建名為OpenHarmony虛擬機并安裝Ubuntu操作系統
1、2小節準備了OpenHarmony源代碼編譯所需的虛擬機和Ubuntu操作系統鏡像包,本節將帶讀者創建名為OpenHarmony的虛擬機并安裝Ubuntu操作系統。
3.1 創建名為OpenHarmony虛擬機
點擊VM Player歡迎頁中的創建新虛擬機,打開新建虛擬機向導,勾選“稍后安裝操作系統”,如圖3-1所示。
點擊“下一步”按鈕,打開選擇客戶機操作系統界面,客戶操作系統選擇Linux,版本選擇Ubuntu 64位,如圖3-2所示。
點擊“下一步”按鈕,打開命名虛擬機界面,設置虛擬機名稱和虛擬機存儲位置,如圖3-3所示。
點擊“下一步”按鈕,打開指定磁盤容量界面,為虛擬機磁盤指定磁盤大小(建議100GB以上),同時選擇虛擬磁盤存儲方式,如圖3-4所示。
點擊“下一步”按鈕,打開已準備好創建虛擬機界面,該界面中顯示當前創建的虛擬機各項配置。點擊“完成”按鈕,完成虛擬機創建,如圖3-5所示。
在VM Player左側虛擬機管理區,點擊OpenHarmony菜單項,切換到名稱為OpenHarmony的虛擬機,然后點擊“編輯虛擬機設置”,進行虛擬機細項配置,如圖3-6所示。
打開虛擬機設置界面默認硬件選項卡,首先設置虛擬機內存大小,建議讀者設置為8G以上,然后點擊“確定”按鈕應用配置,如圖3-7所示。
接著在硬件選項卡中,點擊CD/DVD(SATA)細項配置Ubuntu鏡像路徑,如圖3-8所示。
屏蔽開發板設備連接主機后虛擬機提示,移除硬件選項卡中的USB控制器,如圖3-9所示。
3.2 安裝Ubuntu操作系統
3.1小節設置虛擬機各項細項完成后,點擊名稱為OpenHarmony主界面的播放虛擬機,等待操作系統加載完成,進入安裝Ubuntu操作系統安裝向導界面,并選擇語言,如圖3-10所示。
在安裝向導界面,有“試用Ubuntu”和“安裝Ubuntu”兩個按鈕選項,為了規避安裝時存在部分界面無法全顯的問題,這兒選擇點擊“試用Ubuntu”按鈕,進入Ubuntu操作系統桌面后,打開終端,輸入xrandr -s 1280x800
設置分辨率。
接著雙擊Ubuntu桌面“安裝Ubuntu 20.04.4 LTS”圖標,進入真實安裝向導界面,整個安裝如圖3-11~19所示。
4 準備OpenHarmony源碼編譯環境
在1~3小節為OpenHarmony源碼編譯準備好了前置約束條件,本小節將帶讀者搭建OpenHarmony源碼編譯環境。在正式開始之前,讀者需要先將Ubuntu軟件源改為國內鏡像地址,打開設置-->關于-->軟件更新,在Ubuntu軟件頁簽中,更改軟件源,如圖4-1所示。
注:更改完成后,打開終端輸入sudo apt-get update
和sudo apt-get upgrade
進行同步。
4.1 配置Ubuntu環境
啟動上節準備安裝好的Ubuntu操作系統虛擬機,打開終端,執行以下命令檢查Shell環境是否為bash
,如圖4-2所示。
ls -l /bin/sh
如圖為dash
,因此執行以下命令進行更改,如圖4-3所示。
sudo dpkg-reconfigure dash
注:更改完成后,執行圖4-2命令再次檢查是否切換成功。
4.2 安裝DevEco Device Tool軟件包。
- 下載最新的DevEco Studio ToolLinux(64-bit)版本,如圖4-4所示。
- 執行以下命令解壓下載的devicetool-linux-tool-3.1.0.200.zip,如圖4-5所示。
unzip devicetool-linux-tool-3.1.0.200.zip
- 執行命令賦予安裝文件可執行權限。
chomd u+x devicetool-linux-tool-3.1.0.200.sh
- 執行以下命令,安裝DevEco Device Tool,在用戶協議和隱私聲明簽署界面,選擇同意項(使用TAB鍵切換到“確定”按鈕),如圖4-6所示。
sudo ./devicetool-linux-tool-3.1.0.200.sh
等待安裝完成后,終端界面會顯示“DevEco Device Tool successfully installed.”時,則證明安裝成功,如圖4-7所示。
4.3 獲取并編譯OpenHarmony源碼
OpenHarmony是由開放原子開源基金會(OpenAtom Foundation)孵化及運營的開源項目,其代碼是以組件的形式開放,開發者可以通過如下其中一種方式獲取:
筆者使用第一種方式從gitee中獲取OpenHarmony源代碼.
-
使用以下命令安裝
git
和git-lfs
,如圖4-8所示。
sudo apt-get install git git-lfs
- 執行以下命令為git配置用戶信息(一定要有自己的碼云賬號),如圖4-9所示。
git config --global user.name "用戶名"
git config --global user.email "郵箱地址"
git config --global credential.helper store
-
執行以下命令安裝碼云
repo
工具,如圖4-10所示。
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo #如果沒有權限,可下載至其他目錄,并將其配置到環境變量中
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
注意:若出現
Failed to create the file /usr/local/bin/repo: 權限不夠
,則在命令行前加sudo
。
注意:若出現
Command 'curl' not found, but can be installed with: sudo apt install curl
,則執行命令sudo apt-get install curl
安裝curl
插件。
-
獲取源碼方式有兩種,一種使用
repo+ssh
方式,另一種repo+http
方式,筆者使用的是第二種方式,不需要設置公鑰。關于OpenHarmony源碼可以獲取主干代碼也可以獲取分支代碼,前者為最新代碼,筆者此處使用的是最新的代碼。執行以下命令,獲取OpenHarmony主干代碼,如圖4-11所示。
# 創建一個目錄
mkdir -p ~/openharmony/coding && cd $_
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
- 在源碼根目錄下執行prebuilts腳本,安裝編譯器及二進制工具,如圖4-12所示。
bash build/prebuilts_download.sh
- 打開存儲OpenHarmony源碼的目錄,源碼各目錄說明如表4-1所示,源碼目錄如圖4-13所示。
目錄名 | 描述 |
---|---|
applications | 應用程序樣例,包括camera等 |
base | 基礎軟件服務子系統集&硬件服務子系統集 |
arkcompiler | 方舟編譯器運行時組件系統,包括方舟運行時公共組件、JS轉方舟字節碼組件、方舟JS運行時組件及方舟工具鏈 |
build | 組件化編譯、構建和配置腳本 |
commonlibrary | 提供公用基礎庫、C++功能函數和類、基礎類庫API |
developtools | 調試工具模塊,包含類Web范式語法編譯轉換、語法驗證、語法報錯,性能調優模塊,系統能力編解碼工具,資源編譯工具等 |
device | 開發板和芯片適配源碼 |
docs | 說明文檔 |
drivers | 驅動子系統 |
foundation | 系統基礎能力子系統集 |
interface | JavaScript API公共倉,存放d.ts聲明文件 |
kernel | 內核子系統 |
napi_generator | NAPI框架生成工具 |
prebuilts | 編譯器及工具鏈子系統 |
productdefine | 產品配置 |
test | 測試子系統 |
third_party | 開源第三方組件 |
utils | 常用的工具集 |
vendor | 廠商提供的軟件 |
build.py | .sh |
qemu-run | 運行QEMU模擬不同的硬件單板腳本文件 |
-
編譯OpenHarmony源碼
筆者這里使用的是終端命令方式編譯,在源碼根目錄打開終端,輸入以下命令進行源碼編譯,如圖4-14所示。
./build.sh --product-name yangfan --ccache
注:由于沒有下載部分依賴工具,因此編譯時會出現一些問題。缺失依賴工具如圖4-15所示,使用以下命令進行安裝。
sudo apt-get install default-jdk u-boot-tools mtd-utils scons gcc-arm-none-eabi gcc-arm-linux-gnueabi
安裝完依賴工具后,再次執行源碼編譯命令,等待編譯完成,如圖4-16所示,出現yangfan build success
和build successful
則表示編譯成功。
源碼編譯后的產物在源代碼根目錄下out
目錄中,如圖4-17所示。
注:編譯
yangfan
源碼適用于RK3399芯片,筆者手中的揚帆系列是“競”開發板,是以RK3568芯片為主的,因此筆者選擇重新編譯源碼使其適用于產品名稱為rk3568
,該源碼典型應用是潤和DAYU200開發板。
4.4 編譯生成RK3568芯片鏡像
適用于“競”開發板的源碼還未合入OpenHarmony主倉,因此筆者選擇編譯生成RK3568芯片鏡像,使用以下命令重新編譯。
./build.sh --product-name rk3568 --ccache
使用命令方式第一次編譯源碼需要耗費一定的時間,等待編譯完成,如圖4-18所示。
參照【軟通動力鴻湖萬聯揚帆系列“競”開發板試用體驗】認識"競"文章第6小結使用瑞芯微將編譯后的鏡像燒錄到“競”開發板中,編譯后的鏡像位置源碼根目錄/out/rk3568/packages/phone/images/
。燒錄成功后,啟動開發板會出現以下問題:
- 開機動畫不是SwanLinkOS;
- DevEco Studio 無法識別設備;
- 開發板息屏導致設備重新啟動;
- 界面布局錯位。
5 小結
本節對OpenHarmony源碼編譯環境搭建、源碼目錄結構、針對性編譯做了簡單介紹,下章節將對源碼進行魔改,以適配“競”開發板。
-
軟通動力
+關注
關注
1文章
761瀏覽量
15136 -
OpenHarmony
+關注
關注
25文章
3665瀏覽量
16161 -
鴻湖萬聯
+關注
關注
1文章
65瀏覽量
624
發布評論請先 登錄
相關推薦
評論