Berry Bake —— 树莓派集群环境

树莓派安装 archlinux

树莓派安装 archlinux 系统参考了以下资料:

使用 x86 环境制作树莓派 arm 根文件系统参考了以下资料,其中的关键是使用 qemu-user-static

预定制树莓派环境参考了以下资料:

另外,chroot 环境中没有实际对应的 systemd 服务,因此只能手工生成启动服务的链接,无法使用 systemctl enable <service> 命令。

BCM2711 Stepping C0 无法使用 aarch64 镜像中的 uboot 正常启动,使用 pacman -S linux-rpi 安装上游内核后解决:

rpifand 风扇控制守护进程

rpifand 实现 GPIO PWM 风扇控制参考了以下资料:

  • Argon mini FAN
  • pinout.xyz Pinout! The Raspberry Pi GPIO pinout guide.
  • Raspberry pi 4 GPIO controlled cooling fan 初期最重要的一篇文章,让我初次实现了真实的风扇起停控制,给了我很大的信心。
  • gpiozero gpiozero 在程序退出时会执行固定的清理动作,这虽然对初学者比较友好,但是却失去了定制特殊行为的灵活性。这就是 rpifand 不使用 gpiozero 的原因。
  • go-rpio 一个使用 golang 编写的用于树莓派的 GPIO 库,简洁易用,注释清晰,品质可靠。

rpifand 的 archlinux 软件包构建参考了以下资料:

TODO

  • 将树莓派镜像写入 SD 卡的过程脚本化,并提供定制能力
  • 预配置 ssh 帐号密码
  • 预配置 wpa_supplicant wifi 密码认证,开机自动连接
  • 预配置 Avahi 零配置网络
  • 使用 prometheus 和 node-exporter 监控树莓派集群
  • 树莓派 GPIO 风扇守护进程解决散热问题
  • 风扇守护进程 archlinux 软件包构建
  • 风扇守护进程的信号处理,在程序退出时,将风扇置于长运行状态
  • 一套简单的 web 管理界面
  • 集群化,比如引入 k8s,引入对象存储

license

MIT