国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker 編譯OpenHarmony 4.0 release

這篇具有很好參考價(jià)值的文章主要介紹了Docker 編譯OpenHarmony 4.0 release。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、背景介紹

1.1、環(huán)境配置

  • 編譯環(huán)境:Ubuntu 20.04
  • OpenHarmony版本:4.0 release
  • 平臺(tái)設(shè)備:RK3568

OpenHarmony 3.2更新至OpenHarmony 4.0后,公司服務(wù)器無法編譯通過,總是在最后幾十個(gè)文件時(shí)報(bào)錯(cuò),錯(cuò)誤碼4000:

[OHOS ERROR] ld.lld: error: undefined symbol: __aarch64_cas4_acq_rel
[OHOS ERROR] >>> referenced by hdf_vnode_adapter.c:294 (/home/xxx/OHOS/OpenHarmony_master/out/kernel/OBJ/linux-5.10/../../../../drivers/hdf_core/framework/core/adapter/vnode/src/hdf_vnode_adapter.c:294)
[OHOS ERROR] >>> vmlinux.o:(HdfVNodeAdapterIoctl)
[OHOS ERROR] >>> referenced by hdf_vnode_adapter.c:303 (/home/xxx/OHOS/OpenHarmony_master/out/kernel/OBJ/linux-5.10/../../../../drivers/hdf_core/framework/core/adapter/vnode/src/hdf_vnode_adapter.c:303)
[OHOS ERROR] >>> vmlinux.o:(HdfVNodeAdapterIoctl)
[OHOS ERROR] >>> referenced by hdf_vnode_adapter.c:428 (/home/xxx/OHOS/OpenHarmony_master/out/kernel/OBJ/linux-5.10/../../../../drivers/hdf_core/framework/core/adapter/vnode/src/hdf_vnode_adapter.c:428)
[OHOS ERROR] >>> vmlinux.o:(HdfDeviceSendEventToClient)
[OHOS ERROR] >>> referenced 1 more times
[OHOS ERROR] BTF .btf.vmlinux.bin.o
[OHOS ERROR] pahole: .tmp_vmlinux.btf: No such file or directory
[OHOS ERROR] LD .tmp_vmlinux.kallsyms1
[OHOS ERROR] ld.lld: error: .btf.vmlinux.bin.o: unknown file type
[OHOS ERROR] make[2]: *** [/home/xxx/OHOS/OpenHarmony_master/out/kernel/src_tmp/linux-5.10/Makefile:1236: vmlinux] Error 1
[OHOS ERROR] make[1]: *** [arch/arm64/Makefile:208: rk3568-toybrick-x0-linux.img] Error 2
[OHOS ERROR] make[1]: Leaving directory '/home/xxx/OHOS/OpenHarmony_master/out/kernel/OBJ/linux-5.10'
[OHOS ERROR] make: *** [Makefile:192: __sub-make] Error 2
[OHOS ERROR] Traceback (most recent call last):
...
[OHOS ERROR] raise OHOSException('ninja phase failed', '4000')
[OHOS ERROR] exceptions.ohos_exception.OHOSException: ninja phase failed
[OHOS ERROR]
[OHOS ERROR] Code: 4000
[OHOS ERROR]
[OHOS ERROR] Reason: ninja phase failed
[OHOS ERROR]
[OHOS ERROR] Solution: Please check the compile log at out/{compiling product}/build.log, If you could analyze build logs.
[OHOS ERROR] Or you can try the following steps to solve this problem:
[OHOS ERROR] 1. cd to OHOS root path
[OHOS ERROR] 2. run 'hb clean --all' or 'rm -rf out build/resources/args/.json'.
[OHOS ERROR] 3. repo sync
[OHOS ERROR] 4. repo forall -c 'git lfs pull'
[OHOS ERROR] 5. bash build/prebuilts_download.sh
[OHOS ERROR] 6. rebuild your product or component
[OHOS ERROR] 7. check if any environment variables required by the building process are not set in build/compile_env_allowlist.json
[OHOS ERROR]
[OHOS ERROR] If you still cannot solve this problem, you could post this problem on:
[OHOS ERROR] https://gitee.com/openharmony/build/issues
[OHOS ERROR]
=====build error=====

經(jīng)分析嘗試:
1、相同的步驟和命令,wsl2 編譯OpenHarmony 4.0 r正常。
2、服務(wù)器使用sudo編譯正常,但由于sudo使用root權(quán)限,會(huì)影響項(xiàng)目編譯鏈等配置,故不能作為解決方案。

于是嘗試在服務(wù)器中使用docker,通過隔離環(huán)境編譯OpenHarmony 4.0。

二、docker安裝與配置

exceptions.ohos_exception.ohosexception: ninja phase failed,docker,容器,OpenHarmony,編譯構(gòu)建
在Ubuntu服務(wù)器中安裝和配置docker

2.1、docker安裝

$ sudo apt-get update
$ sudo apt-get upgrade

$ sudo apt install docker.io
#安裝后通過查看docker版本驗(yàn)證是否安裝成功
$ docker --version 或 docker -v
Docker version 24.0.5, build 24.0.5-0ubuntu1~20.04.1

2.2、獲取docker 鏡像

獲取docker鏡像,以u(píng)buntu:20.04為例
注意:此過程較漫長(zhǎng),請(qǐng)耐心等待~

$ docker pull ubuntu:20.04

#創(chuàng)建好后可通過image命令查看
$ docker images 或docker image ls
REPOSITORY                                                               TAG       IMAGE ID       CREATED        SIZE
ubuntu                                                                   20.04     f78909c2b360   8 days ago     72.8MB
swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard   3.2       ae33c06f45c5   6 months ago   5.3GB

2.3、創(chuàng)建docker容器

#進(jìn)入需要與docker映射的目錄,后續(xù)基于此目錄的修改,容器和服務(wù)會(huì)同步。
$ cd ~/docker/
$ docker run -it -v $(pwd):/home/zhangsan --name ohos ubuntu:20.04

說明:命令表示創(chuàng)建一個(gè)名為ohos,系統(tǒng)鏡像為ubuntu 20.04的容器;這個(gè)容器運(yùn)行在交互模式下,并且將當(dāng)前目錄映射到容器的/home/zhangsan目錄。
注意:zhangsan需與后續(xù)要在ohos創(chuàng)建的非root用戶名保持一致,否則后續(xù)下拉和編譯代碼會(huì)出現(xiàn)權(quán)限問題。

創(chuàng)建好ohos容器,默認(rèn)以root用戶進(jìn)入。

#退出root用戶
$ exit
# 啟動(dòng)ohos容器
$ docker container start ohos
#查看docker容器
$ docker container ls
CONTAINER ID   IMAGE          COMMAND       CREATED        STATUS        PORTS     NAMES
ab7d67807966   ubuntu:20.04   "/bin/bash"   29 hours ago   Up 29 hours             ohos

2.4、ohos容器中創(chuàng)建非root用戶

由于docker 容易與宿主系統(tǒng)共享一個(gè)內(nèi)核,容器中的用戶ID和組ID是映射到宿主系統(tǒng)的;默認(rèn)情況下,容器內(nèi)的所有進(jìn)程都以root用戶身份運(yùn)行。這意味著容器內(nèi)的進(jìn)程具有與宿主系統(tǒng)中的root用戶相同的權(quán)限。為了提高安全性,建議在容器中使用非root用戶運(yùn)行進(jìn)程。

#運(yùn)行ohos容器(默認(rèn)root用戶)
$ docker exec -it ohos bash
$ apt-get update
$ apt-get upgrade
$ apt install -y sudo
$ apt install -y vim

#添加非root用戶zhangsan
$ useradd -m zhangsan
#設(shè)置用戶密碼,123456
$ passwd zhangsan
#設(shè)置zhangsan用戶組
$ usermod -aG zhangsan zhangsan

#sudoers添加zhangsan
$ vim /etc/sudoers	#文末添加一行zhangsan	ALL=(ALL)	ALL
#設(shè)置/home/zhangsan目錄用戶和組,需與用戶名保持一致
$ chown -R zhangsan:zhangsan /home/zhangsan
$ exit

注意:zhangsan的uid和gid需與宿主系統(tǒng)自己的uid和gid保持一致,否則后續(xù)下載源碼后,在宿主系統(tǒng)中自己無權(quán)限修改。
如下zhangsan 與wangwu的id匹配一致,為1003

#ohos容器zhangsan 用戶名,uid,gid和組信息
$ whoami && id
uid=1003(zhangsan) gid=1003(zhangsan) groups=1003(zhangsan)

#宿主系統(tǒng)自己賬戶(wangwu)用戶名,uid,gid和組信息
$ whoami && id
wangwu
uid=1003(wangwu) gid=1003(wangwu) groups=1003(wangwu)

若ohos容器中zhangsan的uid與wangwu的不一致(通常zhangsan.uid < wangwu.uid),可在容器中添加任意用戶,uid號(hào)以1000開始累加,最終使得zhangsan.uid = wangwu.uid即可

#由于uid不匹配,先刪除zhangsan用戶
userdel zhangsan

# 添加隨意用戶 tom,jerry
$ useradd -M tom
$ useradd -M jerry

#查看所有用戶
cat /etc/passwd
...
tom:x:1001:1001::/home/tom:/bin/sh
jerry:x:1002:1002::/home/jerry:/bin/sh

#此時(shí)再次添加zhangsan用戶,其uid則為1003

三、OpenHarmony 4.0 源碼下載及編譯

3.1、配置ohos容器編譯環(huán)境

#以zhangsan用戶運(yùn)行ohos容器
$ docker exec --user zhangsan -it ohos bash

#替換軟件源
$ sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vim /etc/apt/sources.list	#sources.list替換以下內(nèi)容
deb http://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

## Not recommended
# deb http://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
更新
$ sudo apt-get update
$ sudo apt-get upgrade

#將Shell環(huán)境修改為bash
$ sudo dpkg-reconfigure dash  #select no

#部署編譯環(huán)境,安裝工具包
$ sudo apt-get install -y gcc-arm-linux-gnueabi gcc-9-arm-linux-gnueabi
$ sudo apt-get install -y python python3 python3-pip binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev   libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
#上一步命令執(zhí)行過程需手動(dòng)選擇時(shí)區(qū)配置:6.Asia/70.Shanghai

#配置pip軟件包更新源
$ mkdir ~/.pip
$ pip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
$ pip3 config set global.trusted-host mirrors.huaweicloud.com
$ pip3 config set global.timeout 120

#配置git
git config --global user.email "jerry@163.com"
git config --global user.name "jerry"
git config --global credential.helper store
git config --global --add safe.directory "*"

#安裝repo
wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3
sudo mv repo-py3 /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

3.2、下拉OpenHarmony 4.0r源碼及編譯

$ mkdir OpenHarmony_4.0r && cd OpenHarmony_4.0r
$ repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-4.0-Release --no-repo-verify
$ repo sync -c && repo forall -c 'git lfs pull'
$ bash build/prebuilts_download.sh
$ ./build.sh -p rk3568	#編譯成功,結(jié)果如下
...
Please modify according to README.md
[OHOS INFO] rk3568 build success
[OHOS INFO] Cost time:  0:14:17
=====build  successful=====
2023-12-21 21:29:18
++++++++++++++++++++++++++++++++++++++++

宿主系統(tǒng)可見openharmony 4.0r代碼已拉下,并有權(quán)限修改

$ tree -L 2 ~/docker/
docker/
├── OpenHarmony_4.0r
│   ├── applications
│   ├── arkcompiler
│   ├── base
│   ├── build
│   ├── build.py -> build/build_scripts/build.py
│   ├── build.sh -> build/build_scripts/build.sh
│   ├── commonlibrary
│   ├── developtools
│   ├── device
│   ├── docs
│   ├── domains
│   ├── drivers
│   ├── foundation
...

#創(chuàng)建文件正常
$ touch ~/docker/OpenHarmony_4.0r/test

后續(xù)

當(dāng)然,ohos環(huán)境可以自己打包成鏡像推至自己的倉庫,上述繁瑣的過程可以在Dockerfile中進(jìn)行配置,僅通過docker build 命令完成全部操作,剛接觸docker,待后續(xù)優(yōu)化完善~文章來源地址http://www.zghlxwxcb.cn/news/detail-771110.html

到了這里,關(guān)于Docker 編譯OpenHarmony 4.0 release的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OpenHarmony 4.0 源碼編譯hb 問題排查記錄

    OS:Ubuntu 22.04 x86_64 下載好Openharmony 4.0Beta2 的源碼 從錯(cuò)信息看是找到某個(gè)目錄,hb 是python寫的,所以打算看看源碼是找個(gè)目錄出錯(cuò)了,根據(jù)出錯(cuò)信息直接看源碼文件。 查看python 代碼可知報(bào)錯(cuò)原因是沒找到 build/lite/hb_internal ,在OpenHamony 源碼下確實(shí)沒有發(fā)現(xiàn)有 build/lite/hb_internal

    2024年02月09日
    瀏覽(26)
  • OpenHarmony UI開發(fā)-ohos-svg

    OpenHarmony UI開發(fā)-ohos-svg

    ohos-svg是一個(gè)SVG圖片的解析器和渲染器,解析SVG圖片并渲染到頁面上。它支持大部分 SVG 1.1 規(guī)范,包括基本形狀、路徑、文本、樣式和漸變,它能夠渲染大多數(shù)標(biāo)準(zhǔn)的 SVG 圖像。ohos-svg的優(yōu)點(diǎn)是性能好、內(nèi)存占用低。 SVG圖片解析并繪制: OpenHarmony ohpm 環(huán)境配置等更多內(nèi)容,請(qǐng)參考

    2024年04月23日
    瀏覽(38)
  • OpenHarmony語言基礎(chǔ)類庫【@ohos.url (URL字符串解析)】

    OpenHarmony語言基礎(chǔ)類庫【@ohos.url (URL字符串解析)】

    說明: 本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 URLParams接口定義了一些處理URL查詢字符串的實(shí)用方法。 constructor9+ constructor(init?: string[][] | Recordstring, string | string | URLParams) URLParams的構(gòu)造函數(shù)。 系統(tǒng)能力: ??System

    2024年04月28日
    瀏覽(21)
  • OpenHarmony—Docker編譯環(huán)境

    OpenHarmony—Docker編譯環(huán)境

    OpenHarmony為開發(fā)者提供了兩種Docker環(huán)境,以幫助開發(fā)者快速完成復(fù)雜的開發(fā)環(huán)境準(zhǔn)備工作。兩種Docker環(huán)境及適用場(chǎng)景如下: 獨(dú)立Docker環(huán)境:適用于直接基于Ubuntu、Windows操作系統(tǒng)平臺(tái)進(jìn)行版本編譯的場(chǎng)景。 基于HPM的Docker環(huán)境:適用于使用HPM工具進(jìn)行發(fā)行版編譯的場(chǎng)景。 表1 D

    2024年03月11日
    瀏覽(20)
  • E2000/飛騰派運(yùn)行OpenHarmony 4.0

    該項(xiàng)目介紹了如何在飛騰嵌入式開發(fā)平臺(tái)上運(yùn)行OpenHarmony 4.0 release標(biāo)準(zhǔn)系統(tǒng)。 該項(xiàng)目支持芯片內(nèi)置提供的視頻解碼硬件加速,支持硬件光標(biāo)加速,基于Linux kernel 5.10開發(fā)。 ├── device_board_phytium #飛騰開發(fā)板代碼倉庫 ├── device_soc_phytium #飛騰芯片代碼倉庫 ├── phytium_en

    2024年04月17日
    瀏覽(111)
  • openharmony開發(fā)最新4.0版本----介紹openharmony(基于api10 ,華為dev studio 4.0,分享學(xué)習(xí)過程中遇到的難題難點(diǎn)),學(xué)習(xí)筆記,持續(xù)更新

    ????????DevEco Studio(OpenHarmony)使用指南: ????????HUAWEI DevEco Studio For OpenHarmony(以下簡(jiǎn)稱DevEco Studio)是基于IntelliJ IDEA Community開源版本打造,面向OpenHarmony全場(chǎng)景多設(shè)備的一站式集成開發(fā)環(huán)境(IDE),為開發(fā)者提供工程模板創(chuàng)建、開發(fā)、編譯、調(diào)試、發(fā)布等E2E的Open

    2024年02月03日
    瀏覽(19)
  • OpenHarmony應(yīng)用簽名 - 系統(tǒng)應(yīng)用簽名(4.0-Release)

    OpenHarmony應(yīng)用簽名 - 系統(tǒng)應(yīng)用簽名(4.0-Release)

    開發(fā)環(huán)境:Windows 11 DevEco Studio 版本:DevEco Studio 4.0 Release(4.0.0.600) SDK 版本:4.0.10.15(Full SDK) 開發(fā)板型號(hào):DAYU 200(RK3568) 系統(tǒng)版本:OpenHarmony-4.0-Release 示例工程:Applications_SystemUI OpenHarmony開源社區(qū)提供了標(biāo)準(zhǔn)系統(tǒng)上的部分系統(tǒng)應(yīng)用,如桌面、SystemUI、設(shè)置等,為開發(fā)者提

    2024年04月11日
    瀏覽(22)
  • 【開源鴻蒙】下載 OpenHarmony 4.0 源代碼和工具鏈

    【開源鴻蒙】下載 OpenHarmony 4.0 源代碼和工具鏈

    本文介紹了如何下載開源鴻蒙(OpenHarmony)操作系統(tǒng)源碼,該方法可以用于下載OpenHarmony最新開發(fā)版本(master分支)或者4.0 Release、3.2 Release等發(fā)布版本。 本文基于Ubuntu 22.04進(jìn)行操作,Ubuntu其他版本也同樣可行,包括 20.04, 18.04。 OpenHarmony架構(gòu)圖: 本節(jié)介紹如何準(zhǔn)備命令行工具

    2024年04月13日
    瀏覽(37)
  • OpenHarmony 4.0 分布式軟總線解析:設(shè)備發(fā)現(xiàn)與傳輸

    OpenHarmony 4.0 分布式軟總線解析:設(shè)備發(fā)現(xiàn)與傳輸

    OpenHarmony 的分布式軟總線子系統(tǒng)為 OpenHarmony 系統(tǒng)提供的通信相關(guān)的能力,包括:WLAN 服務(wù)能力、藍(lán)牙服務(wù)能力、軟總線、進(jìn)程間通信 RPC(Remote Procedure Call)等通信能力。 其中主要包括: WLAN 服務(wù):為用戶提供 WLAN 基礎(chǔ)功能、P2P(peer-to-peer)功能和 WLAN 消息通知的相應(yīng)服務(wù),

    2024年04月23日
    瀏覽(24)
  • OpenHarmony 4.0 Beta2新版本發(fā)布,邀您體驗(yàn)

    2023年8月3日,OpenAtom?OpenHarmony(簡(jiǎn)稱“OpenHarmony”)發(fā)布了Beta2版本,相較于歷史版本我們持續(xù)完善ArkUI、文件管理、媒體、窗口、安全等系統(tǒng)能力、提升體驗(yàn)。歡迎開發(fā)者了解并升級(jí)使用,積極反饋寶貴建議、參與貢獻(xiàn),共同促進(jìn)4.0版本的成熟。 為了方便社區(qū)開發(fā)者了解新版

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包