在之前的文章中,我们是通过在windows下烧录,在ubuntu下编译的方式进行开发。今天我们同样是采用windows+ubuntu混合环境进行开发。为什么要采用这种方式呢?因为就目前而言,大部分的开发板还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。
本次的任务就是使用windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接ubuntu下的DevEco Device Tool(可以不安装Visual Studio Code),然后对ubuntu下的源码进行开发、编译、烧录等。
ubuntu版本:20.04
windows版本:win10
1).使用如下命令查看shell类型,如果不是bash,则需要修改。如果是bash,则直接跳过当前步骤。
ls -l /bin/sh
这里简要说明一下为什么要从dash修改为bash 。
bash(GNU Bourne-Again Shell)是许多Linux平台内定的shell,但是因为bash过于复杂,有人把bash从NetBSD移植到Linux并更名为dash(Debian Almquist shell),并建议将/bin/sh指向它,以获取更快的脚本执行速度。dash比bash小很多,符合POSIX标准。它主要是为了执行脚本而出现,并不是交互。但是功能相比bash要少很多,所以有一些脚本使用dash无法运行,就需要修改shell的类型。
2).在终端中输入如下指令,然后选择No,将ubuntu shell修改为bash。
sudo dpkg-reconfigure dash
再通过ls -l /bin/sh来查看shell版本,已经修改为bash
点击华为集成开发环境IDE DevEco Device Tool下载 | HarmonyOS设备开发进入下载页面,选择Linux版本进行下载。这里以3.1 Release版本为例。
下载完成后,对zip包进行解压。
unzip devicetool-linux-tool-3.1.0.500.zip
解压完成后,给安装文件赋予可执行权限。
chmod u+x devicetool-linux-tool-3.1.0.500.sh
执行安装命令
sudo ./devicetool-linux-tool-3.1.0.500.sh
隐私协议和用户协议选择同意。通过键盘选择,直接回车即可选择。
安装成功后,显示如下。
注:这里安装需要python的版本为3.8以上。
下载windows版本,并解压
双击.exe进行安装。注:如果之前安装过旧版本,安装时会自动卸载旧版本。
因为安装需要python版本为3.8~3.9,如果版本不够,会提示进行安装,直接点击安装即可。
Python安装成功后,继续安装DevEco。
在ubuntu中,打开终端,并输入如下指令安装SSH服务。
sudo apt-get install openssh-server
注:如果提示openssh-servert和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。
启动SSH服务
sudo systemctl start ssh
查看当前SSH状态
sudo service ssh status
获取ubuntu下的IP地址
ifconfig
注:如果提示command-not-found,则使用如下命令进行安装
sudo apt-get install net-tools
打开VSCode,在“扩展”中搜索“remote-ssh”,并且安装
安装成功后,在“已安装”列表中是可以找到的。
在“远程资源管理器”中选择“远程”,并在SSH中点击“+”
在弹出的SSH连接命令输入窗口中输入“ssh username@ip_address”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的账号。
在弹出的输入框中,选择SSH configuration文件,选择默认的第一个选项即可。
在弹出的提示框中选择“connect”。点击后,会打开一个新的VSCode窗口。
选择要连接的主机,选linux
输入登录密码
此时再看“远程资源管理器”中,已经出现了添加的远程服务器。
后续如果想打开已经添加过的服务器,直接点击这里就可以连接了。
此时,就可以在Windows下通过DevEco Device Tool界面进行源码开发、编译、烧录操作。
完成上述操作后,就可以通过Windows远程连接Ubuntu环境进行开发了,但是在每次打开VSCode时,总是需要重新输入密码,比较麻烦。可以通过环境公钥设置来解决。
在Windows下打开Git bash命令行窗口,并输入以下命令生成SSH公钥。
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip
注:username为远程ubuntu的登录账号,ip为远程ubuntu的IP地址。
执行指令ssh-keygen后,会有几个需要确认的地方,这里直接默认回车就行。
执行ssh-copy-id后,输入登录密码即可。
打开VSCode,并在“远程资源管理器”中设置连接的config文件。
在config文件中添加SSK Key文件信息
这个文件路径,在安装ssh-keygen是有打印。
此时再打开远程连接,发现已经不需要输入密码了。