小白一个,因为项目原因需要用到小熊派BearPi Nano做开发,决定使用WSL2上的Ubuntu 20.04进行开发环境的搭建,记录一下搭建的流程,过程难免有疏漏,望谅解。
过程中参考了@随遇而安的dandelion 大佬的这一篇文章:搭建鸿蒙设备开发环境:Ubuntu20.04+DevEco Device Tool Release 3.0,感谢大佬
1 WSL2
1.1 启用WSL2
按Win+R打开运行,输入control
打开控制面板,点击程序。
点击启用或关闭Windows功能。
勾选Windows虚拟机监控程序平台,适用于Windows的Linux子系统,虚拟机平台,等待更改完成,重新启动。
1.2 升级WSL2
按Win+X,选择终端管理员。
输入以下命令更新WSL2版本:
wsl --update
等待更新完成后,输入以下命令将WSL默认版本设为WSL2:
wsl --set-default-version 2
1.3 安装Ubuntu 20.04
打开Microsoft Store,在搜索Ubuntu,选择Ubuntu 20.04.6 LTS进行下载安装。
等待安装完成,打开Ubuntu 20.04.6 LTS,设置用户名与密码,等待配置完成。
2 Ubuntu 20.04
2.1 换国内源
输入以下命令备份source.list
:
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
输入以下命令更换国内源(以华为源为例,其他源自行搜索):
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list && sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
输入以下命令更新:
sudo apt-get update && sudo apt-get upgrade
2.2 更换Ubuntu默认shell
输入以下命令查看系统默认shell:
ls -l /bin/sh
Ubuntu 20.04默认shell为dash
,如果显示不为bash
,则输入以下命令更换系统shell:
sudo dpkg-reconfigure dash
在随后出现的页面中选择No
。
2.3 安装Python环境
鸿蒙DevEco Device Tool要求Python 3.8~3.9版本,执行以下命令确认Python版本:
python3 --version
2.3.1 安装pip3与venv
输入以下命令安装pip3和venv(venv版本与Ubuntu所带版本一致):
sudo apt-get install python3-pip
sudo apt-get install python3.8-venv
执行以下命令为Python 3.8创建软链接:
cd /usr/bin && sudo ln -s python3.8 python
2.3.2 安装jinjia2
执行以下命令安装jinja2:
pip3 install jinja2
2.3.3 安装SCons
sudo apt-get install scons
2.3.4 安装PyCryptodome
python3 -m pip install pycryptodome
2.3.5 安装EDCSA
python3 -m pip install ecdsa
2.3.6 安装Kconfiglib
python3 -m pip install kconfiglib
2.4 安装DevEvo Device Tool与VS Code
下载地址:华为集成开发环境IDE DevEvo Device Tool下载|HarmonyOS设备开发
通过Windows资源管理器将下载好的压缩包放进WSL2内,随后进行解压安装。以DevEco Device Tool 4.0 Beta 1为例,下载的文件名为devicetool-linux-tool-4.0.0.200.zip
,假设存放的位置为~/
,执行以下命令进行解压和安装:
cd ~/
unzip devicetool-linux-tool-4.0.0.200.zip
chmod u+x devicetool-linux-tool-4.0.0.200.sh
sudo ./devicetool-linux-tool-4.0.0.200.sh
通过↑↓选择,通过Tab跳转选择OK
,等待安装成功,在这个过程中会同时安装DevEvo Device Tool与VS Code。
2.5 安装Node.js
假设安装版本为18,执行以下命令(如果需要其他版本,将链接中的18改为对应版本即可):
curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
Ps.这里如果有魔法的话会很快,可以自己找pigcha之类的渠道。
2.6 安装HPM
2.6.1 切换国内源
执行以下命令将NPM源设置为淘宝源(如果有魔法的话这一步可以不用做):
npm config set registry http://registry.npm.taobao.org/
2.6.2 安装HPM
sudo npm install -g @ohos/hpm-cli
2.7 安装gn, ninja与gcc_riscv32
gn下载地址:gn下载地址
ninja下载地址:ninja下载地址
gcc_riscv32下载地址:gcc_riscv32下载地址
2.7.1 解压
执行以下命令将压缩包解压到指定文件夹,假设存放的文件夹为~/Tools
:
tar -xvf gn-linux-x86-1717.tar.gz
tar -xvf ninja.1.9.0.tar
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz
2.7.2 添加环境变量
使用习惯的编辑器,这里使用gedit
进行编辑:
sudo gedit ~/.bashrc
假设gn, ninja与gcc_riscv32的存放位置分别为~/Tools/gn/
, ~/Tools/ninja/
与~/Tools/gcc_riscv32/
,在文件末尾添加如下几行:
export PATH=~/Tools/gn:$PATH
export PATH=~/Tools/ninja:$PATH
export PATH=~/Tools/gcc_riscv32/bin:$PATH
执行如下命令生效环境变量:
source ~/.bashrc
2.8 Windows端操作
在Windows端安装VS Code, Python 3.8~3.9和DevEco Device Tool(DevEco Device Tool版本与Ubuntu端保持一致)。
2.9 配置SSH环境
本来WSL2就可以连接Windows的VS Code做远程开发,但是尝试之后发现采用WSL2连接不能使用DevEco Device Tool中串口相关功能,于是使用SSH进行尝试后发现可行。
2.9.1 安装SSH并设置为开机启动(Ubuntu端)
执行以下命令:
sudo apt-get install openssh-server
sudo apt-get install net-tools
sudo systemctl enable ssh
通过ifconfig
命令查看WSL2的IP地址,记录下来。
执行以下命令编辑SSH的配置文件:
sudo gedit /etc/ssh/sshd_config
将PasswordAuthentication
参数后的no
改为yes
以启用密码登录。
2.9.2 设置SSH连接(Windows端)
按照鸿蒙DevEco Device Tool官方文档指导对Windows端VS Code进行配置:配置Windows远程访问Ubuntu环境
2.10 配置DevEco Device Tool
连接上SSH后,使用Windows端VS Code进行开发。
在欢迎页新建工程或导入工程,等待配置完成。
点击工程配置,安装相关环境(如果烧录器没有安装的话会有一个安装按钮):
3 一些额外的操作
3.1 Ubuntu免密登录
在VS Code中使用SSH登录WSL2每次都需要输入密码很麻烦,于是希望使用私钥登录。
按Win+X,选择终端管理员。
在命令行中输入以下命令生成私钥:
ssh-keygen
一路回车,私钥会保存在C:\User\{用户名}\.ssh\id_ras.pub
中,使用VS Code打开,将其中保存的私钥拷贝出来。在Ubuntu端进入~/.ssh/
,如果没有这个文件夹就创建一个,使用编辑器打开authorized_keys
文件:
cd ~/.ssh
sudo gedit authorized_keys
将刚刚拷贝的私钥复制进去,保存并重启Ubuntu。
3.2 WSL2开机自启
按Win+R打开运行,输入shell:startup
打开目录,创建一个.txt
文件,在其中填写如下:
cmd = "wsl -d Ubuntu-20.04"
CreateObject("Wscript.Shell").run cmd,vbhide
保存,然后将.txt
文件扩展名修改为.vbs
。