Mac系统下编译NodeMCU固件

前提

NodeMCU官网可以在线编译固件https://nodemcu-build.com/

先输入自己邮箱,再按个人需求选择需要的功能,提交后几分钟就会发到填写的邮箱,编译好的固件分两个一个integer另一个是float的。


这么方便为什么还要自己动手编译呢?当热是修改自定义固件用的,NodeMCU本来是支持SmartConfig功能的,但是不知道为什么作者并没有打开宏定义,这就需要自己下载源代码自己编译。
于是在网上找了一些在Mac上编译的教程发现都不行,经过一段时间研究终于把坑填上了。

克隆源码

NodeMCU源码
esp-open-sdk
下载NodeMCU交叉编译器xtensa-lx106-elf放到esp-open-sdk目录下

配置编译环境

1
2
export PATH=/Users/username/Desktop/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
ln -sf /usr/local/bin/gsha1sum /usr/local/bin/sha1sum

这个是要注意的,因为Mac上没有sha1sum工具,这地方纠结好长时间用homebrew装也装不了,后来问人才知道Mac上是有这个工具的,只不过叫法不一样,因为BSD和GNU原因,所以链接一下就行了。

修改需要的文件

修改nodemcu-firmware/app/include/user_config.h
去掉 #define WIFI_SMART_ENABLE前的注释

make

很快编译完成生成两个bin文件

1
2
0x00000.bin
0x10000.bin

使用esptool.py串口烧写固件

1
esptool.py --port /dev/cu.wchusbserial1410 write_flash 0x00000 0x00000.bin 0x10000 0x10000.bin