干货!腾讯云服务器搭建鸿蒙Hi3861开发板开发环境

嵌入式ARM 2020-11-27 00:00

前言

此网文撰写耗时两天,成本288元,重复操作三遍,只为各位少踩坑,希望各位可以“分享点赞在看留言”四连鼓励一下。


安装Hi3861开发板的开发环境可以选择虚拟机、Docker、 WSL 或者实体Linux系统电脑,这几种方式都只合适单一的开发环境,像我这样的上班族,家里单位各一个电脑,用起来还是不太方便。

如果这个开发环境部署在云端,那岂不是我在哪都可以随时继续之前的工作了?想想就挺美好,恰好双十一腾讯云有新人活动:288元/三年(不是腾讯云的广告哈,其他云服务也一样,只是阿里云我不是新客户了,享受不了新人优惠),买起!

将文件夹共享出来容易有被黑的风险,需谨慎!!!

腾讯云购买

初始购买界面,乌班图Ubuntu的系统版本只能选择18.04,先购买了,然后后面升级为Ubuntu 20.04。

提交订单,三年费用288元,还是挺香的。

支付成功,进入控制台就可以管理我们的云服务器了。

腾讯云服务器登录

登录腾讯云服务器控制台

  1. 登录腾讯云服务器控制台:

https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fcvm%2Findex

打开上面链接,然后微信扫码即可登录腾讯云服务器控制台:

  1. 在实例管理页面,选择需要登录的Linux云服务器:

  1. 为了避免踩坑,重装系统为Ubuntu 20.04版本:
  1. 先重置一下云服务器的密码:

默认用户ubuntu和管理员用户root都进行一次密码重置。

  1. 单击右侧的【登录】,在弹出的【登录Linux实例】窗口,为了方便粘贴复制命令行,选择【标准登录方式】,单击【立即登录】。如下图所示:

在打开的 WebShell 登录页面,根据实际需求,选择【密码登录】或者【密钥登录】方式进行登录。如下图所示:

输入重置后的密码,如果登录成功,WebShell 界面会出现 Socket connection established 提示,证明登录成功。如下图所示:

  1. 进行操作之前先进行一下apt-get更新:
sudo apt-get update
  1. 安装一个图形界面:
sudo apt-get install ubuntu-desktop

安装完毕之后,记得重启一下系统:

//管理员权限下输入reboot
sudo reboot

这回登录方式选择:其它方式,如下:

点击“立即登录”之后就会进入Ubuntu的可视化桌面:

命令行+可视化界面操作更适合我这种Linux小白。

配置鸿蒙OS交叉编译环境

之前我们在Win10系统下,使用WSL的方式配置过一次鸿蒙开发环境,具体参考如下网文:

鸿蒙开发环境搭建、源码下载和编译

我们这次在腾讯云服务器上重新操作一遍,建议下面操作使用标准登录方式登录腾讯云服务器,这样方便粘贴下面的命令行。

推荐两次网文结合来看。

为了避免网友踩坑,我使用腾讯云控制台的重装系统功能,先后配置了三次环境,记录了详细搭建过程,分享如下。

查看Ubuntu Python版本

使用如下指令列出的python链接情况:

cd /usr/bin
ls -l python*

文档中有说明,一定要用python3.7及以上版本,本系统中已含有python3.8,满足条件。

配置 repo 工具

本系统如果直接下载鸿蒙的代码的话,可能会报如下错误:

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify

说明本Linux系统上还没有配置Repo命令,需要先下载并配置Repo命令行工具:

mkdir ~/bin/ 
sudo apt install curl     # 如果没有 curl 命令需要先下载 
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo 
chmod +x ~/bin/repo 
echo 'export PATH=~/bin:$PATH' >> ~/.bashrc 
source ~/.bashrc

下载Harmony OS源码


mkdir -p ~/harmonyos/openharmony && cd ~/harmonyos/openharmony 
sudo apt install git python # repo 工具本身是 python 脚本,它会调用 git 命令下载单个代码仓 
#开始前需要配置`user.name`和`user.email`,如果没有配置,使用如下命令进行配置: 
git config --global user.name "yourname" 
git config --global user.email "your-email-address" 
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify 
repo sync -c # 以后每天同步远程仓的修改,只需要执行这一条命令即可

下载完成:

安装文件系统打包工具

  1. 运行“mkfs.vfat”,如果未找到该命令,需要安装
  2. 运行“mcopy”,如果未找到该命令,需要安装
    sudo apt-get install dosfstools mtools # 官方文档说明的两个文件系统打包工具
    sudo apt-get install zip # 官方文档虽然没有写,但是打包 rootfs 过程中需要使用

到了此步骤,我测试“mkfs.vfat”和mcopy”指令系统中已存在,则不需要经过上面步骤进行安装了,具体测试如下:

下载、配置编译工具链

使用如下命令,分别下载 gn、ninja、LLVM、hc-gen 包,根据官方文档修改,一步到位, 不用反复复制粘贴!

#下载 gn/ninja/LLVM/hc-gen 包: 
URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler 
wget $URL_PREFIX/gn/1523/linux/gn.1523.tar 
wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar 
wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar 
wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

#编译 hi3861 需要 riscv 编译工具链 
wget $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz 
#解压 gn/ninja/LLVM/hc-gen 包: 
tar -C ~/ -xvf gn.1523.tar 
tar -C ~/ -xvf ninja.1.9.0.tar 
tar -C ~/ -xvf llvm-linux-9.0.0-34042.tar 
tar -C ~/ -xvf hc-gen-0.65-linux.tar 
tar -C ~/ -xvf gcc_riscv32-linux-7.3.0.tar.gz 

#向 ~/.bashrc 中追加 gn/ninja/LLVM/hc-gen 路径配置: 
cat <<EOF >> ~/.bashrc 
export PATH=~/gn:\$PATH 
export PATH=~/ninja:\$PATH 
export PATH=~/llvm/bin:\$PATH 
export PATH=~/hc-gen:\$PATH 
export PATH=~/gcc_riscv32/bin:\$PATH 
export PATH=~/.local/bin:\$PATH
EOF 

#生效环境变量 
source ~/.bashrc

准备 virtualenv

sudo apt install python3-pip

#安装 virtualenv 
pip3 install virtualenv


#创建使用 python3.8 为默认 python 解释器的 virtualenv 
mkdir ~/harmonyos/venv && virtualenv -p python3.8 ~/harmonyos/venv 

#激活 virtualenv,激活后的 pip3 install 会将包文件缓存到相应的子目录中 
source ~/harmonyos/venv/bin/activate 

#安装 setuptools 和 kconfiglib 
pip3 install setuptools kconfiglib 

#安装编译 hi3861 需要的 pip 包 
pip3 install scons ecdsa pycryptodome 
pip3 install --upgrade --ignore-installed six 

#关闭虚拟环境
deactivate

可选:将激活脚本添加到 bashrc 中,下次登录默认自动激活此 python 虚拟环境,可以使用deactivate 使虚拟环境无效。

cat <<EOF >> ~/.bashrc 
source ~/harmonyos/venv/bin/activate 
EOF

#生效环境变量 
source ~/.bashrc

编译源码

编译 3861 目标平台的命令执行:/bin/python build.py wifiiot

安装并配置Samba服务器

参考如下网文:

安装并配置Samba服务器--将HarmonyOS的文件映射到Windows 中

安装samba

sudo apt-get install samba

配置samba

root权限下终端输入如下指令:

sudo vim /etc/samba/smb.conf 

配置文件末尾添加:

[sharepath]   
comment = harmony
path = /home/ubuntu/harmonyos/openharmony
writeable = yes
valid user = ubuntu

ESC键退出vim的插入状态,然后输入 :wq ,保存退出vim。

添加samba用户

添加samba用户:ubuntu ,密码设置为:123456。

sudo smbpasswd -a ubuntu

重启samba服务

sudo service smbd restart

端口映射

因为出于安全考虑,腾讯云禁止了139和445端口,这样在腾讯云上面配置的samba服务器是无法连接上的。

我们修改samba服务器使用的端口:

sudo vim /etc/samba/smb.conf 

在[global]字段下面添加一句:smb ports = 4455

[global]
   smb ports = 4455

然后保存退出,然后重启samba服务。

sudo service smbd restart

为了能够正常使用samba服务器,我们需要对本地Windows端口号进行映射,网上找到一个软件divertTCPconn.exe可以实现此功能,在控制台cmd中输入:

divertTCPconn.exe 445 4455

自己编写一个脚本,双击自动运行就好了,省得每次都要在控制台中输入命令。

映射网络驱动器

端口映射完成之后,保持控制台界面开启状态,右键“此电脑” --> “映射网络驱动器”--> 输入“\\你的服务器ip\sharepath”--> 点击完成

账号为上面设置的:ubuntu,密码为123456。

Windows下编译

鸿蒙系统固件编译和烧写的方法:

源码编译

IDE终端工具打开方法

使用OpenHarmony IDE工具DevEco的终端工具连接Linux服务器。(OpenHarmony IDE工具DevEco集成了终端工具的能力,基本使用请参考官方指导文档)依次点击“View”、“Terminal”,即可打开IDE终端工具。

ssh连接虚拟机

先启动虚拟机,然后在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完成,

固件下载过程

  1. 安装串口驱动

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命令等功能。

  1. IDE烧录配置

串口烧录参数配置

  • Baud Rate:921600
  • Data bit:8

Burn Files选择

文件存放路径:

.\out\wifiiot\Hi3861_wifiiot_app_allinone.bin

上面截图,在Windows系统下直接打开了虚拟机中的文件,使用的是Samba服务器实现的,具体实现细节可以参考:

安装并配置Samba服务器--将HarmonyOS的文件映射到Windows 中

RISC-V系列代码烧录

点击下图中Burn右侧的三角按钮,进入烧写固件模式,稍后上面会弹出串口选择列表,选择对应的串口(我的机器使用COM3与Hi3861模块相连),如果环境搭建没有问题的话,即可完成固件的下载。

如果点击下载的三角按钮,出现下图所示错误:

根据错误提示,使用如下指令查找npm所在路径:

npm config get prefix

那么,我们在系统环境变量中添加:

NODE_PATH = C:\Users\Administrator\AppData\Roaming\npm\node_modules

即可。

测试WiFi模组

使用串口助手工具,连接Hi3861模组串口(我的机器是COM3),并配置好波特率115200,同时勾选“发送新行”,确保输入字符串以"\r\n"结尾,避免AT命令无法输入。

复位WLAN模组,终端界面显示“ready to OS start”,证明WiFi模组复位成功。

在窗口助手中,依次执行如下AT命令,使Hi3861模块启动STA模式,连接指定AP热点,并开启DHCP功能。

命令 含义
AT+STARTSTA 启动STA模式
AT+SCAN 扫描周边AP
AT+SCANRESULT 显示扫描结果
AT+CONN="SSID",,2,"PASSWORD" 连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码
AT+STASTAT 查看连接结果
AT+DHCP=wlan0,1 通过DHCP向AP请求wlan0的IP地址
AT+IFCFG 查看模组接口IP
AT+PING=X.X.X.X 查看WLAN模组与网关联通是否正常,其中X.X.X.X需替换为实际的网关地址

ssh连接服务器

在VS Code的终端(TERMINAL)界面输入如下指令:

ssh ubuntu@***.***.***.***(服务器IP)

编译代码

在VS Code的终端界面输入如下指令完成代码编译:

source ~/.bashrc
python build.py wifiiot

编译成功

下载成功

至此,腾讯云上搭建Hi3861开发环境完毕,这样我也就不用编写VS Code代码前先启动一下虚拟机了,大家感兴趣的可以玩玩哈。


-END-

来源 | 嵌入式从0到1

作者 | 程序员XiaoHa


整理文章为传播相关技术,版权归原作者所有 |

如有侵权,请联系删除 |


【1】大佬终于把鸿蒙OS讲明白了,收藏了!

【2】必看!影响嵌入式薪资的各种原因!

【3】我的单片机转嵌入式Linux之路:一位大佬的完美转变!

【4】电气毕业生在国家电网都干啥工作?

【5】让你永远忘不了的傅里叶变换解析



嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 84浏览
  • 近期,智能家居领域Matter标准的制定者,全球最具影响力的科技联盟之一,连接标准联盟(Connectivity Standards Alliance,简称CSA)“利好”频出,不仅为智能家居领域的设备制造商们提供了更为快速便捷的Matter认证流程,而且苹果、三星与谷歌等智能家居平台厂商都表示会接纳CSA的Matter认证体系,并计划将其整合至各自的“Works with”项目中。那么,在本轮“利好”背景下,智能家居的设备制造商们该如何捉住机会,“掘金”万亿市场呢?重认证快通道计划,为家居设备
    华普微HOPERF 2025-01-16 10:22 194浏览
  • 实用性高值得收藏!! (时源芯微)时源专注于EMC整改与服务,配备完整器件 TVS全称Transient Voltage Suppre,亦称TVS管、瞬态抑制二极管等,有单向和双向之分。单向TVS 一般应用于直流供电电路,双向TVS 应用于电压交变的电路。在直流电路的应用中,TVS被并联接入电路中。在电路处于正常运行状态时,TVS会保持截止状态,从而不对电路的正常工作产生任何影响。然而,一旦电路中出现异常的过电压,并且这个电压达到TVS的击穿阈值时,TVS的状态就会
    时源芯微 2025-01-16 14:23 186浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 187浏览
  • 一个易用且轻量化的UI可以大大提高用户的使用效率和满意度——通过快速启动、直观操作和及时反馈,帮助用户快速上手并高效完成任务;轻量化设计则可以减少资源占用,提升启动和运行速度,增强产品竞争力。LVGL(Light and Versatile Graphics Library)是一个免费开源的图形库,专为嵌入式系统设计。它以轻量级、高效和易于使用而著称,支持多种屏幕分辨率和硬件配置,并提供了丰富的GUI组件,能够帮助开发者轻松构建出美观且功能强大的用户界面。近期,飞凌嵌入式为基于NXP i.MX9
    飞凌嵌入式 2025-01-16 13:15 219浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 57浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 310浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 146浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 205浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 118浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 189浏览
  • 随着智慧科技的快速发展,智能显示器的生态圈应用变得越来越丰富多元,智能显示器不仅仅是传统的显示设备,透过结合人工智能(AI)和语音助理,它还可以成为家庭、办公室和商业环境中的核心互动接口。提供多元且个性化的服务,如智能家居控制、影音串流拨放、实时信息显示等,极大提升了使用体验。此外,智能家居系统的整合能力也不容小觑,透过智能装置之间的无缝连接,形成了强大的多元应用生态圈。企业也利用智能显示器进行会议展示和多方远程合作,大大提高效率和互动性。Smart Display Ecosystem示意图,作
    百佳泰测试实验室 2025-01-16 15:37 194浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 117浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 152浏览
  • 晶台光耦KL817和KL3053在小家电产品(如微波炉等)辅助电源中的广泛应用。具备小功率、高性能、高度集成以及低待机功耗的特点,同时支持宽输入电压范围。▲光耦在实物应用中的产品图其一次侧集成了交流电压过零检测与信号输出功能,该功能产生的过零信号可用于精确控制继电器、可控硅等器件的过零开关动作,从而有效减小开关应力,显著提升器件的使用寿命。通过高度的集成化和先进的控制技术,该电源大幅减少了所需的外围器件数量,不仅降低了系统成本和体积,还进一步增强了整体的可靠性。▲电路示意图该电路的过零检测信号由
    晶台光耦 2025-01-16 10:12 107浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦