本帖最后由 corkia 于 2022-3-28 09:34 编辑
大家好,我是三颗芋圆,始于LWIP,陷于TCP/IP,忠于80211。
我们知道嵌入式的设备都有个共同的目标,追求极致极低的功耗。本次
tips聊聊Tina系统网络XR829驱动如何实现低功耗。
一.掉电休眠
省电最直接的方式就是关闭不用的模块,XR829支持掉电休眠,如下配置即可。
在tina/lichee/linux-5.4/drivers/net/wireless/xr829/Makefile
- CONFIG_XRADIO_SUSPEND_POWER_OFF = y
PS:
1.掉电休眠的确是最省电的方式,但是唤醒后重开Wi-Fi的时间会加长,因为驱动加载,服务加载流程相当于重新走一遍。
2.驱动的suspend(休眠函数)中只是做一个flag位的处理,真正掉电是交给AXP(pmu
电源管理)的。
二.保活休眠
保活休眠是指系统休眠时,Wi-Fi仍然保持和路由器之间的连接,能够进行简单的收Beacon帧和发NULL data帧。使整个Wi-Fi模块处于低功耗模式。
打开方式:
在tina/lichee/linux-5.4/drivers/net/wireless/xr829/Makefile
- ccflags-y += -DXRADIO_USE_LONG_KEEP_ALIVE_PERIOD
固件默认会配置开启power save,可以通过
- echo 1 > /sys/kernel/debug/ieee80211/phy0/xradio/low_pwr_disable