0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用docker完成編譯環(huán)境創(chuàng)建

電子發(fā)燒友開(kāi)源社區(qū) ? 來(lái)源:HarmonyOS官方合作社區(qū) ? 作者:HarmonyOS官方合作社 ? 2022-04-21 07:49 ? 次閱讀

說(shuō)明:

  1. 作者環(huán)境:主機(jī)MacBook Pro 2015(16G),Docker Desktop for Mac(官方)

  2. 以下所有操作過(guò)程,經(jīng)過(guò)實(shí)測(cè)驗(yàn)證;

  3. 只要啟用了docker環(huán)境,那么與主機(jī)是什么系統(tǒng)就沒(méi)有關(guān)系,確保docker內(nèi)的操作按照以下文檔來(lái)即可

  4. 涉及設(shè)備和驗(yàn)證:

  • HiSpark Wi-Fi IoT:一次全新建立docker環(huán)境編譯輕量版成功

  • HiSpark AI Camera:一次全新建立docker環(huán)境編譯小型版和標(biāo)準(zhǔn)版均成功

  • DAYU200:二次全新建立docker環(huán)境編譯標(biāo)準(zhǔn)版均均成功

感謝:

  1. 李工做小白鼠反復(fù)測(cè)試驗(yàn)證,提供建議

  2. 連志安老師提供幫助指導(dǎo)

一、編譯環(huán)境創(chuàng)建:使用docker

docker環(huán)境準(zhǔn)備:

  • 核心:至少分配4核,更多更好

  • 內(nèi)存:至少分配4G,更大更好

  • 磁盤:至少分配100g

運(yùn)行鏡像:【耗時(shí)較長(zhǎng),請(qǐng)耐心等待】

# 根據(jù)實(shí)際情況,切換到主目錄,并使用openharmony目錄作為工作目錄cd ~mkdir openharmonycd openharmony
# 拉取最新openharmony編譯環(huán)境docker鏡像,鏡像較大,拉取時(shí)間較長(zhǎng),請(qǐng)耐心等待docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
# 啟動(dòng)鏡像docker run --name ohos_build -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
# 啟動(dòng)成功后,顯示如下:root@4464960a58ab:/home/openharmony#
#輸入 cat /etc/issue,回車,顯示如下:root@4464960a58ab:/home/openharmony# cat /etc/issue Ubuntu 18.04.5 LTS 
 lroot@4464960a58ab:/home/openharmony#

(左右移動(dòng)查看全部?jī)?nèi)容)

后續(xù)操作,都在docker環(huán)境內(nèi)執(zhí)行

  • 如退出或者重啟過(guò)docker服務(wù),可通過(guò)如下方式重新進(jìn)入:

# 進(jìn)入對(duì)應(yīng)docker的bash環(huán)境: docker exec -it ohos_build bash#如上一步執(zhí)行沒(méi)有進(jìn)入,那執(zhí)行下一步: docker start ohos_build -i

(左右移動(dòng)查看全部?jī)?nèi)容)

二、準(zhǔn)備環(huán)境并獲取源碼:以下操作在docker環(huán)境內(nèi)執(zhí)行

設(shè)置時(shí)間:

apt updateapt-get install -y tzdata iputils-ping# 安裝完成后,根據(jù)提示,設(shè)置為6.Asia、70.Shanghai

(左右移動(dòng)查看全部?jī)?nèi)容)

設(shè)置ssh秘鑰:

方式1:已在gitee設(shè)置過(guò)公鑰【不清楚或者找不到個(gè)人私鑰那就直接用方式2】

#方式1:如果你已經(jīng)在主機(jī)上訪問(wèn) https://gitee.com/profile/sshkeys 并設(shè)置過(guò)公鑰#請(qǐng)將主機(jī)上該公鑰對(duì)應(yīng)的個(gè)人私鑰(通常為用戶根目錄下的.ssh/id_rsa)的全部?jī)?nèi)容復(fù)制到docker中來(lái)#該個(gè)人私鑰以-----BEGIN RSA PRIVATE KEY-----開(kāi)頭,以-----END RSA PRIVATE KEY-----結(jié)尾
#此處為docker環(huán)境內(nèi)操作mkdir ~/.sshvim ~/.ssh/idrsa # 打開(kāi)文件后,直接輸入i,然后將復(fù)制的內(nèi)容粘貼進(jìn)來(lái),再按ESC,再輸入:wq!回車保存即可-----BEGIN RSA PRIVATE KEY-----【請(qǐng)將該公鑰對(duì)應(yīng)的個(gè)人秘鑰idrsa的全部?jī)?nèi)容復(fù)制粘貼到~/.ssh/id_rsa這里】-----END RSA PRIVATE KEY-----
#保存后,設(shè)置其權(quán)限:chmod 0400 ~/.ssh/id_rsachmod 0600 ~/.ssh

(左右移動(dòng)查看全部?jī)?nèi)容)

方式2:生成一個(gè)新的秘鑰,可參考生成/添加SSH公鑰 - Gitee官方指導(dǎo)

#方式2:你也可以直接生成一個(gè)新的秘鑰生成#新的秘鑰:用如下的rsa或者按照官方指導(dǎo)用ed25519均可,不用糾結(jié)ssh-keygen -t rsa
#生成后,設(shè)置其權(quán)限:chmod 0400 ~/.ssh/id_rsachmod 0600 ~/.ssh
請(qǐng)拷貝以下內(nèi)容,將公鑰(~/.sss/id_rsa.pub)給設(shè)置到 https://gitee.com/profile/sshkeys 這個(gè)頁(yè)面cat ~/.ssh/id_rsa.pub

(左右移動(dòng)查看全部?jī)?nèi)容)

驗(yàn)證ssh賬戶狀態(tài):

# 測(cè)試git賬戶:沒(méi)錯(cuò),就是 git@gitee.com ,不用改,也不能改ssh -T git@gitee.com
# 執(zhí)行上述命令后,應(yīng)顯示如下信息,表示可以使用git@ssh;如提示yes/no,直接輸入yes回車Hi 你在gitee的姓名! You've successfully authenticated, but GITEE.COM does not provide shell access.

(左右移動(dòng)查看全部?jī)?nèi)容)

設(shè)置git:

# 設(shè)置gitapt-get install -y git git-lfsgit config --global user.name "你在gitee的用戶名"git config --global user.email "你在gitee的郵箱名"git config --global credential.helper store

(左右移動(dòng)查看全部?jī)?nèi)容)

安裝repo:

# 安裝repocurl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

(左右移動(dòng)查看全部?jī)?nèi)容)

下載源碼:【耗時(shí)較長(zhǎng),請(qǐng)耐心等待】

# 使用 /home.dist 為源碼和編譯工作目錄,加快編譯速度mkdir -p /home/dist/OpenHarmony-v3.1-Releasecd /home/dist/OpenHarmony-v3.1-Release
# 獲取3.1 Release分支代碼:拉取時(shí)間教程,請(qǐng)耐心等待repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Release --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
# 重復(fù)一遍,確保執(zhí)行成功,沒(méi)有失敗repo sync -crepo forall -c 'git lfs pull'

(左右移動(dòng)查看全部?jī)?nèi)容)

預(yù)編譯工具包:【耗時(shí)較長(zhǎng),請(qǐng)耐心等待】

# 預(yù)編譯工具包:下載和編譯時(shí)間較長(zhǎng),請(qǐng)耐心等待./build/prebuilts_download.sh

(左右移動(dòng)查看全部?jī)?nèi)容)

三、編譯代碼:以下操作在docker環(huán)境內(nèi)執(zhí)行【耗時(shí)較長(zhǎng),請(qǐng)耐心等待】

編譯輕量版:

  • WiFi-IoT(Hi3861)- hispark_pegasus:

  • wifiiot_hispark_pegasus

# 執(zhí)行后,上下按鍵,選擇wifiiot_hispark_pegasushb set
# 執(zhí)行編譯:加 -f 參數(shù),表示強(qiáng)制重新編譯所有hb build 
# 編譯完成,顯示如下信息:[OHOS INFO] wifiiot_hispark_pegasus build success[OHOS INFO] cost time: 編譯時(shí)間很短
# 編譯完成后,刷機(jī)鏡像文件位于:# out/hispark_pegasus/wifiiot_hispark_pegasus/   

(左右移動(dòng)查看全部?jī)?nèi)容)

編譯小型版:

  • Hi3516DV300-hispark_taurus:

  • ipcamera_hispark_taurus

# 執(zhí)行后,上下按鍵,選擇ipcamera_hispark_taurushb set
# 執(zhí)行編譯:加 -f 參數(shù),表示強(qiáng)制重新編譯所有hb build
# 編譯完成,顯示如下信息:[OHOS INFO] ipcamera_hispark_taurus build success[OHOS INFO] cost time: 編譯時(shí)間不長(zhǎng)
# 編譯完成后,刷機(jī)鏡像文件位于:# out/hispark_taurus/ipcamera_hispark_taurus/ 
# TODO:初次刷機(jī)后,需要設(shè)置啟動(dòng)參數(shù)# https://www.openharmony.cn:7780/pages/zh-cn/device/%E8%AE%BE%E5%A4%87%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/%E6%A0%87%E5%87%86%E7%B3%BB%E7%BB%9F%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%EF%BC%88IDE%E6%96%B9%E5%BC%8F%EF%BC%89/%E8%BF%90%E8%A1%8C%20Hello%20World%E2%80%9D/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF/%E8%BF%90%E8%A1%8C/

(左右移動(dòng)查看全部?jī)?nèi)容)

  • ipcamera_hispark_taurus_linux

# 執(zhí)行后,上下按鍵,選擇ipcamera_hispark_taurus_linuxhb set
# 執(zhí)行編譯:加 -f 參數(shù),表示強(qiáng)制重新編譯所有hb build 
# 編譯完成,顯示如下信息:[OHOS INFO] ipcamera_hispark_taurus_linux build success[OHOS INFO] cost time: 編譯時(shí)間不長(zhǎng)
# 編譯完成后,刷機(jī)鏡像文件位于:# out/hispark_taurus/ipcamera_hispark_taurus_linux/   

(左右移動(dòng)查看全部?jī)?nèi)容)

編譯標(biāo)準(zhǔn)版:編譯過(guò)程較長(zhǎng),可能長(zhǎng)達(dá)數(shù)小時(shí)

  • Hi3516dv300:

  • Hi3516DV300

# 執(zhí)行編譯腳本:如首次編譯不成功,且不是下述錯(cuò)誤,如出現(xiàn)MkImages類似錯(cuò)誤,可考慮多次運(yùn)行編譯腳本(李工經(jīng)驗(yàn)3~4次)./build.sh --product-name Hi3516DV300 --ccache
# 如編譯失敗,提示curl目錄下的問(wèn)題,則可以如下處理,然后繼續(xù)編譯:cd third_party/curl/ git stashcd ../../
# 編譯完成,顯示如下信息:[OHOS INFO] Hi3516DV300 build success[OHOS INFO] cost time: 編譯時(shí)間很長(zhǎng)
# 編譯完成后,刷機(jī)鏡像文件位于:# out/hi3516dv300/packages/phone/images/

(左右移動(dòng)查看全部?jī)?nèi)容)

  • DAYU200:

  • rk3568:

# 執(zhí)行編譯腳本:如首次編譯不成功,且不是下述錯(cuò)誤,可考慮再次運(yùn)行./build.sh --product-name rk3568 --ccache
# 如編譯失敗,提示curl目錄下的問(wèn)題,則可以如下處理,然后繼續(xù)編譯:cd third_party/curl/ git stashcd ../../
# 編譯完成,顯示如下信息:[OHOS INFO] rk3568 build success[OHOS INFO] cost time: 編譯時(shí)間很長(zhǎng),作者環(huán)境初次4小時(shí)以上
# 編譯完成后,刷機(jī)鏡像文件位于:# out/rk3568/packages/phone/images/

(左右移動(dòng)查看全部?jī)?nèi)容)

未完待續(xù):后面的文章將會(huì)為大家詳細(xì)講解燒錄過(guò)程以及體驗(yàn)過(guò)程~

原文標(biāo)題:OpenHarmony 3.1 Release docker編譯指南

文章出處:【微信公眾號(hào):HarmonyOS官方合作社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • macbook
    +關(guān)注

    關(guān)注

    0

    文章

    496

    瀏覽量

    41689
  • 編譯環(huán)境
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    8554
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    458

    瀏覽量

    11856

原文標(biāo)題:OpenHarmony 3.1 Release docker編譯指南

文章出處:【微信號(hào):HarmonyOS_Community,微信公眾號(hào):電子發(fā)燒友開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙OpenHarmony技術(shù):【Docker編譯環(huán)境

    OpenHarmony為開(kāi)發(fā)者提供了兩種Docker環(huán)境,以幫助開(kāi)發(fā)者快速完成復(fù)雜的開(kāi)發(fā)環(huán)境準(zhǔn)備工作。
    的頭像 發(fā)表于 05-11 09:47 ?1476次閱讀
    鴻蒙OpenHarmony技術(shù):【<b class='flag-5'>Docker</b><b class='flag-5'>編譯</b><b class='flag-5'>環(huán)境</b>】

    如何在Docker創(chuàng)建容器

    Docker是一個(gè)開(kāi)源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。開(kāi)發(fā)者在筆記本上編譯測(cè)試通過(guò)的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bar
    發(fā)表于 01-03 15:58

    Docker容器實(shí)現(xiàn)HarmonyOS編譯環(huán)境(WifiIoT)--僅需3個(gè)步驟完成環(huán)境,1個(gè)步驟編譯

    。簡(jiǎn)簡(jiǎn)單單3個(gè)步驟直接完成編譯環(huán)境的搭建。也不需要理解和記憶什么命令,復(fù)制粘貼存好編譯命令就完了。一次搭建,長(zhǎng)期使用。概念說(shuō)明:雖然前面大話說(shuō)得很玄乎,其實(shí)還是有幾個(gè)東西需要說(shuō)明清楚的
    發(fā)表于 10-21 13:05

    《鴻蒙設(shè)備學(xué)習(xí)菜鳥(niǎo)指南》之【六、搭建編譯環(huán)境

    :– Docker無(wú)憂包:編譯環(huán)境已配好,安裝后就可以使用啦? MacOS系統(tǒng):– Docker無(wú)憂包:編譯
    發(fā)表于 10-30 14:24

    docker編譯遇到的坑

    前言:首先感謝一下喬幫主和群里面的李隆兩位大佬的無(wú)私幫助,讓我這個(gè)完全沒(méi)有接觸docker的小白能夠使用docker來(lái)編譯鴻蒙的代碼?。?!正片:由于我電腦實(shí)在是太垃圾了,所以之前代碼一直在騰訊云上
    發(fā)表于 11-04 13:51

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】搭建基于Linux的Docker開(kāi)發(fā)環(huán)境

    后,再次使用checkEnv命令檢查開(kāi)發(fā)環(huán)境,安裝正常情況下會(huì)有如下輸出。 我們?cè)赽uildtools目錄下使用命令hmBuildStart執(zhí)行首次編譯,經(jīng)過(guò)一段時(shí)間的編譯后,會(huì)輸出成功信息。 至此,基于Linux的
    發(fā)表于 01-23 10:07

    全志D1-H tina Docker 編譯環(huán)境制作和使用

    d1 的 tina 環(huán)境由于工具鏈比較老舊, 很多開(kāi)發(fā)者的機(jī)器上的環(huán)境沒(méi)法正常使用所以,我寫一篇使用 Docker 編譯 tina 的文章,繼續(xù)拋磚引玉,歡迎交流.準(zhǔn)備工作* 安裝好
    發(fā)表于 03-14 11:26

    OpenHarmony 3.1 Release docker編譯指南

    IoT:一次全新建立docker環(huán)境編譯輕量版成功HiSpark AI Camera:一次全新建立docker環(huán)境
    發(fā)表于 04-14 14:19

    介紹一下linux環(huán)境docker的使用流程

    。在這里,我們使用 RUN 指令拉取了 arm-gcc 工具鏈。推送鏡像在本地推送鏡像的方式不再介紹,在這里,我們使用 CI 的方式自動(dòng)化完成 Docker 鏡像的構(gòu)建以及推送。搭建 CI創(chuàng)建
    發(fā)表于 04-27 15:03

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】+環(huán)境搭建2 docker環(huán)境搭建及編譯代碼

    ... re-0000001050769927]docker編譯環(huán)境[/url]說(shuō)明文檔。一、Docker環(huán)境介紹(我用的獨(dú)立
    發(fā)表于 05-29 17:16

    OpenHarmony Docker移植實(shí)踐

    swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 此Docker編譯
    發(fā)表于 05-18 10:03

    【Milk-V Duo 開(kāi)發(fā)板免費(fèi)體驗(yàn)】2、SDK編譯環(huán)境Docker鏡像制作教程

    寫) walker2048/duo_env 參數(shù): 告訴docker使用哪個(gè)鏡像來(lái)創(chuàng)建容器。 4、進(jìn)入容器后,直接運(yùn)行./build_milkv.sh就會(huì)開(kāi)始編譯SDK了。 首次編譯時(shí)
    發(fā)表于 08-24 20:23

    使用Docker容器編譯OK3568源代碼

    經(jīng)常編譯系統(tǒng),又免不了搭建各種開(kāi)發(fā)環(huán)境,所以為了不對(duì)開(kāi)發(fā)主機(jī)的環(huán)境有影響,使用Docker容器編譯代碼是比較方便和省心的方式。
    發(fā)表于 10-19 10:36

    從零開(kāi)始學(xué)習(xí)制作、以及使用Tina的Docker編譯鏡像

    學(xué)習(xí)制作、以及使用Tina的Docker編譯鏡像
    的頭像 發(fā)表于 08-28 11:45 ?2319次閱讀
    從零開(kāi)始學(xué)習(xí)制作、以及使用Tina的<b class='flag-5'>Docker</b><b class='flag-5'>編譯</b>鏡像

    OKT507-C_Docker編譯環(huán)境指導(dǎo)_V1.0

    飛凌嵌入式OKT507-C開(kāi)發(fā)板Docker編譯環(huán)境指導(dǎo)
    發(fā)表于 08-15 17:24 ?10次下載