
嵌入式鸿蒙开发环境搭建教程
OpenHarmony
1. Ubuntu 22.04 环境安装
1.1 VM 虚拟机配置 Ubuntu 环境
VM新建虚拟机
创建虚拟机模式选择

安装操作系统后续选择

操作系统选择Linux和Ubuntu64

虚拟机名称和所在位置

虚拟机硬盘大小选择

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

设置当前光驱ISO镜像文件

网络设置

自定义硬件参数确认

1.2 启动 Ubuntu 22.04 安装
Ubuntu启动安装选项选择

Ubuntu语言选择和安装确认

键盘布局选择

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

擦除整个磁盘安装Ubuntu

擦除安装确认

时区选择

用户名和密码

进入安装界面

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
配置当前 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 利用串口调试工具查看当前板载程序执行效果
- 感谢你赐予我前进的力量