请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 232|回复: 12

[经验分享] 解决部分小米芯片刷新版本esphome编译出错

[复制链接]

29

主题

77

帖子

2452

积分

论坛技术达人

积分
2452
金钱
2365
HASS币
60
发表于 2023-3-19 20:31:59 | 显示全部楼层 |阅读模式
由于部分小米设备(小米智能插座2)的esp32芯片只使用了单核且mac地址校验不通过,刷esphome的时候需要特定编译的arduino库,之前用的一直是https://github.com/pauln/arduino-esp32.git#solo-no-mac-crc/1.0.6
最近eshpome的platformio/espressif32升到了5.2.0,对应的arduino库也应该升级,原有的库会编译报错
https://github.com/esphome/issues/issues/4119
用esp32-arduino-lib-builder重新编译含单核配置且移除mac校验的esp-idf sdk的arduino-esp32即可
示例库
esphome:
  name: xiaomi
  platformio_options:
    platform_packages: 
      - "framework-arduinoespressif32 @ https://github.com/ryanh7/arduino-esp32.git#solo-no-mac-crc/2.0.5"
该库仅验证了esp32_ble_tracker和ota,仅供测试不要过于依赖该库,它可能被折腾并有未经验证的bug风险

评分

参与人数 2金钱 +18 收起 理由
jjcs + 12 在下对你的景仰犹如滔滔长江之水,连绵不绝.
sirakawa + 6

查看全部评分

没意思,跑路了
回复

使用道具 举报

7

主题

47

帖子

564

积分

论坛DIY达人

积分
564
金钱
517
HASS币
10
发表于 2023-3-19 21:59:48 | 显示全部楼层
小米的不是单核的只是被锁了一个核心,试试魔改SDK你就会发现不一样了

评分

参与人数 1金钱 +12 收起 理由
jjcs + 12 高手,这是高手!

查看全部评分

回复

使用道具 举报

62

主题

999

帖子

6217

积分

元老级技术达人

积分
6217
金钱
5183
HASS币
230
发表于 2023-3-19 22:13:34 | 显示全部楼层
用之前收藏的代码编译测试了一下:

RAM:   [==        ]  15.5% (used 50816 bytes from 327680 bytes)
Flash: [========= ]  90.1% (used 1653309 bytes from 1835008 bytes)
Building .pioenvs/mijia-plug/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/mijia-plug/firmware.bin"], [".pioenvs/mijia-plug/firmware.elf"])
Flash params set to 0x0020
Wrote 0x1a50d0 bytes to file /config/.esphome/build/mijia-plug/.pioenvs/mijia-plug/firmware-factory.bin, ready to flash to offset 0x0
======================== [SUCCESS] Took 303.58 seconds ========================

********************************************************************************
We found 458.09MB of unnecessary PlatformIO system data (temporary files, unnecessary packages, etc.).
Use `pio system prune --dry-run` to list them or `pio system prune` to save disk space.
INFO Successfully compiled program.

新版生成的固件好像文件都比较大,后期可能不能OTA了。


另外前几天也搜索了一些资料,找到:
esphome:
  name: mijia-plug
  friendly_name: mijia-plug  
  on_loop:
    - lambda: |
        vTaskDelay(10/portTICK_PERIOD_MS);

esp32:
  board: esp32doit-devkit-v1
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_FREERTOS_UNICORE: y
    advanced:
      ignore_efuse_mac_crc: true

RAM:   [==        ]  16.1% (used 52680 bytes from 327680 bytes)
Flash: [=======   ]  69.8% (used 1280049 bytes from 1835008 bytes)
Building .pioenvs/mijia-plug/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/mijia-plug/firmware.bin"], [".pioenvs/mijia-plug/firmware.elf"])
Wrote 0x149ec0 bytes to file /config/.esphome/build/mijia-plug/.pioenvs/mijia-plug/firmware-factory.bin, ready to flash to offset 0x0
======================== [SUCCESS] Took 725.95 seconds ========================
INFO Successfully compiled program.


不过没有插座刷机测试,不知道是否能正常运行。
回复

使用道具 举报

62

主题

999

帖子

6217

积分

元老级技术达人

积分
6217
金钱
5183
HASS币
230
发表于 2023-3-19 22:23:52 | 显示全部楼层
qzl 发表于 2023-3-19 21:59
小米的不是单核的只是被锁了一个核心,试试魔改SDK你就会发现不一样了

如何操作,有相关资料看看吗?
回复

使用道具 举报

12

主题

404

帖子

1455

积分

金牌会员

Rank: 6Rank: 6

积分
1455
金钱
1051
HASS币
0
发表于 2023-3-19 23:06:44 | 显示全部楼层
dscao 发表于 2023-3-19 22:13
用之前收藏的代码编译测试了一下:

收藏备用,谢谢!
回复

使用道具 举报

29

主题

77

帖子

2452

积分

论坛技术达人

积分
2452
金钱
2365
HASS币
60
 楼主| 发表于 2023-3-20 00:01:00 | 显示全部楼层
qzl 发表于 2023-3-19 21:59
小米的不是单核的只是被锁了一个核心,试试魔改SDK你就会发现不一样了

efuse里面一个锁单核的标志位被写了而且不可恢复,我没有找到绕过的方式,你有线索吗
没意思,跑路了
回复

使用道具 举报

29

主题

77

帖子

2452

积分

论坛技术达人

积分
2452
金钱
2365
HASS币
60
 楼主| 发表于 2023-3-20 03:57:37 | 显示全部楼层
dscao 发表于 2023-3-19 22:13
用之前收藏的代码编译测试了一下:

esp-idf应该是可以的。arduino框架的就要另外编译了。
没意思,跑路了
回复

使用道具 举报

30

主题

306

帖子

2792

积分

论坛技术达人

积分
2792
金钱
2436
HASS币
220
发表于 2023-3-20 11:35:20 | 显示全部楼层
dscao 发表于 2023-3-19 22:13
用之前收藏的代码编译测试了一下:

这种方式貌似不能用web,也不支持captive_portal模式了。另外我尝试使用蓝牙代理貌似也不成功。
回复

使用道具 举报

30

主题

306

帖子

2792

积分

论坛技术达人

积分
2792
金钱
2436
HASS币
220
发表于 2023-3-20 11:36:20 | 显示全部楼层
qzl 发表于 2023-3-19 21:59
小米的不是单核的只是被锁了一个核心,试试魔改SDK你就会发现不一样了

魔改sdk也用过,但是貌似也是不能开蓝牙,跟楼主的差不多
回复

使用道具 举报

30

主题

306

帖子

2792

积分

论坛技术达人

积分
2792
金钱
2436
HASS币
220
发表于 2023-3-20 11:37:30 | 显示全部楼层
用你的配置尝试编译,但是好像有1个bin文件没编译出来,导致串口刷固件的时候提示文件找不到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2023-3-30 10:54 , Processed in 0.062702 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表