@LoneTheReal

0 Followers
3 Following
37 Posts

反复搜寻,找到了个替代方案。

ESP Border Router只有在网络不分配前缀时才会自行生成前缀。

如果运营商路由器和ESP之间能通过DHCP-PD分配一个前缀,ESP就不必生成了,而运营商路由器自己分配的前缀是可以转发的。

ESP文档说自己支持PD(图)

而运营商路由器,虽然网页上没有任何可以配置的地方,但有命令可以后台开启PD功能:

# cfgcli -s InternetGatewayDevice.LANDevice.1.X_ASB-COM_DHCPv6.Server.Pool.1.IAPDEnable=true

ESP则需通过idf.py工具访问命令行,并执行如下命令启用PD功能:

> ot br pd enable
Done

同时,给运营商路由器手动配置一个局域网前缀:

fd12:3456:789a::/48

并留4位给PD

试验下来,前缀生效,并且局域网给各个主机间互ping都没问题。同时ESP也不再使用自己的前缀了。

再次试验Matter入网,也成功完成!

破案了,fdf3这个前缀是ESP Border Router自己生成的。它一下子生成了2个前缀:

I(4363) OPENTHREAD:[N] BorderRouting-: BR ULA prefix: fd83:745f:599d::/48 (loaded)
I(4363) OPENTHREAD:[N] BorderRouting-: Local on-link prefix: fdf3:3518:1a88:8225::/64

我猜fd83应该用于Thread网络中的设备,而fdf3则是用于wifi网络。

可是,问题的关键是,这些前缀的IP之间互相ping不通

抓包检查邻居发现ND,有,且发现正常,但是ping包就是没能到达对方

我找了一台以太网交换机,再接2台Linux主机,它们也都拿到fdf3地址,并且可以互相ping通。

而只要是跨运营商路由器的包,不管是有线对有线,还是有线对无线,都不通

看来问题就是,运营商的路由器刻意过滤掉了设备自建的前缀

各个网元间通过mDNS互相发现。从Windows发起mDNS查询,HA和ESP解析都正常,mDNS本身没问题。

注意到的是加入ESP border router后,网络中多出了这个fdf3:3518:1a88:8225前缀。家里的路由器并没有分配过前缀,这应该是border router自己生成的。

HA: fdf3:3518:1a88:8225:7002:a559:99a0:6398
ESP: fdf3:3518:1a88:8225:ea06:90ff:fee0:5177
Windows: fdf3:3518:1a88:8225:dcb0:c1e2:5d14:3373

Matter server按照并运行
ESP Openthread Border Router添加成功
Thread网络组建成功

但是,设备入网失败。手机点击Add等待数分钟,报添加失败。

怀疑设备发现失败。

组建第一个家庭Matter/Thread智能家居网络:

* Home Assistant
- Supervisor模式
- 运行于RK3328盒子,Armbian Bookworm
- Matter Server addon,运行于Docker的Python Matter实现

* Thread
- Espressif Thread Border Router
- ESP32-S3+ESP32-H2
- 以太网到Thread网关,运行OpenThread

* 淘宝上购买的无牌可调光智能灯带,Matter over Thread协议

* 网元间通过mDNS主机名互相发现: homeassistant.local <--> esp-ot-br.local
- 使用ipv6互相通信
- 灯带作为Thread设备,也有自己的IPv6地址

#homeassistant #matteroverthread

Openwrt boots on Lichee Pi 4A

Openwrt riscv64 Licheepi 4a rtl8723ds wifi router

asciinema.org
The first #openwrt that turns #licheepi Pi 4A to a wireless router. Build it https://github.com/lone0/target-th1520-openwrt with version 24.10, kernel 6.6.83
GitHub - lone0/target-th1520-openwrt: Build and run Openwrt on Lichee Pi 4A

Build and run Openwrt on Lichee Pi 4A. Contribute to lone0/target-th1520-openwrt development by creating an account on GitHub.

GitHub

驱动粗暴改了改后,AP模式就有了,phy0-ap0也创建出来了。

但是在wifi起来后,手机却连不上。radio能连上,申请dhcp超时。

这驱动貌似没改对阿。

Licheepi 4a 上WIFI起不来的原因是,WIFI不支持AP模式:

Supported interface modes:
* managed
* monitor

WIFI不支持AP的原因是,rtw88这个驱动它认为8723ds是sta_only的:

bool sta_mode_only = rtwdev->hci.type == RTW_HCI_TYPE_SDIO;

郁闷了,想了一个月了,没往capability上去想,而是把openwrt的wifi整个研究了一遍。

Ubuntu给了我的x86软路由以第二春:能重启。

Debian和openwrt都不能让它们重启,reboot会死机。