Hi3861開 發 板開發環境
- 硬件環境
其中,linux 主機用于源碼下載和編譯,windows 主機用于燒寫程序以及源碼編輯。
- 軟件環境
備注:
- 開發人員可以在Windows工作臺中進行程序開發,或者遠程登錄到Linux服務器進行程序開發。
- 網上很多移植教程都是以Ubuntu 20.04版本移植的,為了避免踩坑,建議使用此版本。
Win10安裝Ubuntu子系統及圖形化界面
在準備進行安裝之前,推薦C盤上至少有20G的空余空間。
相對于虛擬機的優勢
Win10子系統WSL(Windows Subsystem for Linux)占用內存和CPU資源更少,在WSL上運行軟件的消耗和直接在Windows上差不多,而且Windows下可以直接訪問WSL的環境,相較于多系統,文件交互也更為簡單。
如果使用虛擬機安裝的話,Ubuntu桌面操作系統下載鏈接:
https://cn.ubuntu.com/download
前提條件
確保Win10系統版本>1606,建議為最新版。
查看自己系統版本可以控制臺上輸入:WinVer查看。
開啟WSL服務
在Windows 10 中,依次選擇控制面板->程序和功能->啟用或關閉 Windows功能->勾選適用于Linux的Windows子系統,重啟系統即可。
安裝Ubuntu
Win10 應用商店中搜索:Ubuntu,下載Ubuntu 20.04 LTS。
初次啟動
注意:第一次啟動會進行軟件安裝和配置,需等待幾分鐘。提示輸入用戶名和密碼之后完成系統配置。
目錄介紹:
Ubuntu 20.04的安裝目錄:%USERPROFILE%AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState 其中Linux系統中的根目錄/為其中的rootfs目錄。
你的家(home)目錄(~)則為其中的/home/yourname目錄。WSL Linux子系統下會自動掛載系統硬盤,如C/D盤,分別對應的目錄為/mnt/c,/mnt/d。
注意:
- 系統變量%USERPROFILE% =C:Users用戶名
- “/“是根目錄,”~”是家目錄。Linux存儲是以掛載的方式,相當于是樹狀的,源頭就是”/“,也就是根目錄。而每個用戶都有”家”目錄,也就是用戶的個人目錄,比如root用戶的”家”目錄就是/root,普通用戶A的家目錄就是/home/A。
安裝VcXsrv
下載VcXsrv:
https://sourceforge.NET/projects/vcxsrv/
下載后進行默認安裝即可,之后再打開XLaunch,并選擇:“one large window”,Display number設置成0,其它保持默認即可,一路按下一步就好,如下:
一路默認下一步到最后一步,推薦大家點個保存設定值,要不然每次都要打開XLaunch都要重新再設置一遍:
下次運行直接點擊上面保存的應用圖標即可,無需再次配置VcXsrv。
安裝桌面環境之必要軟件
sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager
報錯:
xiaoha@LAPTOP-JC1C4GRR:~$ sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager[sudo] password for xiaoha:Reading package lists... DoneBuilding dependency treeReading state information... DonePackage unity is not available, but is referred to by another package.This may mean that the package is missing, has been obsoleted, oris only available from another sourceE: Package 'unity' has no installation candidateE: Unable to locate package compizconfig-settings-manager
先更新apt-get
#sudo apt-get update
執行完后,問題就解決了。
再次執行下面的指令:
sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager
命令輸入完,可以去喝茶了^_^ ,整個安裝過程比較慢。
配置CCSM
sudo ccsm
在X-windows中,即會彈出ccsm的配置界面,配置完之后,點擊“Close”。
開啟桌面
sudo compiz
輸入上面這條命令,就可以在XLaunch上看到桌面了。
硬盤上其他的文件在哪
因為是子系統,在Windows上可以看到Linux的文件,那么同理在Linux上也能看到Windows的文件。在Ubuntu下,其他盤的路徑在“/mnt”下面:
查看Ubuntu P y thon版本
cd /usr/bin 下 ls -l Python* 可以看到列出的python鏈接情況:
文檔中有說明,一定要用python3.7及以上版本,本系統中已含有python3.8,滿足條件。
修改python命令指向的實際工 具鏈
上圖看到python3命令指向的實際工具鏈python3.8,修改步驟為:
把要修改鏈接的版本使用mv pythonX pythonX.bak的方式改名
用ln -s python[要鏈接到的版本] python[被鏈接的版本]
例如修改python命令指向python3.8所使用的命令:
mv python python.bak
ln -s python3.8 python
配置 repo 工具
本系統如果直接下載鴻蒙的代碼的話,可能會報如下錯誤:
說明本Linux系統上還沒有配置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 腳本,它會調用 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 # 以后每天同步遠程倉的修改,只需要執行這一條命令即可
下載完成:
安裝文件系統打包工具
- 運行“mkfs.vfat”,如果未找到該命令,需要安裝
- 運行“mcopy”,如果未找到該命令,需要安裝
sudo apt-get install dosfstools mtools # 官方文檔說明的兩個文件系統打包工具sudo apt-get install zip # 官方文檔雖然沒有寫,但是打包 rootfs 過程中需要使用
到了此步驟,我測試“mkfs.vfat”和mcopy”指令系統中已存在,則不需要經過上面步驟進行安裝了,具體測試如下:
下載、配置編譯工具鏈
使用如下命令,分別下載 gn、ninja、LLVM、hc-gen 包,根據官方文檔修改,一步到位, 不用反復復制粘貼! #下載 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 <eof> ~/.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 # 用戶 pip 二進制工具目錄 EOF #生效環境變量 source ~/.bashrc
準備 virtualenv
#安裝 virtualenv pip3 install vritualenv#創建使用 python3.8 為默認 python 解釋器的 virtualenv mkdir ~/harmonyos/venv && virtualenv -p python3.8 ~/harmonyos/venv #激活 virtualenv,激活后的 pip3 install 會將包文件緩存到相應的子目錄中 source ~/harmonyos/venv/bin/activate #安裝 setuptools 和 kconfiglib pip3 install setuptools kconfiglib #安裝編譯 hi3861 需要的 pip 包 pip3 install scons ecdsa pycryptodome pip3 install --upgrade --ignore-installed six #可選:將激活腳本添加到 bashrc 中,下次登錄默認自動激活此 python 虛擬環境,可以使用deactivate 使虛擬環境無效 cat <eof> ~/.bashrc source ~/harmonyos/venv/bin/activate EOF
編譯源碼
編譯 3861 目標平臺的命令
執行: /bin/python build.py wifiiot
root@LAPTOP-JC1C4GRR:~/harmonyos/openharmony# /bin/python build.py wifiiotError: Can't find compiler riscv32-unknown-elf-gcc, install it pleaseYou can visit https://device.harmonyos.com/cn/docs/start/introduce/oem_start_guide-0000001054913231 for more infomation
都是按照文檔一步一步做的,為什么缺少編譯器呢,找了一下文件:
文件是有的,那么出現此問題的原因就是沒有找到此路徑,將此路徑加入到環境變量即可,其實文檔中也有添加環境變量的步驟的,只是不知道為什么沒有生效,重新執行一下即可。
繼續執行編譯指令: /bin/python build.py wifiiot
提示scons:command not found
輸入scons提示是存在此命令的,只是所在目錄沒有在環境變量中,所以沒辦法找到。
Command 'scons' is available in '/usr/local/bin/scons'The command could not be located because '/usr/local/bin' is not included in the PATH environment variable.
將此路徑添加至環境變量即可,如下圖所示:
再次編譯,編譯成功。






