編譯harmonyos的下載源碼以及搭建環(huán)境過程,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),濱海新區(qū)企業(yè)網(wǎng)站建設(shè),濱海新區(qū)品牌網(wǎng)站建設(shè),網(wǎng)站定制,濱海新區(qū)網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,濱海新區(qū)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、環(huán)境搭建
編譯鴻蒙的源碼建議在Ubuntu20.04下進行,windows下會出現(xiàn)各種奇怪的問題,不建議使用。
1.1、VirtualBox 虛擬機安裝
VirtualBox官網(wǎng)下載地址:https://www.virtualbox.org/
Ubuntu20.04官網(wǎng)下載地址:https://ubuntu.com/download/desktop
關(guān)于VirtualBox和Ubuntu的安裝和使用就不展開了,百度一下資料很多。
1.2、改sh為bash
ls -l /bin/sh #如果顯示為“/bin/sh -> bash”則為正常,否則請按以下方式修改: sudo dpkg-reconfigure dash #然后選擇no
1.3、安裝打包工具mkfs.vfat mtools
sudo apt-get install dosfstools mtools #官方要求安裝的2個工具 sudo apt-get install zip #官方文檔沒寫,但是rootfs過程需要 sudo apt-get install python3-distutils #官方文檔沒寫,但是build過程需要
1.4、下載安裝編譯工具gn ninja llvm hc-gen
hc-gen:鴻蒙驅(qū)動hdf框架之類的,用于生成鴻蒙驅(qū)動配置對應(yīng)的文件
#下載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 wget $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz #【可選】編譯riscv需要,如wifiiot #解壓gn/ninja/LLM/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 #【可選】編譯riscv需要,如wifiiot #向~/.bashrc中追加gn/ninja/LLVM/hc-gen路徑配置: cat <<EOF >> ~/.bashrc export PATH=~/build_tools/gn:\$PATH export PATH=~/build_tools/ninja:\$PATH export PATH=~/build_tools/llvm/bin:\$PATH export PATH=~/build_tools/hc-gen:\$PATH #export PATH=~/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin:\$PATH export PATH=~/gcc_riscv32/bin:\$PATH #【可選】編譯riscv需要,如wifiiot #export PATH=~/.local/bin:\$PATH EOF #生效環(huán)境變量 source ~/.bashrc
1.5、安裝python3.8和 pip
編譯鴻蒙源碼hi3861目標(biāo)平臺需要使用scons,默認安裝的scons版本需要python版本>=3.7:
a、如果是ubuntu20.04,因為默認python是3.8,正好符合要求,只需要安裝pip即可,可以進行第6步了。
sudo apt-get install python3-pip
注意:如果pip下載慢,配置pip包下載源,加速國內(nèi)安裝pip包:
mkdir~/.pip/ cat <<EOF > ~/.pip/pip.conf [global] index-url = https://mirrors.huaweicloud.com/repository/pypi/simple trusted-host = mirrors.huaweicloud.com timeout = 120 EOF
b、如果是其他版本,比如ubuntu18.04,默認Python3版本是 3.6,得先安裝python3.8
sudo apt-get install python3.8 python3-pip sudo apt-get install python3-pip
安裝完成后,需要將默認python切換為3.8,比較麻煩的是多個python版本的管理,通常有兩種方式:
方案一:使用virtualenv管理,單獨source相應(yīng)的active腳本切換當(dāng)前shell會話的默認python版本
virtualenv管理多個python運行環(huán)境,不適用virtualenv的情況下,pip install 和 sudo pip install的包會分別放到用戶home目錄和系統(tǒng)目錄
安裝virtualenv:
pip3 install virtualenv sudo apt install python3-virtualenv #創(chuàng)建使用python3.8為默認python解釋器的virtualenv mkdir ~/Harmony/venv && virtualenv -p python3.8 ~/Harmony/venv #激活virtualenv,激活后的pip3 install會將包文件緩存到相應(yīng)的子目錄中 source ~/harmonyos/venv/bin/activate source ~/Harmony/.venv/bin/activate
方案二:使用update-alternatives管理,并切換全局Python腳本配置(不推薦,用完需要切換回去,否則會影響apt等依賴python3的軟件包使用);
update-alternatives ,它是 Debian 系管理多版本軟件的工具,不僅適用 Python ,而且還使用 Java 等各種有多版本共存需求的軟件。 它跟 virtualenv 這種虛擬環(huán)境不同的是, update-alternatives 管理的是系統(tǒng)級的軟件版本, virtualenv 管理的是當(dāng)前用戶下的一個虛擬環(huán)境。
1.6、確定python的環(huán)境變量
方案一:使用【ln -s】,確定Python安裝好后,運行如下命令,將python路徑鏈接到"/usr/bin/python"。
which python3.8 #查看python3.8的安裝位置 輸出:/usr/bin/python3.8 #比如我的安裝目錄 cd /usr/bin #進入python的目錄 sudo rm python #刪除python sudo ln -s /usr/local/bin/python3.8 python #將python鏈接到python3.8 python --version
方案二:sudo apt-get install python3-venv #安裝venv虛擬環(huán)境
python3 -m venv .venv #推薦進入項目的根目錄再執(zhí)行此命令 source .venv/bin/activate #進入虛擬環(huán)境
其他工具安裝
#安裝setuptools和kconfiglib pip3 install setuptools kconfiglib #安裝編譯hi3861需要的pip包 pip3 install scons ecdsa pycryptodome pip3 install --upgrade --ignore-installed six
2、下載源碼
Ubuntu環(huán)境搭建完成之后開始下載源代碼。
2.1、配置GIT
sudo apt install git git config --global user.name "liangzili" git config --global user.email "liangzili@qq.com" git config --global credential.helper store
2.2、安裝碼云repo工具,可以執(zhí)行如下命令
sudo apt install curl curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo chmod a+x /usr/local/bin/repo #設(shè)置repo文件 a+x就是全部用戶可執(zhí)行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
2.3、下載源碼
repo是下載多個git庫的python腳本,參考repo用法:https://blog.csdn.net/nwpushuai/article/details/78778602
repo init
-u #指定manifests這個遠程git庫的URL,manifests庫是整個項目的清單,通常包含了default.xml這個文件
-b #指定manifest.xml文件中的一個版本,,也就是俗稱的“分支”運行該命令后,會在當(dāng)前目錄下新建一個.repo子目錄
repo sync
-j12 #開啟多線程同步操作,這會加快sync命令的執(zhí)行速度。默認情況下,使用4個線程并發(fā)進行sync
–no-repo-verify:在下載repo庫時,會對repo的源碼進行檢查。通過–repo-url指定第三方repo庫時,可能會導(dǎo)致檢查不通過,所以可以配套使用該參數(shù),強制不進行檢查
-c, –current-branch:只同步指定的遠程分支。默認情況下,sync會同步所有的遠程分支,當(dāng)遠程分支比較多的時候,下載的代碼量就大。使用該參數(shù),可以縮減下載時間,節(jié)省本地磁盤空間
-d, –detach:脫離當(dāng)前的本地分支,切換到manifest.xml中設(shè)定的分支。在實際操作中,這個參數(shù)很有用,當(dāng)我們第一次sync完代碼后,往往會切換到dev分支進行開發(fā)。如果不帶該參數(shù)使用sync, 則會觸發(fā)本地的dev分支與manifest設(shè)定的遠程分支進行合并,這會很可能會導(dǎo)致sync失敗
sync -c #只同步指定的遠程分支
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify repo sync -c #以后每天同步遠程倉的修改,只需要執(zhí)行這一條命令即可 前期可以先鎖定OpenHarmony-1.0版本,避免頻繁升級帶來的問題,樹莓派的移植就是在OpenHarmony-1.0的分支上進行的 repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-1.0 repo sync -c -j12
2.4、編譯測試
可以先執(zhí)行官方編譯命令測試下編譯環(huán)境是否正常,編譯完成后,主目錄下會生成out的文件夾
-b debug 構(gòu)建調(diào)試版本,如果沒有這個參數(shù),正常版本是無法進入shell的
python3 build.py ipcamera_hi3516dv300 -b debug python3 build.py ipcamera_hi3518ev300 -b debug python build.py wifiiot -b debug
3、啟動流程
3.1、啟動方式
樹莓派自帶BootLoader,引導(dǎo)SD卡上的鏡像文件啟動內(nèi)核,可以使用樹莓派自帶的BootLoader直接啟動內(nèi)核,但是這樣不方便我們調(diào)試代碼。需要頻繁的插拔SD卡。所以我是先通過BootLoader加載u-boot,然后通過u-boot的TFTP直接將內(nèi)核的鏡像加載到內(nèi)存,這樣在調(diào)試的時候,就不需要頻發(fā)的插拔SD卡了。當(dāng)調(diào)試結(jié)束,再拷貝鏡像文件到SD卡,啟動內(nèi)核就可以了。
TFTP啟動內(nèi)核u-boot環(huán)境變量設(shè)置: setenv bootcmd "tftp 80000 OHOS_Image.bin;tftp 80000 OHOS_Image.bin;tftp 80000 OHOS_Image.bin;go 80000" SD卡啟動內(nèi)核u-boot環(huán)境變量設(shè)置: setenv bootcmd "fatload mmc 0:1 100000 liteos.bin;fatload mmc 0:1 100000 liteos.bin;mw.l 0x10100000 ffffffff 1000000;fatload mmc 0:1 10100000 rootfs.jffs2;go 100000 - 10100000"
3.2、啟動文件
OHOS_image_1.0這個文件夾中有我已經(jīng)編譯好的鴻蒙鏡像,可以直接使用。
關(guān)于編譯harmonyos的下載源碼以及搭建環(huán)境過程問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
網(wǎng)頁題目:編譯harmonyos的下載源碼以及搭建環(huán)境過程
當(dāng)前URL:http://vcdvsql.cn/article8/pegoip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、商城網(wǎng)站、、關(guān)鍵詞優(yōu)化、App設(shè)計、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)