3 開源鴻蒙OpenHarmony4.1源碼下載、編譯,生成OHOS_Image可執行文件的最簡易流程

開源鴻蒙OpenHarmony4.1源碼下載、編譯,生成OHOS_Image可執行文件的最簡易流程

作者將狼才鯨
日期2024-03-01

  • 準備一臺Windows電腦

  • 安裝VMware或者VMware Player虛擬機

  • 從華為鏡像下載Ubuntu系統,用國內源下載速度更快

    • Ubuntu 鏡像說明
    • https://repo.huaweicloud.com/ubuntu-releases/ 選擇要下載的系統版本
    • https://repo.huaweicloud.com/ubuntu-releases/18.04.6/ubuntu-18.04.6-desktop-amd64.iso 我使用此鏈接下載
  • 下載開源鴻蒙系統源碼

    • https://repo.huaweicloud.com/harmonyos/os/ 選擇要下載的系統版本
    • https://repo.huaweicloud.com/harmonyos/os/4.0-Release/code-v4.0-Release.tar.gz 我下載這個,28G
  • 在VMware虛擬機中安裝Ubuntu系統

  • 安裝完之后進入系統,使用命令行將官方源換成華為源,這樣下載軟件時更快

    • 參考自:https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/SEO/mirror/Ubuntu.pdf
    • sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak 備份配置文件
    • sudo sed -i “s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g” /etc/apt/sources.list
    • sudo sed -i “s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g” /etc/apt/sources.list
    • sudo apt-get update
  • 在Ubuntu系統中解壓上面已經下載的openHarmony源碼

  • 在Ubuntu系統中安裝Docker

    • 官方文檔介紹-Docker編譯環境
    • sudo apt install docker.io
    • sudo docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2 獲取輕量系統鏡像,獲取小型和標準的則使用不同的參數
  • 將你下載好的鴻蒙源碼在Ubuntu下解壓,進入已經解壓的源碼根目錄

  • 執行 sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2 將源碼路徑導入到Docker中

  • 編譯

    • 輕型系統
      • python3 build.py -p qemu_mini_system_demo@ohemu
    • 小型系統
      • python3 build.py -p ipcamera_hispark_taurus@hisilicon
      • python3 build.py -p qemu_small_system_demo@ohemu
    • 編譯工具和開發板都分為輕型、小型、標準,必須屬于同一種類型,否則編譯時各種報錯
  • 編譯成功后是這樣的打印:

[OHOS INFO] [1614/1615] STAMP obj/build/ohos/images/make_images.stamp
[OHOS INFO] [1615/1615] STAMP obj/build/core/gn/images.stamp
[OHOS INFO] ccache_dir = /root/.ccache, ccache_exec = /usr/bin/ccache
[OHOS INFO] --------------------------------------------
[OHOS INFO] ccache summary:
[OHOS INFO] ccache version: 3.7.7
[OHOS INFO] cache hit (direct): 0
[OHOS INFO] cache hit (preprocessed): 0
[OHOS INFO] cache miss: 0
[OHOS INFO] hit rate: 0.00% 
[OHOS INFO] miss rate: 0.00% 
[OHOS INFO] Cache size (GB): 
[OHOS INFO] ---------------------------------------------
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem       	files NO.	percentage	builds NO.	percentage	overlap rate
[OHOS INFO] hiviewdfx       	      12	0.8%	      12	0.8%	1.00
[OHOS INFO] kernel          	     902	63.5%	     902	63.5%	1.00
[OHOS INFO] security        	      61	4.3%	      61	4.3%	1.00
[OHOS INFO] startup         	      26	1.8%	      26	1.8%	1.00
[OHOS INFO] systemabilitymgr	      15	1.1%	      15	1.1%	1.00
[OHOS INFO] thirdparty      	     393	27.7%	     393	27.7%	1.00
[OHOS INFO] 
[OHOS INFO] c overall build overlap rate: 1.00
[OHOS INFO] 
[OHOS INFO] 
[OHOS INFO] qemu_mini_system_demo@ohemu build success
[OHOS INFO] Cost time:  0:05:47
root@ff38bf1e3e75:/home/openharmony# jim@ubuntu:~/openHarmony/out/arm_mps2_an386/qemu_mini_system_demo$ ls
all_parts_host.json           build_configs   config.h         kconfig_files.txt  OHOS_Image.bin              src_installed_parts.json
all_parts_info.json           build.log       error.log        libs               OHOS_Image.map              src_sa_infos_tmp.json
args.gn                       build.ninja     etc              NOTICE_FILES       OHOS_Image.sym.sorted       startup
binary_installed_parts.json   build.ninja.d   gen              obj                packages                    thirdparty
build.1709259296.3884952.log  build.trace.gz  hiviewdfx        OHOS_Image         security                    toolchain.ninja
build.1709259767.6772568.log  config.gni      kconfig_env.txt  OHOS_Image.asm     sorted_action_duration.txt
jim@ubuntu:~/openHarmony/out/arm_mps2_an386/qemu_mini_system_demo$ 
  • 生成的系統鏡像image是這里面的OHOS_Image文件

  • 如需退出Docker,執行exit命令即可。這個命令會停止當前的Docker容器,并返回到您的操作系統。

  • 下一步就可以把編譯好的操作系統在QEMU模擬器中運行起來了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713261.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713261.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713261.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

map和set例題應用

個人主頁:Lei寶啊 愿所有美好如期而遇 目錄 第一題 第二題 第三題 第一題 隨機鏈表的復制https://leetcode.cn/problems/copy-list-with-random-pointer/description/ 思路 首先遍歷舊鏈表,并創建新節點,同時用map將舊節點與新節點…

python模型訓練

目錄 1、新建模型 train_model.py 2、運行模型 (1)首先會下載data文件庫 (2)完成之后會開始訓練模型(10次) 3、 訓練好之后,進入命令集 4、輸入命令:python -m tensorboard.ma…

網絡工程師筆記6

ICMP協議 Internet控制報文協議ICMP(InternetControlMessage Protocol)是網絡層的一個重要協議。ICMP協議用來在網絡設備間傳遞各種差錯和控制信息,它對于收集各種網絡信息、診斷和排除各種網絡故障具有至關重要的作用。使用基于ICMP的應用時,需要對ICMP…

Vue.js+SpringBoot開發社區買菜系統

目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、系統設計2.1 功能模塊設計2.1.1 數據中心模塊2.1.2 菜品分類模塊2.1.3 菜品檔案模塊2.1.4 菜品訂單模塊2.1.5 菜品收藏模塊2.1.6 收貨地址模塊 2.2 可行性分析2.3 用例分析2.4 實體類設計2.4.1 菜品分類模塊2.4.2 菜品檔案模塊2.4.3…

多輸入多輸出 | Matlab實現RIME-BP霜冰算法優化BP神經網絡多輸入多輸出預測

多輸入多輸出 | Matlab實現RIME-BP霜冰算法優化BP神經網絡多輸入多輸出預測 目錄 多輸入多輸出 | Matlab實現RIME-BP霜冰算法優化BP神經網絡多輸入多輸出預測預測效果基本介紹程序設計往期精彩參考資料 預測效果 基本介紹 多輸入多輸出 | Matlab實現RIME-BP霜冰算法優化BP神經網…

Springboot+vue的考勤管理系統(有報告)。Javaee項目,springboot vue前后端分離項目。

演示視頻: Springbootvue的考勤管理系統(有報告)。Javaee項目,springboot vue前后端分離項目。 項目介紹: 采用M(model)V(view)C(controller)三層…

GitHub Copilot extension activation error: ‘No access to GitHub Copilot found‘

好不容易學生認證通過了,打開vscode用copilot結果一直報這個錯誤。我的原因是:還未給copilot授權, 通過了學生認證后要進入這里進行授權:

Vue Html中插入本地視頻(Video 標簽)

在 Vue 中插入本地視頻可以通過使用標簽來實現。你可以將視頻文件放在你的項目中的合適位置(比如assets文件夾),然后在 Vue 組件中引用這個視頻文件。html同理 首先,在你的 Vue 項目中的assets文件夾下放入你的視頻文件&#xff…

k8s單機部署zookeeper

(作者:陳玓玏) 拉取鏡像:docker pull zookeeper;編輯yaml: apiVersion: v1 kind: Service metadata:name: zookeeperlabels:app: zookeeper spec:ports:- name: clientport: 2181protocol: TCPtargetP…

QT TCP傳輸文件+ui

TCPFile tcp協議傳輸文件 TCPFile.pro QT core gui networkclientwidget.h #include <QWidget> #include <QTcpSocket> // 通信套接字 #include <QFile>private slots:void on_pushButton_clicked();private:QTcpSocket *tcpSocket;QFile file; /…

selenium進階設置

1、無頭瀏覽設置和規避爬蟲檢測 問題一&#xff1a;有界面時可以展示的元素&#xff0c;無頭模式報錯element not interactable 解決方法&#xff1a;通過錯誤截圖發現&#xff0c;頁面上有該元素&#xff0c;但是頁面不夠大&#xff0c;沒有顯示想定位的元素。 from seleni…

centos7 安裝 docker-compose

1、直接參考官方&#xff1a; Install Compose standalone | Docker Docs 1、安裝命令 curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 2、修改 docker-compose 執行權限 不修改執行權…

升級pycharm之后,jupyter無法識別新安裝的包

import sys print(sys.executable)在jupyter中運行&#xff0c;檢測一下當前jupyter內核運行在哪個環境中-再pycharm的setting里面設置jupyter環境并沒有什么用。需要重新在想要使用的環境中重新安裝jupyter內核&#xff0c;并且重啟。

c# cad2016系統變量解釋說明

一、cad系統變量設置和獲取 /// <summary> /// 設置CAD系統變量 /// </summary> /// <param name"name">變量名</param> /// <param name"value">變量值</param> public static void SetSystemVariable(string name,…

Sora背后的技術原理:深度探索Video Compression Network與語言理解在視頻生成中的應用

Sora背后的技術原理&#xff1a;深度探索Video Compression Network與語言理解在視頻生成中的應用 摘要&#xff1a; 隨著人工智能技術的飛速發展&#xff0c;視頻生成技術逐漸成為研究熱點。Sora作為一種先進的視頻生成技術&#xff0c;其背后的技術原理值得深入研究。本文詳…

物聯網平臺如何實現SaaS化

物聯網平臺實現SaaS化是一個復雜的過程&#xff0c;涉及到多個關鍵步驟和要素。以下是實現物聯網平臺SaaS化的主要步驟和要點&#xff0c;以及如何確保成功實施。 一、平臺架構設計是實現SaaS化的基礎 一個分布式、模塊化的架構設計對于支持多租戶、高并發、高可擴展性等特性…

【Django】執行查詢—F()表達式

F() F()可以實現將模型字段值與同一模型中的另一字段做比較。舉個例子看一下&#xff1a; class Entry(models.Model):...number_of_comments models.IntegerField(default0)number_of_pingbacks models.IntegerField(default0)...找到所有 number_of_pingbacks 大于 numbe…

大數據權限認證 Kerberos 部署

文章目錄 1、什么是 Kerberos2、Kerberos 術語和原理2.1、Kerberos 術語2.1、Kerberos 原理 3、Kerberos 服務部署3.1、前置條件3.2、安裝依賴3.3、配置 krb5.conf3.4、配置 kdc.conf3.5、配置 kadm5.acl3.6、安裝 KDC 數據庫3.7、啟動服務3.8、創建 Kerberos 管理員3.9、創建普…

idea 手動打 jar 包

1.在 File 中找到并點擊 Project Structure 2.按圖中高亮的部分依次點擊 3.在 Main Class 處設置要打包的類&#xff0c;記得在 Directory for ... 處設置目錄為根目錄&#xff0c;設置好以后點擊兩次 OK 回到首頁 4.在頁面上方找到 Build &#xff0c;點擊 Build Artifacts...…

【Linux】在 Ubuntu 系統下使用 Screen 運行 Python 腳本

在 Ubuntu 系統下使用 Screen 運行 Python 腳本的優點 在 Ubuntu 操作系統中&#xff0c;Screen 是一種非常有用的工具&#xff0c;特別是在需要長時間運行的任務或者需要在后臺運行的任務中。結合 Python 腳本&#xff0c;Screen 提供了一種靈活且高效的方式來管理和執行任務…