新手第一次使用鸿蒙固件开发,做一个总结,仅供参考。

1.开发环境搭建

1.1搭建Linux开发环境

首先安装VMware15.5+Ubuntu20.04.4。

最开始安装的是Ubuntu18.04.6,默认python版本是2.7,(编译需要python3.7及以上版本),经过一番操作把python升级到3.9之后发现编译不了,只好卸载重新安装Ubuntu20.04.4,默认Python版本就是3.8.10。

1.2基础软件安装

        1.2.1 安装linux使用基础软件

        1.sudo apt-get update && sudo apt-get install -y vim net-tools

        --sudo apt-get update 更新软件列表

        --vim linux 编辑器

        --net-tools  linux网络工具(ifconfig查看网络工具)

        2.sudo apt-get install -y openssh-server

        --openssh-server ssh服务,便于ssh远程连接

        1.2.2 安装obaXterm远程登录虚拟机

        (1)ifconfig查看虚拟机IP

        (2)MobaXterm远程登录配置:

        

Android 编译鸿蒙包 自己编译鸿蒙_Android 编译鸿蒙包

        (3)登录成功后

        

Android 编译鸿蒙包 自己编译鸿蒙_python_02

1.3交叉编译器安装

将编译器解压缩到安装目录下,以"/toolchain"为例:

        1. 复制压缩包toolchain.zip到"/code"目录下,解压缩。
        2. 递归修改编译器安装目录权限:chmod -R 755 /toolchain。
        3. 设置环境变量: vim /etc/profile,新增:

         export PATH=PATH=/home/janna/code/toolchain/hcc_riscv32/bin:$PATH
        4. 生效环境变量: source /etc/profile。
        5. Shell命令行中输入“ riscv32-unknown-elf-gcc -v”,如果能正确显示编译器版本号,
表明编译器安装成功。

Android 编译鸿蒙包 自己编译鸿蒙_Python_03

Android 编译鸿蒙包 自己编译鸿蒙_鸿蒙_04

1.4环境配置       

        1.4.1 打开Linux终端,输入命令“ python3 -V”,查看Python版本号,推荐python3.7以上
版本。

        1.4.2 安装编译依赖基础软件

        sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev

        --build-essential 提供编译程序必须软件包的列表信息        

        --gcc gcc编译器

        --g++ g++编译器

        --make 编译工具

        --zlib* 数据压缩函式库

        --libffi-dev libffi的开发文件

    

        1.4.3安装配置Python

        (1)安装并升级Python包管理工具(pip3):

         sudo apt-get install python3-setuptools python3-pip -y

        sudo pip3 install --upgrade pip

        验证是否安装成功:

Android 编译鸿蒙包 自己编译鸿蒙_鸿蒙_05

        (2)建立软连接,将python指向python3.8:

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

        验证是否修改成功:

Android 编译鸿蒙包 自己编译鸿蒙_python_06

      

        1.4.4配置pip包下载源,加速国内安装pip包:

mkdir ~/.pip/

cat <<EOF > ~/.pip/pip.conf

[global]

index-url = https://mirrors.huaweicloud.com/repository/pypi/simple

trusted-host = mirrors.huaweicloud.com

timeout = 120

EOF

         1.4.5安装Scons,版本要求3.0.4以上:

sudo apt-get install -y scons

scons -v

        1.4.6安装Python模块

sudo pip3 install setuptools kconfiglib pycryptodome ecdsa --upgrade --ignore-installed six

        --setuptools  是Python的 distutils增强工具,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。

         --kconfiglib  是 Python 2/3 中的 Kconfig 实现。它最初是一个帮助程序库,但现在具有足够的功能,也可以作为独立的 Kconfig 实现(包括终端和 GUI 菜单配置接口以及 Kconfig 扩展)。

         --pycryptodome 是Python一个强大的加密算法库

         --ecdsa 主要用于对数据(比如一个文件)创建数字签名,以便于在不破坏其安全性的前提下对其真实性进行验证。

         --six 是一个专门用来兼容 Python 2 和 Python 3 的库         

        1.4.7安装hb

python3 -m pip install --user ohos-build

        若安装了hb,先卸载:pip3 uninstall ohos-build,再执行  pip3 install build/lite

        1.4.8 打开bash.sh,修改成自己的路径

Android 编译鸿蒙包 自己编译鸿蒙_编译器_07

Android 编译鸿蒙包 自己编译鸿蒙_Python_08

2.编译步骤

1.找到toolchain文件夹,source bash.sh

2.执行 hb set命令

(1) [OHOS INFO] Input code path:后输入"."

(2)选择hi3861,回车

Android 编译鸿蒙包 自己编译鸿蒙_Python_09

(3)执行hb build 命令,进行编译

(4)镜像文件在out/hi3861/hi3861目录下

Android 编译鸿蒙包 自己编译鸿蒙_编译器_10

3.在Windows打开工程源码

        1.目前HarmonyOS源码只支持在Linux系统中进行编译,可以将Linux环境下的工程目录映射到Windows环境,然后使用VSCode打开,并在Windows环境下进行烧录和调试。映射方法如下:

1.在Linux上,设置HarmonyOS源码所在文件夹为共享文件夹。
安装Samba
sudo apt-get install samba

配置Samba
sudo vim /etc/samba/smb.conf

添加以下内容
path = /home/janna/code
available = yes
valid users = janna
read only = no
browsable = yes
public = yes
writable = yes

设置Samba用户名和密码
sudo smbpasswd -a janna

重启Samba
sudo /etc/init.d/smbd restart

2.在Windows上,鼠标右键单击“此电脑”,选择“映射网络驱动器(N)”。

3.选择一个未使用的驱动器,并设置HarmonyOS源码所在的路径,格式为“\\Linux IP地址\共享文件夹名称”,如:\\192.168.0.224\HarmonyOS_Code,点击“完成”。

        

Android 编译鸿蒙包 自己编译鸿蒙_Python_11

 

4.镜像烧录--HiBurn配置

  1.打开HiBurn工具,点击Setting->Com settings,修改Baud,提升烧写速度

        

Android 编译鸿蒙包 自己编译鸿蒙_鸿蒙_12

   2.HiBurn烧写配置

(1)COM:选择对应的串口号

(2)Select file:添加编译好的烧写镜像     Hi3861_wifiiot_app_allinone.bin

(3)Auto burn:自动烧录

(4)点击connect连接开发板

(5)需要按下开发板上的RST按钮开始烧录

        

Android 编译鸿蒙包 自己编译鸿蒙_Python_13

  3.烧录完成

(1)待窗口出现Execution Successful时,说明烧录成功;

(2)点击Disconnect,断开连接

(3)按下RST程序开始运行