发表时间:2022-03-26来源:网络
安装Hi3861开发板的开发环境可以选择虚拟机、Docker、 WSL 或者实体Linux系统电脑,这几种方式都只合适单一的开发环境,像我这样的上班族,家里单位各一个电脑,用起来还是不太方便。
如果这个开发环境部署在云端,那岂不是我在哪都可以随时继续之前的工作了?想想就挺美好,恰好双十一腾讯云有新人活动:288元/三年(不是腾讯云的广告哈,其他云服务也一样,只是阿里云我不是新客户了,享受不了新人优惠),买起!
将文件夹共享出来容易有被黑的风险,需谨慎!!!
初始购买界面,乌班图Ubuntu的系统版本只能选择18.04,先购买了,然后后面升级为Ubuntu 20.04。
提交订单,三年费用288元,还是挺香的。
支付成功,进入控制台就可以管理我们的云服务器了。
https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fcvm%2Findex
打开上面链接,然后微信扫码即可登录腾讯云服务器控制台:
在实例管理页面,选择需要登录的Linux云服务器:为了避免踩坑,重装系统为Ubuntu 20.04版本:先重置一下云服务器的密码:默认用户ubuntu和管理员用户root都进行一次密码重置。
单击右侧的【登录】,在弹出的【登录Linux实例】窗口,为了方便粘贴复制命令行,选择【标准登录方式】,单击【立即登录】。如下图所示:在打开的 WebShell 登录页面,根据实际需求,选择【密码登录】或者【密钥登录】方式进行登录。如下图所示:
输入重置后的密码,如果登录成功,WebShell 界面会出现 Socket connection established 提示,证明登录成功。如下图所示:
进行操作之前先进行一下apt-get更新:sudo apt-get update安装完毕之后,记得重启一下系统:
//管理员权限下输入reboot这回登录方式选择:其它方式,如下:
点击“立即登录”之后就会进入Ubuntu的可视化桌面:
命令行+可视化界面操作更适合我这种Linux小白。
之前我们在Win10系统下,使用WSL的方式配置过一次鸿蒙开发环境,具体参考如下网文:
鸿蒙开发环境搭建、源码下载和编译
我们这次在腾讯云服务器上重新操作一遍,建议下面操作使用标准登录方式登录腾讯云服务器,这样方便粘贴下面的命令行。
推荐两次网文结合来看。
为了避免网友踩坑,我使用腾讯云控制台的重装系统功能,先后配置了三次环境,记录了详细搭建过程,分享如下。
使用如下指令列出的python链接情况:
cd /usr/bin文档中有说明,一定要用python3.7及以上版本,本系统中已含有python3.8,满足条件。
本系统如果直接下载鸿蒙的代码的话,可能会报如下错误:
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify说明本Linux系统上还没有配置Repo命令,需要先下载并配置Repo命令行工具:
mkdir ~/bin/下载完成:
到了此步骤,我测试“mkfs.vfat”和mcopy”指令系统中已存在,则不需要经过上面步骤进行安装了,具体测试如下:
使用如下命令,分别下载 gn、ninja、LLVM、hc-gen 包,根据官方文档修改,一步到位, 不用反复复制粘贴!
#下载 gn/ninja/LLVM/hc-gen 包:可选:将激活脚本添加到 bashrc 中,下次登录默认自动激活此 python 虚拟环境,可以使用deactivate 使虚拟环境无效。
cat ~/.bashrc编译 3861 目标平台的命令执行:/bin/python build.py wifiiot
参考如下网文:
安装并配置Samba服务器--将HarmonyOS的文件映射到Windows 中
root权限下终端输入如下指令:
sudo vim /etc/samba/smb.conf配置文件末尾添加:
[sharepath]ESC键退出vim的插入状态,然后输入 :wq ,保存退出vim。
添加samba用户:ubuntu ,密码设置为:123456。
sudo smbpasswd -a ubuntu因为出于安全考虑,腾讯云禁止了139和445端口,这样在腾讯云上面配置的samba服务器是无法连接上的。
我们修改samba服务器使用的端口:
sudo vim /etc/samba/smb.conf在[global]字段下面添加一句:smb ports = 4455
[global]然后保存退出,然后重启samba服务。
sudo service smbd restart为了能够正常使用samba服务器,我们需要对本地Windows端口号进行映射,网上找到一个软件divertTCPconn.exe可以实现此功能,在控制台cmd中输入:
divertTCPconn.exe 445 4455自己编写一个脚本,双击自动运行就好了,省得每次都要在控制台中输入命令。
端口映射完成之后,保持控制台界面开启状态,右键“此电脑” --> “映射网络驱动器”--> 输入“\\你的服务器ip\sharepath”--> 点击完成
账号为上面设置的:ubuntu,密码为123456。
鸿蒙系统固件编译和烧写的方法:
使用OpenHarmony IDE工具DevEco的终端工具连接Linux服务器。(OpenHarmony IDE工具DevEco集成了终端工具的能力,基本使用请参考官方指导文档)依次点击“View”、“Terminal”,即可打开IDE终端工具。
先启动虚拟机,然后在VS Code的终端(TERMINAL)界面输入如下指令:
ssh harmony@172.18.3.254其中172.18.3.254为虚拟机Ubuntu Linux的IP,我们可以看到命令执行完毕之后,VS Code的终端进入了虚拟机的终端:
在VS Code的终端界面输入如下指令:
python build.py wifiiot注意: 要在 /home/harmony/harmony/code/code-1.0 目录下执行上面的指令。
编译结束后,如果出现“BUILD SUCCESS”字样,则证明构建成功。
构建成功后,使用指令:
ls -l out/wifiiot/查看输出文件,会在./out/wifiiot/路径中生成以下文件,我们看到时间是刚刚编译的时间,说明没有问题,至此编译构建流程结束。
Ubuntu虚拟机中查看,下图中的目录和上图的目录两者是一样的。
烧录Hi3861 WLAN模组固件可以通过OpenHarmony IDE工具DevEco完成,
Hi3861 WLAN模组上面有一个Type C USB接口与CH340G芯片连接,实现了USB转串口功能。
我们使用USB线连接WLAN模组(需预先安装USB转串口驱动,安装时需要先连接模组,驱动下载地址:http://www.wch.cn/search?q=ch340g&t=downloads),Type C的另一端与USB口相连,然后在设备管理器中查看COM口,如USB-SERIAL CH340(COM3),该串口集成了烧录、日志打印、AT命令等功能。
IDE烧录配置文件存放路径:
.\out\wifiiot\Hi3861_wifiiot_app_allinone.bin
上面截图,在Windows系统下直接打开了虚拟机中的文件,使用的是Samba服务器实现的,具体实现细节可以参考:
安装并配置Samba服务器--将HarmonyOS的文件映射到Windows 中
点击下图中Burn右侧的三角按钮,进入烧写固件模式,稍后上面会弹出串口选择列表,选择对应的串口(我的机器使用COM3与Hi3861模块相连),如果环境搭建没有问题的话,即可完成固件的下载。
如果点击下载的三角按钮,出现下图所示错误:
根据错误提示,使用如下指令查找npm所在路径:
npm config get prefix那么,我们在系统环境变量中添加:
NODE_PATH = C:\Users\Administrator\AppData\Roaming\npm\node_modules即可。
使用串口助手工具,连接Hi3861模组串口(我的机器是COM3),并配置好波特率115200,同时勾选“发送新行”,确保输入字符串以"\r\n"结尾,避免AT命令无法输入。
复位WLAN模组,终端界面显示“ready to OS start”,证明WiFi模组复位成功。
在窗口助手中,依次执行如下AT命令,使Hi3861模块启动STA模式,连接指定AP热点,并开启DHCP功能。
命令含义AT+STARTSTA启动STA模式AT+SCAN扫描周边APAT+SCANRESULT显示扫描结果AT+CONN="SSID",,2,"PASSWORD"连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码AT+STASTAT查看连接结果AT+DHCP=wlan0,1通过DHCP向AP请求wlan0的IP地址AT+IFCFG查看模组接口IPAT+PING=X.X.X.X查看WLAN模组与网关联通是否正常,其中X.X.X.X需替换为实际的网关地址在VS Code的终端(TERMINAL)界面输入如下指令:
ssh ubuntu@***.***.***.***(服务器IP)在VS Code的终端界面输入如下指令完成代码编译:
source ~/.bashrc至此,腾讯云上搭建Hi3861开发环境完毕,这样我也就不用编写VS Code代码前先启动一下虚拟机了,大家感兴趣的可以玩玩哈。
-END-
2022-03-26
2022-03-26
2022-02-14
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26