OpenHarmony

1. Ubuntu 22.04 环境安装

1.1 VM 虚拟机配置 Ubuntu 环境

VM新建虚拟机

01-VM新建虚拟机

创建虚拟机模式选择

02-创建虚拟机模式选择

安装操作系统后续选择

03-安装操作系统后续选择

操作系统选择Linux和Ubuntu64

04-操作系统选择Linux和Ubuntu64

虚拟机名称和所在位置

05-虚拟机名称和所在位置

虚拟机硬盘大小选择

06-虚拟机硬盘大小选择

设置当前虚拟机硬件设备内存

07-设置当前虚拟机硬件设备内存

设置当前光驱ISO镜像文件

08-设置当前光驱ISO镜像文件

网络设置

09-网络设置

自定义硬件参数确认

10-自定义硬件参数确认
1.2 启动 Ubuntu 22.04 安装

Ubuntu启动安装选项选择

Ubuntu语言选择和安装确认

12-Ubuntu语言选择和安装确认

键盘布局选择

13-键盘布局选择

安装最小系统模式和安装时更新关闭

14-安装最小系统模式和安装时更新关闭

擦除整个磁盘安装Ubuntu

15-擦除整个磁盘安装Ubuntu

擦除安装确认

16-擦除安装确认

时区选择

17-时区选择

用户名和密码

18-用户名和密码

进入安装界面

19-进入安装界面
1.3 开发环境配置

更新 Ubuntu 软件数据源

qf@qf:~/Desktop$ sudo apt-get update
1.3.1 openssh-server 安装

安装 SSH 服务器,提供给 VScode 进行 SSH 远程编译通道

qf@qf:~/Desktop$ sudo apt-get install openssh-server
1.3.2 Samba 共享文件夹安装

安装共享文件夹 Samba 服务器,方便后续的编译过程。

安装命令

qf@qf:~/Desktop$ sudo apt-get install samba

22-确认安装 Samba.png

配置当前 Samba 服务器环境

需要找到 Samba 服务器配置文件路径,利用 gedit 修改内容

qf@qf:~/Desktop$ sudo gedit /etc/samba/smb.conf

在文件末尾添加内容,【注意】所有注释内容,中文内容不得在配置文件中存在

[qf] # 当前计算机的用户名
    comment = samba home directory   # 信息描述
    path = /home/qf  # /home/用户名,对应当前计算机的名称
    public = yes          # 当前文件夹是否公开,当前选择 YES
    browseable = yes      # 当前文件夹是否可以访问,当前选择 YES
    read only = no        # 当前文件夹是否为只读文件夹,当前选择为 NO
    valid users = qf   # 对应当前计算机的用户名
    create mask = 0777    # 创建操作对应的权限 0777 完全权限
    directory mask = 0777 # 文件夹操作对应的权限, 0777 完全权限
    force user = qf    # 对应当前计算机的用户名
    force group = qf   # 对应当前计算机的用户名所在组名,一般情况下都是和用户名一致
    available = yes        # 当前配置文件是否生效

注册用户

qf@qf:~/Desktop$ sudo smbpasswd -a qf

重启 Samba 服务器,远程链接测试

qf@qf:~/Desktop$ sudo /etc/init.d/smbd restart

Windows 链接 Samba 服务器

1.3.3 Python 环境
  • 步骤1:执行 安装 Python 包管理工具。 在 Python 包管理工具安装成功后, 即可使用 Python 包管理工具安装其他 Python 软件包。

    qf@qf:~/Desktop$ sudo apt-get install python3-pip
    
  • 为了上pip安装速度快:使用国内的源(在终端上执行即可)

    qf@qf:~/Desktop$ pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
    
  • 步骤2:执行安装scons软件包。scons软件包主要用于Hi3861SDK的编译和构建。(不要加sudo)

    qf@qf:~/Desktop$ pip3 install scons
    
  • 步骤3:安装kconfiglib软件包。kconfiglib软件包主要用于根据Kconfig配置文件生成Makefile代码段和头文件。

    qf@qf:~/Desktop$ pip3 install kconfiglib
    
  • 步骤4:执行 这两个软件包用于对编译生成的二进制文件进行签名。

    qf@qf:~/Desktop$ pip3 install pycryptodome ecdsa
    
  • 步骤5:执行环境变量命令,向~/.bashrc文件添加一行配置,用于将pip包二进制文件所在的目录添加到PATH环境变量中 在下 一次打开终端窗口时自动生效)。

    qf@qf:~/Desktop$ echo 'export PATH=~/.local/bin:$PATH' | tee -a ~/.bashrc
    
  • 步骤6:执行安装 prompt_toolkit。prompt_toolkit 是一个用于构建强大的命令行界面的库,它支持许多高级功能,如自动补全、语法高亮、多行编辑等。它被广泛用于构建复杂的命令行应用程序,比如 Python 的 REPL(交互式解释器)和其他需要丰富用户界面的命令行工具。

    qf@qf:~/Desktop$  pip install prompt_toolkit
    
【补充解决】Windows下无法 复制内容到 Linux

需要补充安装 vm-tools

qf@qf:~/Desktop$ sudo apt-get install open-vm-tools
qf@qf:~/Desktop$ sudo apt-get install open-vm-tools-desktop

安装之后,重启电脑,支持从 Windows 复制内容到 Linux,需要将 OpenHarmony 原码内容全部复制到桌面方便使用

1.3.4 移动解压所有 OpenHarmony 相关资源

拷贝 OpenHarmony 原码和相关依赖拷贝到 Ubuntu 中,建议在桌面创建文件,方便后续操作!

解压所有的压缩包,利用 tar 命令 ,目前所有资源所在路径为

/home/qf/Desktop/OpenHarmony

解压操作,以下命令全部执行

qf@qf:~/Desktop/OpenHarmony$ tar xvf gn.1523.tar 
qf@qf:~/Desktop/OpenHarmony$ tar xvf ninja.1.9.0.tar 
qf@qf:~/Desktop/OpenHarmony$ tar xvf gcc_riscv32-linux-7.3.0.tar.gz
qf@qf:~/Desktop/OpenHarmony$ tar xvf harmonyos_1.0.tar.gz 
qf@qf:~/Desktop/OpenHarmony$ tar xvf code-v3.0-LTS.tar.gz 

1.3.5 OpenHarmony 开发环境变量配置
  • 交叉编译工具 gcc_riscv32-linux-7.3.0.tar.gz , 在 Linux 环境中,编译代码内容,编译的最终结果支持目标硬件设备运行。配置交叉编译工具环境

  • 将交叉编译工具的路径

    qf@qf:~/Desktop/OpenHarmony$ echo 'export PATH=/home/qf/Desktop/OpenHarmony/gcc_riscv32/bin:$PATH' >> ~/.bashrc
    
  • 构建工具 ninja.1.9.0.tar , OpenHarmony 构建项目必要资源。配置构建工具环境

    qf@qf:~/Desktop/OpenHarmony$ echo 'export PATH=/home/qf/Desktop/OpenHarmony/ninja:$PATH' >> ~/.bashrc
    
  • 配套工具 gn

    qf@qf:~/Desktop/OpenHarmony$ echo 'export PATH=/home/qf/Desktop/OpenHarmony/gn:$PATH' >> ~/.bashrc
    
1.3.6 安装 hb 工具
  • 用于编译当前 OpenHarmony 原码内容和后续项目内容,常用命令有

    
    

hb build -f
hb set
hb -h


- 利用 pip 安装 hb 工具,**【要求必须在当前 OpenHarmony 原码路径下, 原码路径对应】**

 ```shell
~/Desktop/OpenHarmony/code-v3.0-LTS/OpenHarmony
qf@qf:~/Desktop/OpenHarmony/code-v3.0-LTS/OpenHarmony$ python3 -m pip install build/lite
  • 测试 hb -h 是否有效,在 OpenHarmony 原码路径下

    qf@qf:~/Desktop/OpenHarmony/code-v3.0-LTS/OpenHarmony$ hb -h
    
  • 出现错误,搜索目标 from_dict.py 文件

    find ~/.local/* -name from_dict.py
    

    对应 from_dict.py 路径

    /home/qf/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py
    

    利用 gedit 修改代码内容

    sudo gedit /home/qf/.local/lib/python3.10/site-packages/prompt_toolkit/styles/from_dict.py
    

    再次测试 hb -h

1.3.7 编译 OpenHarmony 原码
  • 设置当前 hb 编译操作和相关设备绑定,在 OpenHarmony 原码路径下进行操作

    qf@qf:~/Desktop/OpenHarmony/code-v3.0-LTS/OpenHarmony$ hb set
    

  • 常见问题一,环境变量未生效,两种方案,【1.重启终端 2.source 生效】

    source ~/.bashrc
    
  • 常见问题二, 编译原码内容,原码所需 python 要求指令为 python ,但是当前环境为 python3,可以利用软连接方式,设置软连接 python 指向 python3

    sudo ln -s /usr/bin/python3 /usr/bin/python
    

2. 烧录程序

2.1 安装 CH340 驱动

串口驱动,后续 STM32 开发也是基于 CH340 进行串口通信,获取相关数据,海思芯片需要利用串口进行程序烧录和串口数据调试。

安装无需修改任何内容,直接调用安装即可

2.2 利用 HiBurn 烧录程序
  • 确认设备链接
  • 打开 HiBurn 烧录工具
  • 当前 OpenHarmony 编译结果对应文件
\\192.168.13.227\qf\Desktop\OpenHarmony\code-v3.0-LTS\OpenHarmony\out\hispark_pegasus\wifiiot_hispark_pegasus
2.3 利用串口调试工具查看当前板载程序执行效果

36-串口调试工具查看当前设备工作情况.png