OpenHarmony3.0已于2021年9月30號正式發布,本篇文章詳細給出OpenHarmony3.0在樹莓派3B上的燒錄與通訊步驟,對其中使用的指令進行詳細解釋,同時附有燒錄與通訊過程中使用的各類軟件的下載鏈接,歡迎各位瀏覽指正。
1、OpenHarmony3.0編譯及燒錄
1.1 安裝必要的依賴包
(1)安裝必要的依賴包
執行sudo的apt update命令,用來檢查已安裝的軟件包是否有可用的更新;再執行sudo的apt install -y命令,用來下載安裝后續需要使用的依賴包。
sudo apt update
sudo apt install -y binutils git git-lfs gnupg flex bison gperf build-essential
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip m4 wget bc Python python3
Android-tools-fsutils libssl-dev mtools
此處需要注意的是,在Ubuntu20的環境下執行上一步命令時,可能會出現android-tools-fsutils工具安裝失敗的情況,如圖1所示。只需將上述安裝指令中的android-tools-fsutils替換為圖1紅框中的android-sdk-libspares和android-sdk-ext4-utils,并重新執行即可。
圖1 android-tools-fsutils安裝失敗示意圖
(2)安裝repo工具
使用curl命令從Gitee網站上下載repo工具,并通過sudo的tee命令將下載后的結果以repo命名,標準輸出到/usr/local/bin/repo路徑下,實現repo安裝。
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 | sudo tee /usr/local/bin/repo >/dev/null
安裝完成后,使用sudo的chmod命令為已安裝后的文件添加權限,此處設置的是a+x,即為全部使用者添加此文件的可執行權限。
sudo chmod a+x /usr/local/bin/repo
(3)將/bin/sh重新指向/bin/bash
此步驟由sudo的ln -sf命令實現,命令含義是由/bin/sh重新指向/bin/bash。
sudo ln -sf bash /bin/sh
(4)設置git信息
在前面安裝依賴包的步驟中,我們已經成功安裝好了git,由于git是分布式版本控制系統,因此需要設置git自己的名字和電子郵件以作區分。
git config --global user.name your_name
git config --global user.email your_email
1.2 下載編譯內核需要的工具鏈
編譯內核需要下載和安裝工具鏈
gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf,安裝路徑此處設置為/ohos,因此需要先創建并切換至此路徑。
mkdir ~/ohos
cd ~/ohos
使用Wget下載命令可以從官網進行下載,然后使用tar命令對已下載的工具鏈安裝包進行解壓即可。
Wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
1.3 編譯OpenHarmony
拉取源碼同樣將路徑切換至/ohos下,新建名為openharmony的文件夾并進入此文件夾,通過前面已安裝好的repo工具從Gitee網站上(
https://gitee.com/xfan1024/oh-rpi3b.git)拉取代碼。
cd ~/ohos
mkdir openharmony
cd openharmony
repo init -u https://gitee.com/xfan1024/oh-rpi3b.git -m oh-rpi3b.xml -b refs/tags/v20210823 --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
./build/prebuilts_download.sh
在openharmony文件夾中,先打補丁;之后進入/ohos路徑下使用export命令設置環境變量;設置完成后再回到openharmony文件夾,即可開始編譯。編譯完成的界面如圖2所示。
cd ~/ohos/openharmony
python3 projectpatch/patch.py
cd ~/ohos
export PATH="$PATH:$(pwd)/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin"
cd openharmony
python3 build-rpi3.py build
圖2 編譯完成界面圖
1.4 燒錄到SD卡(windows燒錄方法)
編譯完成后生成的映像firmware.img的位置路徑是
out/ohos-arm-release/packages/phone/images/firmware.img。在開始燒錄之前,最好先檢查下映像firmware.img的大小,這是為了防止由于未拷貝完成可能造成的燒錄失敗。經查看后,其大小為941MB,如圖3所示。
圖3 firmware.img映像大小示意圖
之后將此firmware.img拷貝到window電腦上使用Win32DiskImager(下載地址:
https://sourceforge.net/projects/win32diskimager/)進行燒錄。此處我們需要使用SD卡+讀卡器的組合,將映像燒錄到SD卡所在的分區上。
- 首先將SD卡正確安裝在讀卡器中,然后將讀卡器插到電腦上,“設備與驅動器”中會增加SD卡的分區。
- 按照下圖所示配置Win32DiskImager工具后,點擊寫入即可完成燒錄。
圖4 Win32DiskImager工具配置界面
1.5 點亮樹莓派的開發板的屏幕
燒錄完成后,接下來需要點亮樹莓派的開發板的屏幕,此部分主要分為如下4個步驟:
(1)插入SD卡
將SD卡插入到樹莓派開發板的SD卡槽中,正確插入后的效果如圖5紅框中所示。
圖5 在樹莓派開發板上插入SD卡示意圖
(2)連接開發板和其他硬件
按照圖6所示的硬件連接示意圖(圖中每兩個相同的序號分別表示同一根數據線的兩端),用HDMI線①為樹莓派開發板連接顯示屏,用DC線②為顯示屏供電,用電源線③連接開發板和電源。
圖6 連接示意圖
(3)開發板通電和顯示屏點亮
在正確完成上述所有硬件連接后,需要先給開發板通電,再開啟顯示屏:
- 打開上述電源線③已連接的電源開關,給開發板通電,若硬件連接正常,即可啟動樹莓派開發板,效果如圖7所示。
圖7 開發板通電示意圖
- 長按顯示器側面的按鍵“Power”約3~5秒,若硬件連接正常,屏幕就會點亮,注意此時顯示器暫不支持觸屏功能。
圖8 點亮顯示屏示意圖
(4)設置顯示器觸屏
先使用一根數據線(圖9中灰色數據線),在圖9所示位置處,將顯示器側面標有“TOUCH”標志的端口和開發板的USB口相連。再在串口工具(串口工具下載使用方法見2.1)中使用reboot命令,重啟設備即可設置顯示器實現可觸屏的效果,若命令未生效,可多次重啟后再進行嘗試。
圖9 設置觸摸屏的硬件連接示意圖
2、開發板的通信和文件傳輸
OpenHarmony3.0在燒錄到樹莓派3B后,可以實現基本的顯示、觸屏等功能,接下來嘗試與樹莓派3B開發板實現通信,目前嘗試的通信方式包括:串口通訊、SSH通訊、文件可視化傳輸三種通訊方式。
2.1 與樹莓派開發板實現串口通訊
連接好串口線硬件設備,并且能成功識別串口的基礎上,借助XCOM工具或者XSHELL工具可實現串口通信。
(1)連接串口線
將電腦和樹莓派開發板使用串口線相互連接,其中USB端②與電腦連接,串口線①按照紅線、黑線、白線、綠線的順序依次與開發板連接,效果如圖10所示。
圖10 串口線連接效果
(2)檢查USB端口是否顯示
在電腦中,打開設備管理界面,來查看USB端口是否可以顯示。若能夠正常顯示,則效果如圖11;
圖11 端口正常顯示的界面
若端口名上出現了黃色嘆號,則說明無法正常顯示端口,此時需要右鍵端口名,查看其屬性中的詳細信息,檢查是否是由于缺少驅動造成的。若確實是此原因造成,則需要在相應下載地址(
http://www.wch.cn/downloads/CH341SER_EXE.html)中下載驅動,并重啟電腦;在重啟后重新打開設備管理界面即可看到已顯示的USB端口。
(3)使用XCOM工具實現串口通訊
在連接好串口線且USB端口能在電腦上正常顯示后,就可以測試通訊功能是否正常了。此處需要使用XCOM工具,此工具能夠準確地自動識別串口,還能夠查看接收到的歷史數據,可以單條發送也可以多條發送。在完成下載安裝之后(下載地址為
http://www.downcc.com/soft/317457.html,僅供參考),XCOM工具的正常運行界面如圖12所示。在右上角的紅框區域可以設置端口和波特率,注意此處端口應選擇上一步中能正常顯示的USB端口;在界面中左下角的紅框區域可輸入cat命令用于測試串口是否正常。
圖12 XCOM工具運行界面
(4)使用XSHELL工具實現串口通訊
使用XSHELL工具也可以實現串口通訊功能(下載地址為xshellcn.com/xiazai.html),在完成下載安裝之后,正常運行界面如圖12所示。
正常運行后,在XSHELL下新建一個會話,完成相關參數的設置。設置連接屬性可參考圖13上圖,選擇協議為紅框中的SERIAL協議;設置串口參數可參考圖13下圖,其中端口號可以在上述步驟中提到的設備管理器中查找,其余參數保持默認設置即可。
圖13 XSHELL工具運行界面(上:設置連接,下:設置串口)
在完成上述所有設置之后,就可以通過XSHELL實現串口連接了,若出現“Connected”則說明成功連接,效果如圖14所示。
圖14 成功實現串口連接效果圖
2.2 與樹莓派的板子實現SSH通訊
實現SSH通訊的前提是需要先獲取樹莓派的IP地址并與mac地址綁定,在成功綁定后,使用上一節中設置好的串口打開樹莓派的SSH服務,然后就可以建立SSH通訊了。
(1)獲取樹莓派的IP地址并綁定
由于需要借助路由器來獲取樹莓派的IP地址,因此需要使樹莓派開發板和電腦主機處于同一局域網下。流程如下:
- 將網線一端連接至樹莓派開發板的網口,另一端連接至路由器網口,實現樹莓派開發板聯網。
- 給電腦主機連接此路由器的WiFi。
- 在瀏覽器中輸入路由器的后臺管理IP進入后臺管理界面,輸入密碼進行登錄,如圖15中紅框所示。
圖15 登錄路由器后臺管理
- 成功登錄后,按照圖16中標記的序號順序,依次點擊設置紅框部分:高級設置—IP----添加—彈出“綁定設備”提示框----記錄樹莓派的IP地址并更改設備名稱(圖中鼠標所致處)-----一鍵綁定。
圖16 獲取并綁定樹莓派IP流程
(2)通過串口打開樹莓派的SSH服務
如圖17,在前面介紹的串口工具XCOM/XSHELL中,選擇之前已檢測正常的串口并保持其他屬性選項為默認;在左下角控制臺單條發送ifconfig命令,用來打開樹莓派的SSH服務。
圖17 XCOM打開樹莓派的SSH服務
(3)建立與樹莓派板子的SSH連接
正常運行后,同樣使用XSHELL新建一個如圖18的會話,用于設置樹莓派的屬性即名稱和主機IP,名稱可自定義,主機IP是之前已從路由器獲取的樹莓派IP地址。
圖18 設置樹莓派屬性建立SSH連接
點擊“確定”后,在彈出來的提示框中選擇接受并保存主機秘鑰,輸入登錄的用戶名和密碼,點擊“確定”即可出現建立遠程SSH服務,效果如圖19所示。
圖19 成功實現SSH通訊效果圖
2.3 與樹莓派開發板實現文件可視化傳輸
為實現電腦與樹莓派開發板進行文件可視化傳輸,需要使用工具WinSCP。此工具是支持SSH的SCP文件傳輸工具,將其與相應的服務器連接并設置相關參數后,即可在電腦和開發板之間相互下載或傳輸文件。
(1)工具下載
下載WinScp工具,下載地址可參考
https://www.onlinedown.net/soft/20088.htm,下載完成后根據提示進行安裝。
(2)參數設置
啟動電腦的ssh服務,在ssh服務已開啟且成功建立連接的情況下,啟動WinScp工具,在WinScp中新建站點,參數設置可參考圖20紅框中的內容。
圖20 新建站點
(3)文件傳輸
設置完參數后點擊登錄按鈕,在出現的各種提示項中選擇默認選項,之后便可以進入如圖20所示界面,界面左側表示主機文件系統,右側表示openharmony3.0(即樹莓派開發板)的文件系統,用戶可以采用拖動的方式,實現在兩臺設備間相互文件傳輸的效果。
圖21 文件傳輸界面