1、前提条件:已购买阿里云服务器,本文使用的服务器信息:2核/2GiB、Ubuntu 18.04 64位、云盘空间40G
2、使用MobaXterm连接阿里云服务器
打开MobaXterm,点击Session
①点击SSH
②输入服务器IP地址,该地址为服务器的公网IP,可以在阿里云服务器复制
③去掉勾选,否则后面使用make menuconfig时无法删除输入的数字
④点击按钮,进入该界面里面去新建用户,填入服务器的用户名和密码
Name:随便填一个名字
Username:服务器用户名,一般是root
Password:服务器的实例密码
点击OK,回到主页面,打勾Specify username,选择刚才新建的用户root
可以改一下实例的名称,这里改为aliyun
点击OK,回到主页,双击aliyun,开始连接服务器
连接成功之后,出现以下页面,就可以通过命令行操作ubuntu服务器了
3、安装ESP8266的开发环境
⑴在命令行输入以下命令,安装相关的应用
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
⑵新建ESP8266的工作路径,本人使用的主路径是/home/study/wifi/esp,并在该路径下新建toolchain和esp8266两个文件夹,toolchain存放编译工具链,esp8266存放SDK
⑶到乐鑫提供的网站https://github.com/espressif/ESP8266_RTOS_SDK(有时需要多次刷新才能打开),在该页面的下方找到Get toolchain,我的系统是Ubuntu 64位的,所以选择Linux(64)下载
⑷下载成功之后
①点击sftp
②进入到/home/study/wifi/esp/toolchain目录下
③点击上传按钮,选择刚才下载好的编译工具链,上传到该文件夹下
⑸命令行进入/home/study/wifi/esp/toolchain目录下,执行解压命令
sudo tar -zvxf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
解压成功之后可以看到以下文件
解压成功之后,为了节省服务器空间可以删除 xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
执行以下命令,修改文件访问权限
sudo chmod 777 -R xtensa-lx106-elf
⑹下载ESP8266的SDK,命令行进入/home/study/wifi/esp/esp8266目录下,执行以下命令
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
SDK拉取成功之后,可以在该目录下看到以下文件夹(本示例使用的是IDF3.4版本)
⑺配置环境变量,执行以下命令
vim ~/.bashrc
在文件最后写入SDK和编译工具链的路径,如下所示
export PATH=$PATH:/home/study/wifi/esp/toolchain/xtensa-lx106-elf/bin
export IDF_PATH=/home/study/wifi/esp/esp8266/ESP8266_RTOS_SDK
保存退出后,输入命令使配置生效:source ~/.bashrc
验证工具链环境测试是否设置成功: xtensa-lx106-elf-gcc -v 下图为配置成功的截图
⑻编译工程
进入以下目录/home/study/wifi/esp/esp8266/ESP8266_RTOS_SDK/examples/get-started/hello_world
命令行输入make menuconfig
根据需要配置工程后保存退出,回到命令行输入make开始编译,首次编译比较慢,显示下面信息时表示编译成功
编译成功之后,在build文件夹可以看到bin文件
⑼下载固件,把服务器的bin文件下载到本地,需要用到3个文件,分别为
ESP8266_RTOS_SDK/examples/get-started/hello_world/build/hello-world.bin
ESP8266_RTOS_SDK/examples/get-started/hello_world/build/partitions_singleapp.bin
ESP8266_RTOS_SDK/examples/get-started/hello_world/build/bootloader/bootloader.bin
选择需要的文件,点击下载按钮,下载到本地
使用乐鑫提供的下载工具,按照下面的文件名和对应地址,然后下载即可
4、服务器文件共享到本地
我们前面下载代码时需要先把服务器的文件下到本地,然后再下载到ESP8266,这样频繁修改代码时效率太低,因此我们可以把服务器的文件共享的windows电脑下,就可以在windows下修改代码,然后在服务器编译代码了
⑴使用apt安装samba,输入下载指令
apt install samba samba-common
⑵创建用户,或者本来使用本来的用户就不用创建
adduser user1
⑶为新用户分配samba密码,输入两次密码。(-a指的是建立Samba账户)
sudo smbpasswd -a user1
⑷设置samba服务数据库密码,输入两次密码
pdbedit -a -u user1
⑸修改配置文件
vim /etc/samba/smb.conf
在最后一行按下小写的"o"键,然后添加以下内容
[share_name]
comment = harmony source code
path = /home/study/wifi/esp/esp8266/ESP8266_RTOS_SDK
public = no
writable = yes
browseable = yes
available = yes
create mask = 0644
force user = root
write list = user1
valid user = user1
各个名词及其含义说明
名词 | 含义 |
share_name | 这个名词是我们的共享名称,不需要和实际的共享文件夹同名 |
comment | 对这个共享文件夹的注释 |
path | 共享文件夹在linux下的绝对路径 |
public | 是否“对所有人可见”,如果为yes则无视下面的参数 |
writable | 定义是否可以进行写入操作 |
browseable | 指定共享信息是否在“网上邻居”可见 |
create mask | 创建文件的权限 |
force user | 强制设置用户为root,或者是其他有高级权限的用户。使windows下能创建修改文件 |
write list | 可执行写操作的用户列表 |
valid user | 有效的用户列表 |
保存后退出
⑹输入以下指令让samba开机自启动、重载配置和进行重启
systemctl enable smbd.service
systemctl reload smbd.service
systemctl restart smbd.service
⑺记得将你要分享文件夹权限设置为可读可写,并且修改文件夹所有人
chmod 777 /home/study/wifi/esp/esp8266/ESP8266_RTOS_SDK
chown -Rf user1:user1 /home/study/wifi/esp/esp8266/ESP8266_RTOS_SDK
⑻配置云服务器安全组
进入阿里云服务器ECS控制台,修改安全组,具体在左侧的“网络与安全”->“安全组”,如果没有安全组则创建一个。
然后添加分别samba服务器需要开启四个端口,分别是137、138、139、445,创建成功如下图所示。
⑼在windows 7下添加共享文件
右键计算机,点击添加一个网络位置
输入\\xx.xx.xx.xx\share_name (xx.xx.xx.xx是服务器公网IP)
点击下一步,之后可能弹出登录页面,输入用户名user1和前面新建用户时设置的密码
之后一直点击下一步,直到完成
回到windows 7的计算机目录下,可以看到 我们添加的服务器共享文件夹
里面的内容就是ESP8266 SDK的文件
可以使用vscode去编辑examples里面的例程
下载工具直接选择共享文件里面的bin文件
由于使用网络方式共享文件,所以在windows下修改和读取文件时,速度相对会比较慢