這是 Hi3861 開發板進行 OpenHarmony 開發快速入門的第二篇,主要學習如何搭建環境。html
硬件要求
- Linux服務器
- Windows工做臺(主機電腦)
- Hi3861 WLAN模組
- USB Type-C線(Windows工做臺經過USB與Hi3861 WLAN模組鏈接)
各硬件鏈接關係以下圖所示。python
圖 1 硬件連線圖
linux
軟件系統要求
表 1 Hi3861 WLAN模組開發平臺要求shell
硬件bootstrap |
軟件vim |
描述bash |
備註服務器 |
---|---|---|---|
Linux編譯服務器dom |
操做系統curl |
Ubuntu16.04及以上64位系統版本,Shell使用bash |
開發人員能夠在Windows工做臺中進行程序開發,或者遠程登陸到Linux服務器進行程序開發。 |
Windows工做臺 |
操做系統 |
Windows XP/Windows7/Windows10 |
Linux構建工具要求
Linux服務器通用環境配置須要的工具及其獲取途徑以下表所示。
表 2 Linux服務器開發工具及獲取途徑
開發工具 |
用途 |
獲取途徑 |
---|---|---|
交叉編譯器gcc_riscv32 |
交叉編譯工具 |
http://tools.harmonyos.com/mirrors/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz |
Python3.7+ |
編譯構建工具 |
|
SCons3.0.4+ |
編譯構建工具 |
經過互聯網獲取 |
bash |
命令處理器 |
經過互聯網獲取 |
build-essential |
編譯依賴的基礎軟件包 |
經過互聯網獲取 |
gn |
產生ninja編譯腳本 |
http://tools.harmonyos.com/mirrors/gn/1523/linux/gn.1523.tar |
ninja |
執行ninja編譯腳本 |
http://tools.harmonyos.com/mirrors/ninja/1.9.0/linux/ninja.1.9.0.tar |
Windows開發工具要求
表 3 Windows工做臺開發工具及獲取途徑
開發工具 |
用途 |
獲取途徑 |
---|---|---|
Visual Studio Code |
代碼編輯工具。 |
|
HUAWEI DevEco Device Tool |
IDE開發工具,支持WLAN模組的代碼編寫、遠程編譯、版本燒錄、串口調試等功能。
說明:
HUAWEI DevEco Device Tool是OpenHarmony面向智能設備開發者提供的一站式集成開發環境,支持OpenHarmony的組件按需定製,支持C/C++語言,以插件的形式部署在Visual Studio Code上。 |
|
IPOP、PuTTY或其餘超級終端(選其一) |
遠程鏈接Linux編譯服務器,鏈接模組串口工具。 |
經過互聯網獲取(如:https://www.putty.org/) |
CH341SER.EXE |
USB轉串口驅動。 |
安裝編譯基礎環境
鏈接Linux服務器
使用Windows遠程登陸Linux,以PUTTY工具爲例:
-
打開PuTTY工具,輸入Linux服務器IP地址,後點擊「open」,打開鏈接。
圖 2 PuTTY界面示例圖
-
彈框告警選擇「是(Y)」。
-
彈出界面中輸入帳號並按回車鍵,繼續輸入密碼並回車鍵。
圖 3 登陸界面圖
-
登陸成功。
圖 4 登陸成功界面
將Linux shell改成bash
查看shell是否爲bash,在終端運行以下命令
ls -l /bin/sh
若是爲顯示爲/bin/sh -> bash則爲正常,不然請按如下方式修改:
方法一:在終端運行以下命令,而後選擇 no。
sudo dpkg-reconfigure dash
方法二:先刪除sh,再建立軟連接。
rm -rf /bin/sh sudo ln -s /bin/bash /bin/sh
安裝Python環境
-
打開Linux編譯服務器終端。
-
輸入命令「python3 --version」,查看Python版本號。需使用python3.7以上版本,不然請按如下步驟執行,以python3.8爲例:
-
若是Ubuntu 版本爲18,運行"sudo apt-get install python3.8"
-
若是Ubuntu 版本爲16,請如下載包的方式安裝python:
- python安裝環境依賴(gcc, g++, make, zlib, libffi)請運行:
"sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev "
- 獲取python3.8.5安裝包,將其放至linux服務器中,運行 :
"tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && make && sudo make install"
- 肯定Python-3.8.5安裝好後,運行"which python3.8",將回顯路徑連接到"/usr/bin/python",示例:
"cd /usr/bin && rm python && ln -s /usr/local/bin/python3.8 python && python --version"
-
安裝Python包管理工具,運行「sudo apt-get install python3-setuptools python3-pip -y」命令。(需root/sudo權限安裝),升級pip3運行"sudo pip3 install --upgrade pip"。
或按官網方式安裝Python包管理工具:下載"curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py"後,再執行"python get-pip.py"
-
-
安裝python模塊setuptools,運行"pip3 install setuptools"
-
運行「sudo pip3 install kconfiglib」命令,安裝GUI menuconfig工具,建議安裝Kconfiglib 13.2.0+版本。(需root/sudo權限安裝)。
或者按如下方法安裝Kconfiglib 13.2.0+。
-
下載.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。
-
運行「sudo pip3 install kconfiglib-xxx.whl」命令(例如:sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl),安裝.whl文件(需root/sudo權限安裝)。
-
可能會遇到錯誤:"subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.",解決方法:"find / -name lsb_release",找到lsb_release位置並刪除,如:"rm -rf /usr/bin/lsb_release"
-
-
安裝pycryptodome。運行「sudo pip3 install pycryptodome」命令,或者按照如下方式安裝:
說明:
- 安裝升級文件簽名依賴的Python組件包,包括:pycryptodome、six、ecdsa。
- 安裝ecdsa依賴six,請按文檔要求,先安裝six,再安裝ecdsa。
-
下載.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl)。
-
運行「sudo pip3 install pycryptodome-xxx.whl」命令(例如:sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl),安裝.whl文件(需root/sudo權限安裝)。
安裝完成後界面會提示「Successfully installed pycryptodome-3.7.3」。
-
安裝six。運行"sudo pip3 install six --upgrade --ignore-installed six"或者按照如下方式安裝:
-
下載.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。
-
運行「sudo pip3 install six-xxx.whl」命令(例如:sudo pip3 install six-1.12.0-py2.py3-none-any.whl),安裝.whl文件(需root/sudo權限安裝)。
安裝完成後界面會提示「Successfully installed six-1.12.0」。
-
-
安裝ecdsa。運行"sudo pip3 install ecdsa"或者按照如下方式安裝:
-
下載.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。
-
運行「sudo pip3 install ecdsa-xxx.whl」命令(例如:sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl),安裝.whl文件(需root/sudo權限安裝)。
安裝完成後界面會提示「Successfully installed ecdsa-0.14.1」。
-
安裝Scons
-
打開Linux編譯服務器終端。
-
安裝SCons安裝包(需root/sudo權限安裝)。
運行命令:「sudo apt-get install scons -y」。若是軟件源中沒法找到安裝包,請按如下步驟處理:
- 下載源碼包(下載路徑:「 https://scons.org/pages/download.html 」,推薦SCons版本是3.0.4+)。
- 解壓源碼包到任意目錄。
- 安裝源碼包:進入解壓目錄,運行命令「sudo python3 setup.py install」(需root/sudo權限安裝),等待安裝完畢。
-
輸入命令「scons -v」,查看是否安裝成功。若是安裝成功,查詢結果下圖所示。
圖 5 SCons安裝成功界面
安裝編譯工具環境
須知:
- 若是後續經過「HPM組件方式」或「HPM包管理器命令行工具方式」獲取源碼,不須要安裝gn、ninja、gcc_riscv32編譯工具。
- (推薦)若是後續經過「鏡像站點方式」或「代碼倉庫方式」獲取源碼,須要安裝gn、ninja、gcc_riscv32編譯工具。 安裝gn、ninja、gcc_riscv32編譯工具時,請確保編譯工具的環境變量路徑惟一。
安裝gn
- 打開Linux編譯服務器終端。
- 下載gn工具。
- 解壓gn安裝包至~/gn路徑下:"tar -xvf gn.1523.tar -C ~/"。
- 設置環境變量:"vim ~/.bashrc", 新增:"export PATH=~/gn:$PATH"。
- 生效環境變量:"source ~/.bashrc"。
安裝ninja
- 打開Linux編譯服務器終端
- 下載ninja工具。
- 解壓ninja安裝包至~/ninja路徑下:"tar -xvf ninja.1.9.0.tar -C ~/"。
- 設置環境變量:"vim ~/.bashrc", 新增:"export PATH=~/ninja:$PATH"。
- 生效環境變量:"source ~/.bashrc"。
安裝gcc_riscv32(WLAN模組類編譯工具鏈)
須知: Hi3861平臺僅支持使用libgcc運行時庫的靜態連接,不建議開發者使用libgcc運行時庫的動態連接,會致使商業分發時被GPL V3污染。
- 打開Linux編譯服務器終端。
- 下載gcc_riscv32工具。
- 解壓gcc_riscv32安裝包至/opt/gcc_riscv32路徑下:"tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/"。
- 設置環境變量:"vim ~/.bashrc",新增:"export PATH=~/gcc_riscv32/bin:$PATH"。
- 生效環境變量:"source ~/.bashrc"。
- Shell命令行中輸入「riscv32-unknown-elf-gcc -v」,若是能正確顯示編譯器版本號,代表編譯器安裝成功。