这是一篇关于优化树莓派零 W 启动过程以减少能源消耗的文章,主要内容如下:
- 动机:为节省太阳能设备中的电能,优化 off-grid 太阳能 WiFi 相机项目中树莓派零 W 的启动过程,用户空间应用已优化,电子设置也旨在低功耗运行,需在降低功耗和减少运行时间间找到平衡。
- 硬件设置:使用 Nordic Power Profiler Kit II、USB-SD-Mux Fast 和 USB-UART 转换器等工具,Power Profiler Kit 可测量设备功耗和数字输入状态,USB-SD-Mux 可在不接触设备的情况下读写 microSD 卡,USB-UART 转换器用于 UART 调试。
- 测量/测试设置:在 Debian 12 arm64 Lite 镜像中修改
/boot/firmware/cmdline.txt
文件,使内核启动时执行/init.sh
脚本,通过该脚本测量启动时间和功耗。 降低电流:
- 禁用 HDMI 可将电流从 136.7mA 降低至 122.6mA(超过 10%),相关配置参数为
dtoverlay=vc4-kms-v3d,nohdmi
等。 - 禁用活动 LED 可节省 2mA 电流,参数为
dtparam=act_led_trigger=none
等。 - 禁用相机 LED 可减少电流,参数为
disable_camera_led=1
。 - 调整 Turbo 模式,禁用强制 Turbo 模式可将电流从 1.62As 降低至 1.58As。
- 禁用 HDMI 可将电流从 136.7mA 降低至 122.6mA(超过 10%),相关配置参数为
减少时间:
- 调试启动,修改
bootcode.bin
文件启用详细 UART 日志,可获取启动过程中的详细信息。 - 禁用 HDMI 探测,通过硬编码 EDID 字符串禁用自动检测视频参数。
- 禁用 HAT、PoE 和 LCD 探测,禁用相关 I2C EEPROM 检测。
- 禁用相机和显示探测,手动加载相机驱动。
- 禁用 initramfs,可减少启动时间。
- 测试过超频 SD 外设未发现显著差异,且存在数据 corruption 风险。
- 优化内核加载,可尝试超频 GPU 处理器核心以减少加载时间,但副作用未知。
- 调试启动,修改
- 构建根文件系统/自定义内核:将系统迁移到自定义构建的 Buildroot 发行版,配置内核时去掉声音、大部分块设备和文件系统驱动、RAID、USB、HID、DVB、视频和帧缓冲支持等,禁用 KASLR 和 Spectre 缓解措施,得到 8.5MiB(未压缩)的内核。
- 最终结果:可在不到 3.5s 内启动到 Linux 用户空间程序,总能耗降至 1.82Ws,相比原始 Debian 减少了 5 倍。之后发现降低输入电压可进一步降低能耗,在 3.6V 下能耗为 1.438Ws,减少了 20%。
- 链接:提供了 SolarCamPi 的相关配置文件和 Buildroot 树的链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。