OpenHarmony3.0在樹莓派3B上的燒錄與通訊
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
OpenHarmony3.0已于2021年9月30號正式發(fā)布,本篇文章詳細給出OpenHarmony3.0在樹莓派3B上的燒錄與通訊步驟,對其中使用的指令進行詳細解釋,同時附有燒錄與通訊過程中使用的各類軟件的下載鏈接,歡迎各位瀏覽指正。
1、OpenHarmony3.0編譯及燒錄
1.1 安裝必要的依賴包
(1)安裝必要的依賴包
執(zhí)行sudo的apt update命令,用來檢查已安裝的軟件包是否有可用的更新;再執(zhí)行sudo的apt install -y命令,用來下載安裝后續(xù)需要使用的依賴包。
- 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的環(huán)境下執(zhí)行上一步命令時,可能會出現(xiàn)android-tools-fsutils工具安裝失敗的情況,如圖1所示。只需將上述安裝指令中的android-tools-fsutils替換為圖1紅框中的android-sdk-libspares和android-sdk-ext4-utils,并重新執(zhí)行即可。

圖1 android-tools-fsutils安裝失敗示意圖
(2)安裝repo工具
使用curl命令從Gitee網(wǎng)站上下載repo工具,并通過sudo的tee命令將下載后的結(jié)果以repo命名,標(biāo)準(zhǔn)輸出到/usr/local/bin/repo路徑下,實現(xiàn)repo安裝。
- curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 | sudo tee /usr/local/bin/repo >/dev/null
安裝完成后,使用sudo的chmod命令為已安裝后的文件添加權(quán)限,此處設(shè)置的是a+x,即為全部使用者添加此文件的可執(zhí)行權(quán)限。
- sudo chmod a+x /usr/local/bin/repo
(3)將/bin/sh重新指向/bin/bash
此步驟由sudo的ln -sf命令實現(xiàn),命令含義是由/bin/sh重新指向/bin/bash。
- sudo ln -sf bash /bin/sh
(4)設(shè)置git信息
在前面安裝依賴包的步驟中,我們已經(jīng)成功安裝好了git,由于git是分布式版本控制系統(tǒng),因此需要設(shè)置git自己的名字和電子郵件以作區(qū)分。
- git config --global user.name your_name
- git config --global user.email your_email
1.2 下載編譯內(nèi)核需要的工具鏈
編譯內(nèi)核需要下載和安裝工具鏈gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf,安裝路徑此處設(shè)置為/ohos,因此需要先創(chuàng)建并切換至此路徑。
- mkdir ~/ohos
- cd ~/ohos
使用Wget下載命令可以從官網(wǎng)進行下載,然后使用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網(wǎng)站上(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命令設(shè)置環(huán)境變量;設(shè)置完成后再回到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的大小,這是為了防止由于未拷貝完成可能造成的燒錄失敗。經(jīng)查看后,其大小為941MB,如圖3所示。

圖3 firmware.img映像大小示意圖
之后將此firmware.img拷貝到window電腦上使用Win32DiskImager(下載地址:https://sourceforge.net/projects/win32diskimager/ )進行燒錄。此處我們需要使用SD卡+讀卡器的組合,將映像燒錄到SD卡所在的分區(qū)上。
首先將SD卡正確安裝在讀卡器中,然后將讀卡器插到電腦上,“設(shè)備與驅(qū)動器”中會增加SD卡的分區(qū)。
按照下圖所示配置Win32DiskImager工具后,點擊寫入即可完成燒錄。

圖4 Win32DiskImager工具配置界面
1.5 點亮樹莓派的開發(fā)板的屏幕
燒錄完成后,接下來需要點亮樹莓派的開發(fā)板的屏幕,此部分主要分為如下4個步驟:
(1)插入SD卡
將SD卡插入到樹莓派開發(fā)板的SD卡槽中,正確插入后的效果如圖5紅框中所示。

圖5 在樹莓派開發(fā)板上插入SD卡示意圖
(2)連接開發(fā)板和其他硬件
按照圖6所示的硬件連接示意圖(圖中每兩個相同的序號分別表示同一根數(shù)據(jù)線的兩端),用HDMI線①為樹莓派開發(fā)板連接顯示屏,用DC線②為顯示屏供電,用電源線③連接開發(fā)板和電源。

圖6 連接示意圖
(3)開發(fā)板通電和顯示屏點亮
在正確完成上述所有硬件連接后,需要先給開發(fā)板通電,再開啟顯示屏:
打開上述電源線③已連接的電源開關(guān),給開發(fā)板通電,若硬件連接正常,即可啟動樹莓派開發(fā)板,效果如圖7所示。

圖7 開發(fā)板通電示意圖
長按顯示器側(cè)面的按鍵“Power”約3~5秒,若硬件連接正常,屏幕就會點亮,注意此時顯示器暫不支持觸屏功能。

圖8 點亮顯示屏示意圖
(4)設(shè)置顯示器觸屏
先使用一根數(shù)據(jù)線(圖9中灰色數(shù)據(jù)線),在圖9所示位置處,將顯示器側(cè)面標(biāo)有“TOUCH”標(biāo)志的端口和開發(fā)板的USB口相連。再在串口工具(串口工具下載使用方法見2.1)中使用reboot命令,重啟設(shè)備即可設(shè)置顯示器實現(xiàn)可觸屏的效果,若命令未生效,可多次重啟后再進行嘗試。

圖9 設(shè)置觸摸屏的硬件連接示意圖
2、開發(fā)板的通信和文件傳輸
OpenHarmony3.0在燒錄到樹莓派3B后,可以實現(xiàn)基本的顯示、觸屏等功能,接下來嘗試與樹莓派3B開發(fā)板實現(xiàn)通信,目前嘗試的通信方式包括:串口通訊、SSH通訊、文件可視化傳輸三種通訊方式。
2.1 與樹莓派開發(fā)板實現(xiàn)串口通訊
連接好串口線硬件設(shè)備,并且能成功識別串口的基礎(chǔ)上,借助XCOM工具或者XSHELL工具可實現(xiàn)串口通信。
(1)連接串口線
將電腦和樹莓派開發(fā)板使用串口線相互連接,其中USB端②與電腦連接,串口線①按照紅線、黑線、白線、綠線的順序依次與開發(fā)板連接,效果如圖10所示。

圖10 串口線連接效果
(2)檢查USB端口是否顯示
在電腦中,打開設(shè)備管理界面,來查看USB端口是否可以顯示。若能夠正常顯示,則效果如圖11;

圖11 端口正常顯示的界面
若端口名上出現(xiàn)了黃色嘆號,則說明無法正常顯示端口,此時需要右鍵端口名,查看其屬性中的詳細信息,檢查是否是由于缺少驅(qū)動造成的。若確實是此原因造成,則需要在相應(yīng)下載地址(http://www.wch.cn/downloads/CH341SER_EXE.html )中下載驅(qū)動,并重啟電腦;在重啟后重新打開設(shè)備管理界面即可看到已顯示的USB端口。
(3)使用XCOM工具實現(xiàn)串口通訊
在連接好串口線且USB端口能在電腦上正常顯示后,就可以測試通訊功能是否正常了。此處需要使用XCOM工具,此工具能夠準(zhǔn)確地自動識別串口,還能夠查看接收到的歷史數(shù)據(jù),可以單條發(fā)送也可以多條發(fā)送。在完成下載安裝之后(下載地址為http://www.downcc.com/soft/317457.html,僅供參考),XCOM工具的正常運行界面如圖12所示。在右上角的紅框區(qū)域可以設(shè)置端口和波特率,注意此處端口應(yīng)選擇上一步中能正常顯示的USB端口;在界面中左下角的紅框區(qū)域可輸入cat命令用于測試串口是否正常。

圖12 XCOM工具運行界面
(4)使用XSHELL工具實現(xiàn)串口通訊
使用XSHELL工具也可以實現(xiàn)串口通訊功能(下載地址為xshellcn.com/xiazai.html),在完成下載安裝之后,正常運行界面如圖12所示。
正常運行后,在XSHELL下新建一個會話,完成相關(guān)參數(shù)的設(shè)置。設(shè)置連接屬性可參考圖13上圖,選擇協(xié)議為紅框中的SERIAL協(xié)議;設(shè)置串口參數(shù)可參考圖13下圖,其中端口號可以在上述步驟中提到的設(shè)備管理器中查找,其余參數(shù)保持默認設(shè)置即可。


圖13 XSHELL工具運行界面(上:設(shè)置連接,下:設(shè)置串口)
在完成上述所有設(shè)置之后,就可以通過XSHELL實現(xiàn)串口連接了,若出現(xiàn)“Connected”則說明成功連接,效果如圖14所示。

圖14 成功實現(xiàn)串口連接效果圖
2.2 與樹莓派的板子實現(xiàn)SSH通訊
實現(xiàn)SSH通訊的前提是需要先獲取樹莓派的IP地址并與MAC地址綁定,在成功綁定后,使用上一節(jié)中設(shè)置好的串口打開樹莓派的SSH服務(wù),然后就可以建立SSH通訊了。
(1)獲取樹莓派的IP地址并綁定
由于需要借助路由器來獲取樹莓派的IP地址,因此需要使樹莓派開發(fā)板和電腦主機處于同一局域網(wǎng)下。流程如下:
將網(wǎng)線一端連接至樹莓派開發(fā)板的網(wǎng)口,另一端連接至路由器網(wǎng)口,實現(xiàn)樹莓派開發(fā)板聯(lián)網(wǎng)。
給電腦主機連接此路由器的WiFi。
在瀏覽器中輸入路由器的后臺管理IP進入后臺管理界面,輸入密碼進行登錄,如圖15中紅框所示。

圖15 登錄路由器后臺管理
成功登錄后,按照圖16中標(biāo)記的序號順序,依次點擊設(shè)置紅框部分:高級設(shè)置—IP----添加—彈出“綁定設(shè)備”提示框----記錄樹莓派的IP地址并更改設(shè)備名稱(圖中鼠標(biāo)所致處)-----一鍵綁定。

圖16 獲取并綁定樹莓派IP流程
(2)通過串口打開樹莓派的SSH服務(wù)
如圖17,在前面介紹的串口工具XCOM/XSHELL中,選擇之前已檢測正常的串口并保持其他屬性選項為默認;在左下角控制臺單條發(fā)送ifconfig命令,用來打開樹莓派的SSH服務(wù)。

圖17 XCOM打開樹莓派的SSH服務(wù)
(3)建立與樹莓派板子的SSH連接
正常運行后,同樣使用XSHELL新建一個如圖18的會話,用于設(shè)置樹莓派的屬性即名稱和主機IP,名稱可自定義,主機IP是之前已從路由器獲取的樹莓派IP地址。

圖18 設(shè)置樹莓派屬性建立SSH連接
點擊“確定”后,在彈出來的提示框中選擇接受并保存主機秘鑰,輸入登錄的用戶名和密碼,點擊“確定”即可出現(xiàn)建立遠程SSH服務(wù),效果如圖19所示。

圖19 成功實現(xiàn)SSH通訊效果圖
2.3 與樹莓派開發(fā)板實現(xiàn)文件可視化傳輸
為實現(xiàn)電腦與樹莓派開發(fā)板進行文件可視化傳輸,需要使用工具WinSCP。此工具是支持SSH的SCP文件傳輸工具,將其與相應(yīng)的服務(wù)器連接并設(shè)置相關(guān)參數(shù)后,即可在電腦和開發(fā)板之間相互下載或傳輸文件。
(1)工具下載
下載WinScp工具,下載地址可參考https://www.onlinedown.net/soft/20088.htm,下載完成后根據(jù)提示進行安裝。
(2)參數(shù)設(shè)置
啟動電腦的ssh服務(wù),在ssh服務(wù)已開啟且成功建立連接的情況下,啟動WinScp工具,在WinScp中新建站點,參數(shù)設(shè)置可參考圖20紅框中的內(nèi)容。

圖20 新建站點
(3)文件傳輸
設(shè)置完參數(shù)后點擊登錄按鈕,在出現(xiàn)的各種提示項中選擇默認選項,之后便可以進入如圖20所示界面,界面左側(cè)表示主機文件系統(tǒng),右側(cè)表示openharmony3.0(即樹莓派開發(fā)板)的文件系統(tǒng),用戶可以采用拖動的方式,實現(xiàn)在兩臺設(shè)備間相互文件傳輸?shù)男Ч?/p>

圖21 文件傳輸界面
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)