发表自话题:HarmonyOS 2
0、序
由于HarmonyOS的源码编译需要Linux环境,目前HarmonyOS源码只支持在Linux系统中进行编译,可以将Linux环境下的工程目录映射到Windows环境下,然后使用DevEco Device Tool打开,并在Windows环境下进行烧录和调试。所以需要Linux server + Win workstations + Dev Kit结合使用。
1、首先配置Windows端环境
1.1、安装visual studio code
官网传送门:https://code.visualstudio.com/,勾选添加到PATH。
安装成功,可在命令行工具进行软件版本的验证:code --version。
1.2、安装Node.js
官网传送门:https://nodejs.org/en/download/,根据自己PC的系统下载对应的版本。
安装start…
下载完成后,点击软件包进行安装,勾选图中的选项框,自动安装必要工具(如Python、Visual Studio构建工具链);
显示安装完成之后,点击任意键继续,安装其他依赖的工具;
新增NODE_PATH变量,值为:C:\Users{userName}\AppData\Roaming\npm\node_modules,其中userName请替换为实际的用户名称,验证是否安装成功,打开命令行工具,输入"node -v",能显示出版本号即安装成功。
1.3、安装JDK
打开命令行工具,输入java -version命令,检查版本号是否1.8版本。安装JDK不再赘述,版本要求为:1.8版本。
1.4、安装hpm
npm install -g @ohos/hpm-cli
查看hpm的版本,检查是否安装成功。
1.5、安装VS code插件
下载离线包,采用磁盘安装的方式,下载DevEco Device Tool安装包传送门:https://device.harmonyos.com/cn/ide
详细的安装方法:https://device.harmonyos.com/cn/ … ection5353233124511(环境准备章节)。
2、Ubuntu环境配置
2.1、Ubuntu虚拟机的安装
Ubuntu使用的是2020.04 LTS版本,Ubuntu的安装流程就不再赘述了,跟着提示走就行了。
在安装Ubuntu后需要安装VMware Tools, 安装VM Tool之后就可以进行全屏操作,PC主机和虚拟机之间的粘贴、复制等操作了。 出现下述的问题时,先取消安装VM Tool工具,先将网络相关的工具先安装上,再进行安装。
安装完成,可以全屏了。
2.2、更换软件源
换源,将Ubuntu的软件源换成国内的软件源,在下更换的是五道口的源,由于原Ubuntu的软件源,server都是海外的,在软件安装时因网络问题造成的安装失败或者其他错误也遇到过不少,所以换成一个比较稳定的源还是挺重要的。PS:记得在换源之前,将原本的软件源文件进行备份以便不时之需。
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse换源之后更新软件列表和升级软件。
sudo apt-get update sudo apt-get upgrade2.3、shell设置
将Linux shell改为bash,首先查看shell是否为bash,如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改在终端运行如下命令。
选择 no即可。
2.4、python安装
2.4.1、python3安装
sudo apt-get install python3.8若系统已安装python3.8或python3.7以上版本则可跳过此步骤。
2.4.2、pip管理工具安装
获取安装包进行安装
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 使用安装包安装的方式,需要先安装curl。
2.4.3、安装GUI menuconfig工具(Kconfiglib)
2.5、安装文件打包工具
1)安装dosfstools。 sudo apt-get install dosfstools 2)安装mtools。 sudo apt-get install mtools 3)安装mtd-utils。 sudo apt-get install mtd-utils2.6、安装编译环境
可从官网download下来安装,同时可在Ubuntu中借助wget工具下载,本人这里是在使用wget工具进行下载。
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar wget https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar wget https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar
设置环境变量
注意:上述文件都是存放在用户的根目录的哦。
设置完成之后,更新环境变量:
3、编译与烧录
3.1、编译
在linux服务器上,进入源码包根目录,目录内存放有build.py编译脚本,执行如下脚本编译源码包。结果文件生成在out/ipcamera_hi3516dv300目录下。
python build.py ipcamera_hi3516dv300 -b debug编译成功:
3.2、烧录
3.2.1、使用网口方式烧录
配置开发板和PC主机环境。
主机ping通,OK。
3.2.2、配置HiTool工具
选择烧录方式为网口烧录;设置服务器IP,即PC主机的IP;设置板端相关信息,即开发板的IP及物理地址等;根据分区信息添加要烧写的文件,本次烧录只烧写内核kernel、根文件系统rootfs、用户文件系统useRFs。关于HiTool的更多使用方法可以参考以下链接的视频教程:http://t.elecfans.com/v/17682.html。
烧录成功之后需要配置u-boot的启动参数:1)setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000"; 读取FLASH起始地址为0x800(单位为512B,即1MB),大小为0x4800(单位为512B,即9MB)的内容到0x80000000的内存地址,该大小(9MB)OHOS_Image.bin文件大小必须相同。 2)setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=15M rw"; 表示设置启动参数,输出模式为串口输出,波特率为115200,数据位8,rootfs挂载于emmc器件,文件系统类型为vfat,“rootaddr=10M rootsize=15M rw”处对应填入rootfs.img的烧写起始位置与长度,此处与rootfs.img文件时所填大小必须相同。 3)saveenv 保存启动参数。 4)reset 重启。
3.3、来自HarmonyOS的helloworld
#include #include "los_sample.h" int main(int argc, char **argv) { printf("\n************************************************\n"); printf("\n\t\tHello World!\n"); printf("\n\t\t\t\t From: OHOS\n"); printf("\n************************************************\n\n"); LOS_Sample(g_num); return 0; }
以上,来自HarmonyOS的Hello World!达成。
注:来源于电子发烧友论坛
本人主页:https://bbs.elecfans.com/user/2105315/
标签组:[linux编译]