Ubuntu22.04 搭建 OpenHarmony 命令行开发环境

这篇具有很好参考价值的文章主要介绍了Ubuntu22.04 搭建 OpenHarmony 命令行开发环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

在本文中,我们将介绍如何使用命令行工具在你的设备上安装OpenHarmony操作系统。OpenHarmony是一个开源的、面向物联网(IoT)设备的操作系统,它提供了一套全面的开发框架,使得开发者可以更容易地创建和部署IoT应用。

在本次安装中,使用的电脑是基于Ubuntu22的物理机器,按照官方文档的说明,优先推荐的方式是使用 DevEco Studio 进行开发,这种方式使用Windows 做前端,Linux 虚拟机作为编译后端,对于Linux 不熟悉的新手来说比较友好,与此同时也限制了使用的环境,例如 DevEco Device Tool 目前无法在Ubuntu22 上安装成功,因为 Ubuntu22 中默认的 Python 版本是3.10,Python版本不匹配,我尝试修改 DevEco Device Tool 中的部分文件并跳过完整性检查,依然无法安装。

相比使用GUI的方式,我更习惯使用命令行进行编译,简单高效,且灵活度更高,Linux有很多的发行版本,Ubuntu 在国内普通用户使用的最多的,同时也是最受欢迎的版本,但并不是每一个人都会使用Ubuntu,想要再 Ubuntu22 或者其他Linux 系统上编译,这应该是唯一的选择,由用户自己来解决依赖的缺失问题。

安装工具链

  1. 默认情况下,Ubuntu中使用的脚本解释器是dash(终端输入ls -l /bin/sh查看链接文件指向的位置),输入如下指令选择No,需要将其替换为bash
sudo dpkg-reconfigure dash
  1. 使用如下apt-get命令安装后续操作所需的库和工具:
sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.10 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.10-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 git git-lfs
  1. 将Python3.10设置为Python与Python3的默认版本
which python3.10                                    # 查看python3.10的位置
sudo update-alternatives --install /usr/bin/python python {Python 3.10 路径} 1
sudo update-alternatives --install /usr/bin/python3 python3 {Python 3.10 路径} 1

获取gitee源码

  1. 首先需要下载gitee的repo工具:
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o repo 
chmod a+x repo
sudo mv repo /usr/bin/
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
  1. OpenHarmony主干代码获取:
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
  1. 在源码根目录下执行prebuilts脚本,安装编译器及二进制工具:
bash build/prebuilts_download.sh

安装编译工具

  1. 在源码根目录运行如下命令安装hb并更新至最新版本:
python3 -m pip install --user build/hb
  1. 设置环境变量:
echo "export PATH=~/.local/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
  1. 按照官方的说法,在源码目录执行"hb help",界面打印以下信息即表示安装成功:
[OHOS INFO] ----------------------------------------------------------------------------------------------------
[OHOS INFO] usage: hb build [option]
[OHOS INFO] 
[OHOS INFO] options:
[OHOS INFO]   -h, --help            show this help message and exit
[OHOS INFO]   --target-cpu {arm,arm64,x86_64,x64}
[OHOS INFO]                         Default:''. Help:Specifies the desired cpu architecture for the build, each may support different cpu architectures, run 'hb set --all' to list product all supported cpu architectures
[OHOS INFO]   --target-os {android,ios}
[OHOS INFO]                         Default:''. Help:Specifies the desired os type for the build, each may support different os type, run 'hb set --all' to list product all supported os type
[OHOS INFO]   -p PRODUCT_NAME, --product-name PRODUCT_NAME
[OHOS INFO]                         Default:''. Help:Build a specified product. You could use this option like this: 1.'hb build --product-name rk3568@hihope' 2.'hb build --product-name rk3568'
...
  1. 下面是我尝试编译时遇到的问题,找不到Mapping
[OHOS ERROR] Traceback (most recent call last):
[OHOS ERROR]   File "/home/lhq/software/OpenHarmony/build/hb/containers/status.py", line 47, in wrapper
[OHOS ERROR]     return func(*args, **kwargs)
[OHOS ERROR]   File "/home/lhq/software/OpenHarmony/build/hb/main.py", line 112, in main
[OHOS ERROR]     module = main._init_set_module()
[OHOS ERROR]   File "/home/lhq/software/OpenHarmony/build/hb/main.py", line 83, in _init_set_module
[OHOS ERROR]     from services.menu import Menu
[OHOS ERROR]   File "/home/lhq/software/OpenHarmony/build/hb/services/menu.py", line 25, in <module>
[OHOS ERROR]     from prompt_toolkit.shortcuts import run_application
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/__init__.py", line 16, in <module>
[OHOS ERROR]     from .interface import CommandLineInterface
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/interface.py", line 19, in <module>
[OHOS ERROR]     from .application import Application, AbortAction
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/application.py", line 8, in <module>
[OHOS ERROR]     from .key_binding.bindings.basic import load_basic_bindings
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/key_binding/bindings/basic.py", line 9, in <module>
[OHOS ERROR]     from prompt_toolkit.renderer import HeightIsUnknownError
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/renderer.py", line 11, in <module>
[OHOS ERROR]     from prompt_toolkit.styles import Style
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/styles/__init__.py", line 8, in <module>
[OHOS ERROR]     from .from_dict import *
[OHOS ERROR]   File "/home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py", line 9, in <module>
[OHOS ERROR]     from collections import Mapping
[OHOS ERROR] ImportError: cannot import name 'Mapping' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
[OHOS ERROR] 
[OHOS ERROR] Code:      0000
[OHOS ERROR] 
[OHOS ERROR] Reason:    cannot import name 'Mapping' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
[OHOS ERROR] 
[OHOS ERROR] Solution:  no solution
[OHOS ERROR]

这是由于Python3.10中collections中已经不再包含Mapping,需要将 /home/lhq/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py 中的 第9行进行替换:文章来源地址https://www.toymoban.com/news/detail-775232.html

from collections import Mapping      # 原有代码
from collections.abc import Mapping  # 替换后的代码

编译测试

  1. 设置编译路径并选择需要编译的目标
hb set
  • 输入后系统类型选择 small
  • 目标板选择 qemu_small_system_demo
  1. 编译
hb build
  • 输出如下信息即代表编译成功
[OHOS INFO] --------------------------------------------
[OHOS INFO] ccache summary:
[OHOS INFO] ccache version: 4.5.1
[OHOS INFO] cache hit (direct): 18
[OHOS INFO] cache hit (preprocessed): 24
[OHOS INFO] cache miss: 18
[OHOS INFO] hit rate: 70.00% 
[OHOS INFO] miss rate: 30.00% 
[OHOS INFO] Cache size (GB): 4.96 / 100.00 (4.96 %)
[OHOS INFO] ---------------------------------------------
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem           files NO.       percentage      builds NO.      percentage      overlap rate
[OHOS INFO] arkui                    178        3.9%         178        3.9%    1.00
[OHOS INFO] communication            295        6.5%         295        6.5%    1.00
[OHOS INFO] graphic                   34        0.8%          34        0.8%    1.00
[OHOS INFO] hdf                      232        5.1%         232        5.1%    1.00
[OHOS INFO] hiviewdfx                 14        0.3%          14        0.3%    1.00
[OHOS INFO] kernel                  2169        48.0%       2169        48.0%   1.00
[OHOS INFO] powermgr                   1        0.0%           1        0.0%    1.00
[OHOS INFO] security                 308        6.8%         308        6.8%    1.00
[OHOS INFO] startup                  113        2.5%         113        2.5%    1.00
[OHOS INFO] systemabilitymgr          22        0.5%          22        0.5%    1.00
[OHOS INFO] thirdparty              1119        24.7%       1119        24.7%   1.00
[OHOS INFO] window                    18        0.4%          18        0.4%    1.00
[OHOS INFO] 
[OHOS INFO] c overall build overlap rate: 1.00
[OHOS INFO] 
[OHOS INFO] 
[OHOS INFO] qemu_small_system_demo build success
[OHOS INFO] Cost time:  0:00:16

到了这里,关于Ubuntu22.04 搭建 OpenHarmony 命令行开发环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习1】ubuntu22.04从零开始搭建深度学习环境

    具体安装步骤可以参考:win11+ubuntu22.04双系统安装(简洁版) 安装之前进入主板BIOS,关闭安全启动!!! 更新软件列表 安装必要的依赖 根据显卡型号下载对应的驱动,官方驱动下载链接:GeForce® 驱动程序 卸载原有驱动(若有) 禁用nouveau驱动,在 /etc/modprobe.d/blacklist.conf

    2024年02月05日
    浏览(79)
  • Ubuntu 22.04 配置 QGIS二次开发环境

    源码地址: https://github.com/qgis/QGIS/releases QGIS 官方指导文档地址: https://github.com/qgis/QGIS/blob/release-3_26/INSTALL.md(此处为3.26的指导文档,可以自行修改查看) sudo apt-get install bison ca-certificates ccache cmake cmake-curses-gui dh-python doxygen expect flex flip gdal-bin git graphviz grass-dev libexiv2-dev l

    2024年02月16日
    浏览(36)
  • Linux环境搭建(Ubuntu22.04)+ 配置共享文件夹(Samba)

    Linux开发环境准备 搭建Linux开发环境所需要的软件如下: VMware虚拟机: 用于运行Linux操作系统的虚拟机软件之一,VMware下载安装在文章中不做说明,可自行百度谢谢 Ubuntu光盘镜像: 用于源代码编译,有闲置计算机或服务器可以下载服务器版(没有图形用户界面),只有一台

    2024年02月04日
    浏览(48)
  • Ubuntu22.04安装、配置、美化、软件安装、配置开发环境

    因为ubuntu的安装网上的教程特别多了,所以这里不做赘述,推荐使用小破站这个up主的教程:Windows 和 Ubuntu 双系统从安装到卸载_哔哩哔哩_bilibili (1)打开软件和更新 (2)在 “ 下载自 ” 中选择 “ 其他 ”  选中 中科大镜像源 (也可选择阿里源,清华源,这里以中科大源

    2024年02月01日
    浏览(39)
  • Ubuntu 22.04 搭建arm-linux-gcc交叉编译环境

    如果使用的是64位的Ubuntu系统,建议直接安装64位的arm-linux-gcc交叉编译器 下载地址: https://pan.baidu.com/s/14-lQpsXuEyCcHNHcTXcOyA 提取码: 55at 0. 注意在终端进行粘贴的操作为【Ctrl+shift+v】!! 把下载好的安装包移动到根目录下的tmp目录中(/tmp):在【其他位置】中的【计算机】中找

    2024年02月05日
    浏览(53)
  • ubuntu22.04 x86环境上使用QEMU搭建arm虚拟机

    apt-get -y install qemu apt-get -y install bridge-utils apt-get -y install vnc4server apt-get -y install qemu-kvm apt install -y qemu-system-arm apt-get -y install libvirt0 apt-get -y install libvirt-daemon apt-get -y install libvirt-daemon-system 安装完成后检查: virsh version ls /usr/bin/|grep qemu wget http://releases.linaro.org/components/kernel/

    2024年02月07日
    浏览(58)
  • Openharmony3.2 源码编译(ubuntu 22.04) 过程记录

    OS: ubuntu 22.04 x64 1.1 安装码云repo工具 1.2 将repo添加到环境变量 1.3 获取源码 需有gitee.com 账号,同时设置好ssh 公钥登录(https://gitee.com/help/articles/4191#article-header0) 2.1 安装编译工具 2.2 将hb添加到环境变量 2.3 通过hb 选取板卡配置 解决方法: 2.4 编译 解决方法: 安装ninja 和 gn

    2024年02月08日
    浏览(32)
  • Ubuntu22.04下安装VSCode(配置C/C++开发环境)

    更新软件源 安装ssh服务器 查看是否启动 显示 active (running) 即启动成功 常见错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! build-essential: 包含了 GNU 编辑器集合、GNU 调试器、和其他编译软件所必需的开发库和工具。 1、 安装汉化、C/C++插件 1)Chinese (Simplified) (简体中文) Language P

    2024年02月21日
    浏览(31)
  • 【环境搭建】(五)Ubuntu22.04安装cuda_11.8.0+cudnn_8.6.0

    一个愿意伫立在巨人肩膀上的农民...... 设备配置: 电脑系统: Ubuntu22.04.4 LTS(桌面版) 显卡: RTX2060s (8G) 内存: 32G 安装cuda之前,首先应该安装GCC,安装cuda需要用到GCC,否则报错。可以先使用下方指令在终端查看是否已经安装GCC。 如果终端打印如下则说明已经安装。 如果显示“

    2024年04月25日
    浏览(25)
  • Ubuntu22.04搭建Pytorch框架深度学习环境+安装Miniconda+安装CUDA与cuDNN

    以Ubuntu为例,从零搭建Pytorch框架深度学习环境。 1.1 系统下载 访问地址ubuntu官网 1.2 启动盘制作 访问ultraiso官网 1.2.1打开镜像 1.2.2写入镜像 1.3磁盘分区 1.3.1Windows磁盘管理 对要压缩的卷右键,选择压缩卷 压缩出的可用空间不要进行分区,等待ubuntu系统操作 1.3.2分区助手或DG

    2024年02月02日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包