编译ESP8266固件说明

编译ESP8266固件说明

一.   编译方法说明

登录https://nodemcu.readthedocs.io/en/master/en/build/有三种方式可以选择

1.    云编译服务

这种方式会产生错误,导致烧写固件后,ESP8266蓝灯一直闪烁而无法使用;

2.  安装Docker, 利用Docker Image编译环境安装

这种方式不需要安装NodeMCU的所有编译工具链。编译环境保存在Docker容器中,只需安装Docker容器,就可以在本地编译固件。

3.  搭建Linux 编译环境

需要安装NodeMCU 固件所需的所有编译工具链,较为麻烦。

二.   Docker安装

1.      几点说明

Docker分为EE( EnterpriseEdition) CE (Community Edition )两种版本,其中EE为收费版本。本说明只介绍CE版的安装方式。

Docker支持多种Linux发行版。本说明只介绍Ubuntu的安装方式。

在安装Docker之前,先检查Ubuntu的版本是否是64位并且是下列版本

Zesty 17.04

Xenial 16.04 (LTS)

Trusty 14.04 (LTS)

中的一个,否则会影响使用。

2.    卸载旧的Docker版本

运行下列命令卸载旧的版本,旧的版本被称为docker或者docker-engine

$ sudo apt-get remove docker docker-engine docker.io

Docker CE包现被称为docker-ce

3.    建议Trusty 14.04用户安装额外的包

$ sudo apt-get update
 
$ sudo apt-get install \
    linux-image-extra-$(uname -r)\
    linux-image-extra-virtual

4.    用包安装Docker

本说明使用.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来执行。

5.     卸载Docker CE

$ sudo apt-get purge docker-ce
$ sudo rm -rf /var/lib/docker

 

三.   github上克隆NodeMCU版本库

首先需要安装git

$ git clone https://github.com/nodemcu/nodemcu-firmware.git

 

四.   利用Docker运行镜像

1.      选择编译模块

在编译之前,需要配置所需编译的模块。比如:PWMPCM等等。

有些模块是默认打开的

编辑app/include/user_modules.h文件,打开相关模块宏的注释即可。

例如如果需要编译MQTT模块:则

...

#define LUA_USE_MODULES_MQTT

// #define LUA_USE_MODULES_COAP

// #define LUA_USE_MODULES_U8G

...

2.    设置波特率

这一步不需要进行,默认波特率是115200,如有需要可以更改app/include/user_config.h文件,更改宏BIT_RATE_DEFAULT

3.    打上自己的版本标签

编辑文件app/include/user_version.h

#define NODE_VERSION    "NodeMCU 2.1.0+myname"

#ifndef BUILD_DATE

#define BUILD_DATE      "YYYYMMDD"

#endif

4.    开始编译

进入nodemcu-firmware目录,在命令行输入

$ sudo docker run --rm -ti -v `pwd`:/opt/nodemcu-firmware marcelstoer/nodemcu-build

即可看到docker开始编译。

nodemcu-firmware目录下bin目录中,可看到编译生成的文件。

选择0x00000.bin0x00001.bin烧写即可。

 

 

你可能感兴趣的:(linux)