极端 Pi 启动优化
Extreme Pi Boot Optimization

原始链接: https://kittenlabs.de/blog/2024/09/01/extreme-pi-boot-optimization/

在本文中,作者讨论了一个名为“SolarCamPi”的项目,这是一款使用 Raspberry Pi Zero 2 W 构建的离网太阳能 WiFi 摄像头。其目的是最大限度地减少能源消耗,因为能源消耗是太阳能供电中的稀缺资源。 西欧冬季的设备。 他们优化了用户空间应用程序、电子设置,并采用了各种技术来实现他们的目标。 他们探索的方法包括降低功耗和最大限度地减少系统运行时间。 然而,他们发现在这两方面取得平衡至关重要。 由于功耗较低,禁用 CPU Turbo 似乎是有益的,但与更快的操作和随后的断电相比,增加的运行时间最终可能会消耗更多的能量。 为了测量和分析能耗,作者使用了多种工具,例如 Power Profiler Kit II、USB-SD-Mux 和 USB-UART 转换器。 使用 Debian 12 arm64 Lite,他们采取了一些措施来优化启动过程,包括修改 cmdline.txt 文件、编写初始化脚本以及启用调试启动。 通过实验和分析,他们成功地在多个方面降低了能耗,例如通过取消 HDMI 和调整 CPU 时钟频率。 最终,他们成功实现了低于 3.5 秒的启动时间,同时与现有 Debian 相比大幅降低了能耗。 此外,他们还分享了有关输入电压操纵以进一步减少能源使用的见解。

作者讨论了 Raspberry Pi 设备与 Google Coral Mini 相比的电源效率问题,重点关注集成电源管理功能的便利性,例如后者的挂起和唤醒功能。 他们强调了硬件设计中高效电源支持的重要性,并引用了他们自己的项目,该项目涉及使用 Coral Mini 的电池供电相机,尽管相机质量较差,但该相机仍提供令人满意的计算性能。 尽管更喜欢 Raspberry Pi 生态系统的成熟度和可靠性,但他们发现有必要将相机的后续版本外包给使用 Raspberry Pi 和更大电池的第三方。 作者建议通过初始 ramfs 在内核中构建应用程序来优化功耗,从而消除基本场景中不必要的文件系统挂载。 此外,建议使用简单的 bash 脚本替换 Busybox init 等传统工具,安装 devtmpfs、proc、sysfs 等,并考虑 Zstd 压缩来简化启动过程。 建议进行 Chroot 测试,以确保在将 ramfs 合并到内核之前存在所有必要的应用程序依赖项。 此外,禁用不重要的内核模块并仅将所需的功能链接到内核中可以帮助减少空间并缩短启动时间。 简要提及修改 Raspberry Pi bootcode。bin 文件的限制,因为由于许可限制,该文件不是开源的。 类似的限制也适用于 Pi Pico W 中的 WiFi 芯片固件。 展望未来,作者质疑仅仅为了节省电量而禁用 CPU Turbo 模式的有效性,这表明由于时钟提升而导致的功耗可能呈二次方增加,可能会抵消处理时间减少所带来的任何节能效果。 他们建议测量功率差异并调查较新的 Raspberry Pi CPU 提供的精细功耗数据来证实这一说法。 最后,作者解决了围绕操作系统中快速启动机制的误解,通过演示双启动 Windows 和 Linux 的能力,反驳了“快速启动实施时会发生完全关闭”的观点,表明正在发生休眠而不是完全关闭。
相关文章

原文

🚀 3.5 sec to Linux userspace code

联系我们 contact @ memedata.com