不同的开发框架开发环境会有所不同,目前 TuyaOS 共有两种开发方式,一种是 Windows 主机 + Linux 虚拟机的开发方式,一种是纯 Windows 下的开发方式,本章节会详细介绍两种开发方式的环境搭建过程。
进入 VM VirtualBox官网 下载,点击框中的链接开始下载 VirtualBox 安装包。
打开下载好的 VirtualBox 安装包,出现如下界面,点击**”下一步“**。
如果选择默认安装路径(默认在C盘),点击**”下一步“即可,如果需要修改安装路径,点击”浏览“**按钮,选择自定义的路径,为了避免出现某些不可预知的问题,建议不要包含中文路径。
在自定安装这一步,默认即可,点击**”下一步“**继续安装。
这一步骤将会提醒你在 VirtualBox 安装过程中网络可能会中断,点击**”是”**,继续安装。
上述步骤配置完成后,点击**“安装”**,开始安装软件。
等待几分钟后 VirtualBox 便安装完成了。
进入 Ubuntu 官网,下载 Ubuntu系统镜像,这里下载的是 Ubuntu 20.04 作为开发编译环境,等待下载完成。
打开下载好的 VirtualBox,点击**“新建”**创建虚拟机。
类型选择“linux”,版本为”Ubuntu 64位“,名称可以随便填写,文件夹可以自定义路径,之后点击**“下一步”**。
选择分配给虚拟机的内存大小,这里根据个人实际情况而定,内存分配 8GB 及以上(为了后续流畅使用 Tuya Wind IDE),之后点击**“下一步”**。
虚拟硬盘设置按默认就可以,点击**“创建”**。
虚拟硬盘文件类型设置按默认就可以,点击**“下一步”**。
这里选择“动态分配“,点击**”下一步“**。
选择虚拟硬盘的大小,建议 50GB 起(为了后续流畅使用 Tuya Wind IDE),点击**“创建”**。
点击下图所框选顺序点击**“选择虚拟盘”,选择下载好的 Ubuntu 系统镜像,之后点击”启动“**进行加载安装。
稍微等待一段时间后,虚拟机界面出现需要配置的选项,默认选择”English“,点击**”Install Ubuntu“**进行安装。
下面还是选择默认的"English",点击右下角的**”Continue“**,这里因为虚拟机界面问题没有显示全,但是不影响安装,后面会把界面设置成全屏显示。
这里按下图标注,选择"Minimal installation"最小安装,取消"Download updates while installing Ubuntu"在安装过程中的下载更新,以加快系统镜像的安装速度,点击**“Continue”**继续安装。
点击**”Install Now“**进行安装即可。
这一步会弹出**“将会对磁盘分区进行修改”的提示,点击”Continue“**。
时区选择上海,点击**”Continue“**。
设置用户名和密码,第一行为用户名,第二行和第三行为自动生成,第四、五行为用户密码,设置完成后点击**”Continue“**继续安装。
之后便是安装过程,等待安装完毕。
出现下图界面说明安装好了,点击**”Restart Now“**重启虚拟机。
之后会出现如下界面,只需要按回车即可。
输入设定的密码,进入虚拟机桌面。
进入 Ubuntu 桌面,说明安装成功。
Ubuntu 安装成功后,为了使我们能够更加方便的使用虚拟机,可以给虚拟机安装增强功能,安装成功后支持共享粘贴板内容、屏幕自动调整分辨率等功能。
点击**”设备“,点击”安装增强功能“**。
会弹出如下图的界面,点击**“Run”**,开始安装增强功能。
提示输入密码,点击**”Authenticate“**。
之后进入终端,会提示是否想要继续,输入 yes 按回车。
安装完成后会提示 Press Return to close this window…,按下回车将会关闭该窗口,重启虚拟机。这时手动调整窗口大小会发现虚拟机的桌面大小会根据窗口大小对分辨率进行调整。
最后依次点击设备->共享粘贴板->双向,就可以在 Windows 上复制后在 Ubuntu 上进行粘贴或者在 Ubuntu 上复制后在 Windows 上进行粘贴。
为了能更好帮助我们进行开发,建议在虚拟机中安装 samba 工具。samba 工具使我们能够在 Windows 下对工程项目进行修改完成后,在 Linux 下对修改后的工程进行编译,使用 samba 工具提供的文件共享可以方便我们进行开发。
注意:为什么不使用 VirtualBox 提供的共享文件夹功能而使用 samba 工具来共享文件夹呢?因为 Linux 和 Windows 的文件系统是不一样的,如果使用 VirtualBox 上的共享文件夹,当你在 GitHub 上把 SDK 克隆到 VirtualBox 提供的共享文件夹中时,编译的时候可能会出现编译失败的问题。
打开虚拟机进入桌面,为了使下载软件的速度更快。在安装软件前,先将下载源修改为国内源,以加快下载软件的速度。
打开 Software&Updates。
点击 Download from 后的选项框,选择选项框内的 Other… 选项。
点击箭头指向的 Select Best Server 按钮,将会自动为你选择最快的下载源。如果弹出窗口提示提示输入密码,输入设定的密码即可。
等待系统自动选择完成后,点击箭头指向的 Choose Server 按钮。
点击箭头指向的 Close 按钮,将会提醒你只有重新加载后设置才可以使用。点击 **Reload **按钮,等待系统刷新缓存完成。
系统刷新缓存完成后,Ubuntu 的软件下载源修改成功。
在安装 samba 之前我们需要对虚拟机的网络进行一些设置。先关闭虚拟机,然后按照下图中的步骤进行设置。依次点击设置->网络->网卡2,在网卡2中选择 启动网络连接,连接方式选择”仅主机(Host-Only)网络“,点击确认完成设置。
获取虚拟机的网络 IP 需要安装 net-tools,在 Ubuntu 桌面右键打开终端,输入如下命令进行安装。
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install net-tools
安装完成后,在终端中输入**”ifconfig“**,下图中框选的即是虚拟机的 IP,后面会用到。
在终端中输入如下命令,开始安装 samba,可能会要求你输入密码,并且输出密码时终端上不会有显示,这是正常的,输入完毕后按回车即可。
sudo apt-get update
sudo apt-get install samba cifs-utils samba-common
这里会提示安装需要占用多少MB空间,问是否要继续,输入 **Y ** 按回车即可,后续安装软件遇到这种情况,都输入 Y 按回车即可。
samba安装完成后,我们需要创建 Ubuntu 和 Windows 可以互相访问的共享目录,并将共享目录的权限设置为可读可写可执行,依次执行下列命令:
sudo mkdir -p /home/share/samba
sudo chmod 777 -R /home/share/samba
输入下列命令,然后对 samba 的配置进行修改:
sudo gedit /etc/samba/smb.conf
在文件尾部加入下列字段,然后保存退出。
[share]
path = /home/share/samba
available = yes
browseable = yes
public = no
writable = yes
修改 smb.conf 文件后终端会打印出如下图警告,如下图,这个警告不会影响后续的操作,不必理会。
输入下列命令,添加指定用户至 smb 用户组,然后按照提醒设置 samba 密码,需要输入两次,记住这个密码,下一步骤会用到。
sudo smbpasswd -a xxxx #(xxxx 为当前登录用户名,我这里xxxx就应该是q)
输入下列命令,重启 samba:
sudo service smbd restart
在 Windows 下,打开我的电脑,根据上面获取到的信息,按照下面图片的格式,将IP地址换成你 Ubuntu 虚拟机上的 IP 地址,填写在箭头3的位置:
如果不记得虚拟机的 IP 地址可以在 Ubuntu 输入 **ifconfig **命令进行查询。
点击**”完成“**。
输入虚拟机用户名和设定的 samba 密码,点击**”确定“**就完成了,这时候就可以在 Windows 下访问使用 samba 创建的网络共享文件夹了。
Ubuntu 默认没有安装 ssh 服务,如果通过 ssh 远程连接到 Ubuntu,需要自己手动安装 ssh-server。
判断虚拟机中是否安装 ssh 服务,可以通过如下命令进行:
ps -e|grep ssh
ssh-agent 表示 ssh-client 启动,sshd 表示 ssh-server 启动了。如果缺少 sshd,说明 ssh 服务没有启动或者没有安装。
安装 ssh-client 命令:
sudo apt-get install openssh-client
安装 ssh-server 命令:
sudo apt-get install openssh-server
在终端中输入安装 ssh-server 命令,会要求输入输入密码,输入密码后回车即可。
安装完成后启动服务,命令如下:
sudo /etc/init.d/ssh start
再次输入检查 ssh 服务命令:
ps -e|grep ssh
可以看出 ssh 服务已经正常启动了,Ubuntu 下的 ssh 服务就安装好了。
先下载 ssh 服务包,下载链接:https://github.com/PowerShell/Win32-OpenSSH/releases,下载下图中框选的文件。
将解压出的文件放置C盘根目录下。
在桌面左下角”开始“按钮上右键,选择以管理员模式打开 PowerShell。
在 PowerShell 中依次输入下列命令进入到”C:\OpenSSH-Win64“文件夹中。
cd ../../
cd OpenSSH-Win64
输入如下命令,安装ssh服务:
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
输入如下命令,在防火墙上添加 22 端口:
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
输入如下命令,开启 sshd 服务:
net start sshd
如上图提示 ssh 服务已经启动成功。
如果需要在系统开启时自启动 ssh 服务,需要在 powershell 下执行如下命令:
Set-Service sshd -StartupType Automatic
到此,windows下的ssh服务就安装好了。
在 Windows 主机 + Linux 虚拟机开发环境下需要使用 SSH 远程连接服务,需要在 VS Code 中安装 Remote-SSH 插件。
打开 VS Code 在扩展搜索栏输入 SSH 按回车,安装 Remote - SSH 插件,安装好后重启 VS Code。
当 Windows 和虚拟机都安装好 ssh 工具后,在 Windows 下就可以使用 VS Code 远程连接到虚拟机了。上一步骤已经在 VS Code 中安装了 ssh 插件,这里直接打开 VS Code 即可。点击 VS Code 左下角打开远程窗口。
点击 ”Connect to Host“,如下图:
点击"Add New SSH Host"。
这里需要根据先前在虚拟机中安装 ssh 时设定的用户名和虚拟机的 IP 地址来设置,格式如下:
ssh 帐号@IP
我这里用户名为 q,IP 地址为 192.168.56.101,那么登录命令就应该是:
ssh [email protected]
输入完成后按回车。如果忘了虚拟机的 IP 地址,可以在虚拟机中打开终端输入 ifconfig 进行查询。
这里选择第一行即可,保存 ssh 的配置文件,这样下次打开连接就不需要重复输入了。
配置成功后右下角会弹窗提示,点击"Connect"进行连接(**注意:**此时虚拟机应该是开启状态,否则会连接失败)。
这里会提示需要输入密码,输入虚拟机的 登录密码 后按回车。
如下图所示,左下角有虚拟机的 IP 地址,并且可以打开虚拟机中的文件,说明 ssh 连接成功。
ssh 插件安装完成后,还需要简单配置一下。按下图步骤点击**“Open SSH Configuration File”**打开 ssh 配置文件。
点击第一行默认保存的配置文件,如下图:
在尾行输入如下命令:
LocalForward 127.0.0.1:8319 127.0.0.1:8319
LocalForward 127.0.0.1:8320 127.0.0.1:8320
输入完成后保存文件即可。
需要在虚拟机中安装 pip3,打开虚拟机,在桌面右键打开终端,输入如下安装命令:
sudo apt update
sudo apt install python3.8 python3-pip python3-distutils build-essential lib32stdc++6
这里提示此操作后,将使用 170MB 的额外磁盘空间,输入 Y 按回车即可,等待安装完成。
安装好 python3 后,在终端输入"python"后按回车,如果和下图一样打印出 python3 的版本,并且进入了python 编辑状态(Ctrl+Z退出编辑状态),说明就安装完成了。
如果提示"python not found"或其他错误提示,那么就需要创建一个指向 python3 的软链接,之后 python 命令默认使用 python3 作为编译器,命令如下:
sudo ln -s /usr/bin/python3 /usr/bin/python
再次尝试输入 python,能够进入编辑状态说明就创建成功了。
相对于 Windows 主机 + Linux 虚拟机开发方式来说,Windows 下开发所需要的系统环境就会简单很多,只需要安装 python 3.8 即可。
先查看一下 Windows 系统是否安装 python 3.8,右键左下角的"开始"图标,打开 Windows PowerShell。
输入 **python **后按回车可以看到是否安装 python,如下图可以看到我这里安装了 python 3.7。
进入到 python 官网下载界面,由于 python 版本众多可以使用浏览的搜索功能快速定位,快捷键为 Ctrl + F,这里选择 python 3.8.10 版本,64 位安装包,点击链接进行下载,由于网络问题下载时候可能会稍长,等待下载完成。
下载完成后打开安装包,按下图勾选上 “Add Python 3.8 to PATH” 选项,这样就不需要再手动添加 python 路径到系统变量了,之后点击 Install Now 进行安装。
点击 “Close” 完成安装。
重新打开命令行窗口验证 python 是否安装完成,右键桌面"开始"图标,打开 Windows PowerShell,输入 python 按回车,可以看到已经变成 python 3.8 版本,说明安装完成。