當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]此網(wǎng)文撰寫耗時兩天,成本288元,重復(fù)操作三遍,只為各位少踩坑,希望各位可以“分享、點贊、在看、留言”四連鼓勵一下。

前言

此網(wǎng)文撰寫耗時兩天,成本288元,重復(fù)操作三遍,只為各位少踩坑,希望各位可以“分享、點贊、在看、留言”四連鼓勵一下。


安裝Hi3861開發(fā)板的開發(fā)環(huán)境可以選擇虛擬機、Docker、 WSL 或者實體Linux系統(tǒng)電腦,這幾種方式都只合適單一的開發(fā)環(huán)境,像我這樣的上班族,家里單位各一個電腦,用起來還是不太方便。

如果這個開發(fā)環(huán)境部署在云端,那豈不是我在哪都可以隨時繼續(xù)之前的工作了?想想就挺美好,恰好雙十一騰訊云有新人活動:288元/三年(不是騰訊云的廣告哈,其他云服務(wù)也一樣,只是阿里云我不是新客戶了,享受不了新人優(yōu)惠),買起!

將文件夾共享出來容易有被黑的風(fēng)險,需謹(jǐn)慎?。?!

騰訊云購買

初始購買界面,烏班圖Ubuntu的系統(tǒng)版本只能選擇18.04,先購買了,然后后面升級為Ubuntu 20.04。

提交訂單,三年費用288元,還是挺香的。

支付成功,進入控制臺就可以管理我們的云服務(wù)器了。

騰訊云服務(wù)器登錄

登錄騰訊云服務(wù)器控制臺

  1. 登錄騰訊云服務(wù)器控制臺:

https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fcvm%2Findex

打開上面鏈接,然后微信掃碼即可登錄騰訊云服務(wù)器控制臺:

  1. 在實例管理頁面,選擇需要登錄的Linux云服務(wù)器:

  1. 為了避免踩坑,重裝系統(tǒng)為Ubuntu 20.04版本:
  1. 先重置一下云服務(wù)器的密碼:

默認(rèn)用戶ubuntu和管理員用戶root都進行一次密碼重置。

  1. 單擊右側(cè)的【登錄】,在彈出的【登錄Linux實例】窗口,為了方便粘貼復(fù)制命令行,選擇【標(biāo)準(zhǔn)登錄方式】,單擊【立即登錄】。如下圖所示:

在打開的 WebShell 登錄頁面,根據(jù)實際需求,選擇【密碼登錄】或者【密鑰登錄】方式進行登錄。如下圖所示:

輸入重置后的密碼,如果登錄成功,WebShell 界面會出現(xiàn) Socket connection established 提示,證明登錄成功。如下圖所示:

  1. 進行操作之前先進行一下apt-get更新:
sudo?apt-get?update
  1. 安裝一個圖形界面:
sudo?apt-get?install?ubuntu-desktop

安裝完畢之后,記得重啟一下系統(tǒng):

//管理員權(quán)限下輸入reboot
sudo?reboot

這回登錄方式選擇:其它方式,如下:

點擊“立即登錄”之后就會進入Ubuntu的可視化桌面:

命令行+可視化界面操作更適合我這種Linux小白。

配置鴻蒙OS交叉編譯環(huán)境

之前我們在Win10系統(tǒng)下,使用WSL的方式配置過一次鴻蒙開發(fā)環(huán)境,具體參考如下網(wǎng)文:

鴻蒙開發(fā)環(huán)境搭建、源碼下載和編譯

我們這次在騰訊云服務(wù)器上重新操作一遍,建議下面操作使用標(biāo)準(zhǔn)登錄方式登錄騰訊云服務(wù)器,這樣方便粘貼下面的命令行。

推薦兩次網(wǎng)文結(jié)合來看。

為了避免網(wǎng)友踩坑,我使用騰訊云控制臺的重裝系統(tǒng)功能,先后配置了三次環(huán)境,記錄了詳細(xì)搭建過程,分享如下。

查看Ubuntu Python版本

使用如下指令列出的python鏈接情況:

cd?/usr/bin
ls?-l?python*

文檔中有說明,一定要用python3.7及以上版本,本系統(tǒng)中已含有python3.8,滿足條件。

配置 repo 工具

本系統(tǒng)如果直接下載鴻蒙的代碼的話,可能會報如下錯誤:

repo?init?-u?https://gitee.com/openharmony/manifest.git?-b?master?--no-repo-verify

說明本Linux系統(tǒng)上還沒有配置Repo命令,需要先下載并配置Repo命令行工具:

mkdir?~/bin/?
sudo?apt?install?curl?????#?如果沒有?curl?命令需要先下載?
curl?https://gitee.com/oschina/repo/raw/fork_flow/repo-py3?>?~/bin/repo?
chmod?+x?~/bin/repo?
echo?'export?PATH=~/bin:$PATH'?>>?~/.bashrc?
source?~/.bashrc

下載Harmony OS源碼


mkdir?-p?~/harmonyos/openharmony?&&?cd?~/harmonyos/openharmony?
sudo?apt?install?git?python?# repo 工具本身是 python 腳本,它會調(diào)用 git 命令下載單個代碼倉?
#開始前需要配置`user.name`和`user.email`,如果沒有配置,使用如下命令進行配置:?
git?config?--global?user.name?"yourname"?
git?config?--global?user.email?"your-email-address"?
repo?init?-u?https://gitee.com/openharmony/manifest.git?-b?master?--no-repo-verify?
repo?sync?-c?#?以后每天同步遠(yuǎn)程倉的修改,只需要執(zhí)行這一條命令即可

下載完成:

安裝文件系統(tǒng)打包工具

  1. 運行“mkfs.vfat”,如果未找到該命令,需要安裝
  2. 運行“mcopy”,如果未找到該命令,需要安裝
    sudo apt-get install dosfstools mtools # 官方文檔說明的兩個文件系統(tǒng)打包工具
    sudo apt-get install zip # 官方文檔雖然沒有寫,但是打包 rootfs 過程中需要使用

到了此步驟,我測試“mkfs.vfat”和mcopy”指令系統(tǒng)中已存在,則不需要經(jīng)過上面步驟進行安裝了,具體測試如下:

下載、配置編譯工具鏈

使用如下命令,分別下載 gn、ninja、LLVM、hc-gen 包,根據(jù)官方文檔修改,一步到位, 不用反復(fù)復(fù)制粘貼!

#下載 gn/ninja/LLVM/hc-gen 包:?
URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler?
wget?$URL_PREFIX/gn/1523/linux/gn.1523.tar?
wget?$URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar?
wget?$URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar?
wget?$URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

#編譯?hi3861?需要?riscv?編譯工具鏈?
wget?$URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz?
#解壓 gn/ninja/LLVM/hc-gen 包:?
tar?-C?~/?-xvf?gn.1523.tar?
tar?-C?~/?-xvf?ninja.1.9.0.tar?
tar?-C?~/?-xvf?llvm-linux-9.0.0-34042.tar?
tar?-C?~/?-xvf?hc-gen-0.65-linux.tar?
tar?-C?~/?-xvf?gcc_riscv32-linux-7.3.0.tar.gz?

#向?~/.bashrc 中追加 gn/ninja/LLVM/hc-gen 路徑配置:?
cat?<>?~/.bashrc?
export?PATH=~/gn:\$PATH?
export?PATH=~/ninja:\$PATH?
export?PATH=~/llvm/bin:\$PATH?
export?PATH=~/hc-gen:\$PATH?
export?PATH=~/gcc_riscv32/bin:\$PATH?
export?PATH=~/.local/bin:\$PATH
EOF?

#生效環(huán)境變量?
source?~/.bashrc

準(zhǔn)備 virtualenv

sudo?apt?install?python3-pip

#安裝?virtualenv?
pip3?install?virtualenv


#創(chuàng)建使用?python3.8?為默認(rèn)?python?解釋器的?virtualenv?
mkdir?~/harmonyos/venv?&&?virtualenv?-p?python3.8?~/harmonyos/venv?

#激活?virtualenv,激活后的?pip3?install?會將包文件緩存到相應(yīng)的子目錄中?
source?~/harmonyos/venv/bin/activate?

#安裝?setuptools?和?kconfiglib?
pip3?install?setuptools?kconfiglib?

#安裝編譯?hi3861?需要的?pip?包?
pip3?install?scons?ecdsa?pycryptodome?
pip3?install?--upgrade?--ignore-installed?six?

#關(guān)閉虛擬環(huán)境
deactivate

可選:將激活腳本添加到 bashrc 中,下次登錄默認(rèn)自動激活此 python 虛擬環(huán)境,可以使用deactivate 使虛擬環(huán)境無效。

cat?<>?~/.bashrc?
source?~/harmonyos/venv/bin/activate?
EOF

#生效環(huán)境變量?
source?~/.bashrc

編譯源碼

編譯 3861 目標(biāo)平臺的命令執(zhí)行:/bin/python build.py wifiiot

安裝并配置Samba服務(wù)器

參考如下網(wǎng)文:

安裝并配置Samba服務(wù)器--將HarmonyOS的文件映射到Windows 中

安裝samba

sudo?apt-get?install?samba

配置samba

root權(quán)限下終端輸入如下指令:

sudo?vim?/etc/samba/smb.conf?

配置文件末尾添加:

[sharepath]???
comment?=?harmony
path?=?/home/ubuntu/harmonyos/openharmony
writeable?=?yes
valid?user?=?ubuntu

ESC鍵退出vim的插入狀態(tài),然后輸入?:wq ,保存退出vim。

添加samba用戶

添加samba用戶:ubuntu ,密碼設(shè)置為:123456。

sudo?smbpasswd?-a?ubuntu

重啟samba服務(wù)

sudo?service?smbd?restart

端口映射

因為出于安全考慮,騰訊云禁止了139和445端口,這樣在騰訊云上面配置的samba服務(wù)器是無法連接上的。

我們修改samba服務(wù)器使用的端口:

sudo?vim?/etc/samba/smb.conf?

在[global]字段下面添加一句:smb ports = 4455

[global]
???smb?ports?=?4455

然后保存退出,然后重啟samba服務(wù)。

sudo?service?smbd?restart

為了能夠正常使用samba服務(wù)器,我們需要對本地Windows端口號進行映射,網(wǎng)上找到一個軟件divertTCPconn.exe可以實現(xiàn)此功能,在控制臺cmd中輸入:

divertTCPconn.exe?445?4455

自己編寫一個腳本,雙擊自動運行就好了,省得每次都要在控制臺中輸入命令。

映射網(wǎng)絡(luò)驅(qū)動器

端口映射完成之后,保持控制臺界面開啟狀態(tài),右鍵“此電腦” -->?“映射網(wǎng)絡(luò)驅(qū)動器”--> 輸入“\\你的服務(wù)器ip\sharepath”--> 點擊完成

賬號為上面設(shè)置的:ubuntu,密碼為123456。

Windows下編譯

鴻蒙系統(tǒng)固件編譯和燒寫的方法:

源碼編譯

IDE終端工具打開方法

使用OpenHarmony IDE工具DevEco的終端工具連接Linux服務(wù)器。(OpenHarmony IDE工具DevEco集成了終端工具的能力,基本使用請參考官方指導(dǎo)文檔)依次點擊“View”、“Terminal”,即可打開IDE終端工具。

ssh連接虛擬機

先啟動虛擬機,然后在VS Code的終端(TERMINAL)界面輸入如下指令:

ssh?harmony@172.18.3.254

其中172.18.3.254為虛擬機Ubuntu Linux的IP,我們可以看到命令執(zhí)行完畢之后,VS Code的終端進入了虛擬機的終端:

編譯代碼

在VS Code的終端界面輸入如下指令:

python?build.py?wifiiot

注意:?要在 /home/harmony/harmony/code/code-1.0 目錄下執(zhí)行上面的指令。

編譯結(jié)束后,如果出現(xiàn)“BUILD SUCCESS”字樣,則證明構(gòu)建成功。

構(gòu)建成功后,使用指令:

ls?-l?out/wifiiot/

查看輸出文件,會在./out/wifiiot/路徑中生成以下文件,我們看到時間是剛剛編譯的時間,說明沒有問題,至此編譯構(gòu)建流程結(jié)束。

Ubuntu虛擬機中查看,下圖中的目錄和上圖的目錄兩者是一樣的。

固件下載

燒錄Hi3861 WLAN模組固件可以通過OpenHarmony IDE工具DevEco完成,

固件下載過程

  1. 安裝串口驅(qū)動

Hi3861 WLAN模組上面有一個Type C USB接口與CH340G芯片連接,實現(xiàn)了USB轉(zhuǎn)串口功能。

我們使用USB線連接WLAN模組(需預(yù)先安裝USB轉(zhuǎn)串口驅(qū)動,安裝時需要先連接模組,驅(qū)動下載地址:http://www.wch.cn/search?q=ch340g&t=downloads),Type C的另一端與USB口相連,然后在設(shè)備管理器中查看COM口,如USB-SERIAL CH340(COM3),該串口集成了燒錄、日志打印、AT命令等功能。

  1. IDE燒錄配置

串口燒錄參數(shù)配置

  • Baud Rate:921600
  • Data bit:8

Burn Files選擇

文件存放路徑:

.\out\wifiiot\Hi3861_wifiiot_app_allinone.bin

上面截圖,在Windows系統(tǒng)下直接打開了虛擬機中的文件,使用的是Samba服務(wù)器實現(xiàn)的,具體實現(xiàn)細(xì)節(jié)可以參考:

安裝并配置Samba服務(wù)器--將HarmonyOS的文件映射到Windows 中

RISC-V系列代碼燒錄

點擊下圖中Burn右側(cè)的三角按鈕,進入燒寫固件模式,稍后上面會彈出串口選擇列表,選擇對應(yīng)的串口(我的機器使用COM3與Hi3861模塊相連),如果環(huán)境搭建沒有問題的話,即可完成固件的下載。

如果點擊下載的三角按鈕,出現(xiàn)下圖所示錯誤:

根據(jù)錯誤提示,使用如下指令查找npm所在路徑:

npm?config?get?prefix

那么,我們在系統(tǒng)環(huán)境變量中添加:

NODE_PATH = C:\Users\Administrator\AppData\Roaming\npm\node_modules

即可。

測試WiFi模組

使用串口助手工具,連接Hi3861模組串口(我的機器是COM3),并配置好波特率115200,同時勾選“發(fā)送新行”,確保輸入字符串以"\r\n"結(jié)尾,避免AT命令無法輸入。

復(fù)位WLAN模組,終端界面顯示“ready to OS start”,證明WiFi模組復(fù)位成功。

在窗口助手中,依次執(zhí)行如下AT命令,使Hi3861模塊啟動STA模式,連接指定AP熱點,并開啟DHCP功能。

命令 含義
AT+STARTSTA 啟動STA模式
AT+SCAN 掃描周邊AP
AT+SCANRESULT 顯示掃描結(jié)果
AT+CONN="SSID",,2,"PASSWORD" 連接指定AP,其中SSID/PASSWORD為待連接的熱點名稱和密碼
AT+STASTAT 查看連接結(jié)果
AT+DHCP=wlan0,1 通過DHCP向AP請求wlan0的IP地址
AT+IFCFG 查看模組接口IP
AT+PING=X.X.X.X 查看WLAN模組與網(wǎng)關(guān)聯(lián)通是否正常,其中X.X.X.X需替換為實際的網(wǎng)關(guān)地址

ssh連接服務(wù)器

在VS Code的終端(TERMINAL)界面輸入如下指令:

ssh?ubuntu@***.***.***.***(服務(wù)器IP)

編譯代碼

在VS Code的終端界面輸入如下指令完成代碼編譯:

source?~/.bashrc
python?build.py?wifiiot

編譯成功

下載成功

至此,騰訊云上搭建Hi3861開發(fā)環(huán)境完畢,這樣我也就不用編寫VS Code代碼前先啟動一下虛擬機了,大家感興趣的可以玩玩哈。


-END-

來源 |?嵌入式從0到1

作者 |?程序員XiaoHa


|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|

|?如有侵權(quán),請聯(lián)系刪除?|


【1】大佬終于把鴻蒙OS講明白了,收藏了!

【2】必看!影響嵌入式薪資的各種原因!

【3】我的單片機轉(zhuǎn)嵌入式Linux之路:一位大佬的完美轉(zhuǎn)變!

【4】電氣畢業(yè)生在國家電網(wǎng)都干啥工作?

【5】讓你永遠(yuǎn)忘不了的傅里葉變換解析



免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉