这种方式会产生错误,导致烧写固件后,ESP8266蓝灯一直闪烁而无法使用;
这种方式不需要安装NodeMCU的所有编译工具链。编译环境保存在Docker容器中,只需安装Docker容器,就可以在本地编译固件。
需要安装NodeMCU 固件所需的所有编译工具链,较为麻烦。
l Docker分为EE( EnterpriseEdition)和 CE (Community Edition )两种版本,其中EE为收费版本。本说明只介绍CE版的安装方式。
l Docker支持多种Linux发行版。本说明只介绍Ubuntu的安装方式。
l 在安装Docker之前,先检查Ubuntu的版本是否是64位并且是下列版本
Zesty 17.04
Xenial 16.04 (LTS)
Trusty 14.04 (LTS)
中的一个,否则会影响使用。
运行下列命令卸载旧的版本,旧的版本被称为docker或者docker-engine
$ sudo apt-get remove docker docker-engine docker.io
Docker CE包现被称为docker-ce。
$ sudo apt-get update
$ sudo apt-get install
\
linux-image-extra-
$(uname -r
)\
linux-image-extra-virtual
本说明使用.deb文件安装Docker
访问https://download.docker.com/linux/ubuntu/dists/,选择对应的Ubuntu版本后,进入pool/stable/并选择amd64
,下载.deb文件,
安装Docker CE,找到刚刚下载的.deb文件的路径,利用下面的命令安装
$ sudo dpkg -i package.deb
验证安装是否正确可以使用命令
$ sudo docker run hello-world
这条命令下载了一个测试镜像,并在一个容器中运行。当它运行后,会打印出一条信息并退出
至此安装成功,Docker命令需要使用sudo来执行。
$ sudo apt-get purge docker-ce
$ sudo rm -rf /var/lib/docker
首先需要安装git
$ git clone https://github.com/nodemcu/nodemcu-firmware.git
在编译之前,需要配置所需编译的模块。比如:PWM,PCM等等。
有些模块是默认打开的
编辑app/include/user_modules.h文件,打开相关模块宏的注释即可。
例如如果需要编译MQTT模块:则
...
#define LUA_USE_MODULES_MQTT
// #define LUA_USE_MODULES_COAP
// #define LUA_USE_MODULES_U8G
...
这一步不需要进行,默认波特率是115200,如有需要可以更改app/include/user_config.h文件,更改宏BIT_RATE_DEFAULT
编辑文件app/include/user_version.h
#define NODE_VERSION "NodeMCU 2.1.0+myname"
#ifndef BUILD_DATE
#define BUILD_DATE "YYYYMMDD"
#endif
进入nodemcu-firmware目录,在命令行输入
$ sudo docker run --rm -ti -v `pwd`:/opt/nodemcu-firmware marcelstoer/nodemcu-build
即可看到docker开始编译。
在nodemcu-firmware目录下bin目录中,可看到编译生成的文件。
选择0x00000.bin和0x00001.bin烧写即可。