Show HN: 每块板的串口访问、烧录和启动辅助程序

Provisioner 是一个用于 SBC 板级配置的工具,每个板对应一个实例。它提供串口控制台访问、SSH 多路复用、镜像启动及文件传输功能,适用于网络不稳定且 UART 为可靠通信方式的场景,支持脚本化操作和多种传输协议。

1作者: acarminati大约 2 小时前
你好 HN, 我正在构建一个名为 Provisioner 的小型基础设施工具:一个用于 SBC 上电和实验室自动化的板级配置 sidecar。 https://github.com/alessandrocarminati/provisioner 其模型很简单:每个板一个实例。它紧邻硬件,拥有串口控制台,通过 SSH 提供访问,并通过 TFTP/HTTP 提供启动镜像(内核、initramfs、rootfs)。它专为网络不稳定、存储只部分烧录、而 UART 仍是唯一可靠通信方式的阶段设计。 它能做什么: - 串口控制台所有权 + SSH 多路复用 - 监控 shell + 串口隧道 - 可脚本化的启动交互 - 镜像配置(TFTP + HTTP) - 通过串口进行带内文件传输 - gzip/base64 技巧 + XMODEM - 源于我之前开发的 send_console-ng 工具 https://github.com/alessandrocarminat...
查看原文
Hi HN,<p>I’ve been building a small infrastructure tool called Provisioner: a per-board provisioning sidecar for SBC bring-up and lab automation. <a href="https:&#x2F;&#x2F;github.com&#x2F;alessandrocarminati&#x2F;provisioner" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alessandrocarminati&#x2F;provisioner</a><p>The model is simple: one instance per board. It sits next to the hardware, owns the serial console, exposes access over SSH, and serves boot artifacts (kernel, initramfs, rootfs) via TFTP&#x2F;HTTP. It’s designed for the phase where networking is unreliable, storage is half-flashed, and UART is the only thing still telling the truth.<p>What it does<p>- Serial console ownership + SSH multiplexing - Monitor shell + serial tunnels - Scriptable boot interaction - Artifact provisioning (TFTP + HTTP) - In-band file transfer over serial - gzip&#x2F;base64 hacks + XMODEM - Derived from my earlier send_console-ng utility <a href="https:&#x2F;&#x2F;github.com&#x2F;alessandrocarminati&#x2F;send_file-ng" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alessandrocarminati&#x2F;send_file-ng</a> - Pluggable power control - SNMP PDUs, among others cheap ESP8266&#x2F;Tasmota devices - Serial logging - Lightweight access control<p>Provisioner also embeds a minimal init runtime (goinit) inside the kernel initramfs, acting as its on-board provisioning agent, handling flashing, artifact retrieval, and reporting management state back over serial.<p>Routing &amp; stream handling<p>Internally, Provisioner routes serial traffic through a pluggable router:<p>- Producers&#x2F;consumers attach as components - Human vs machine clients handled differently - Unicast control sessions - Broadcast multiplexing to multiple observers<p>This allows several users or services to watch the same console without interfering.<p>Filters<p>A filter subsystem can intercept and modify serial streams on the fly.<p>Originally added to mitigate ANSI Device Status Reports (e.g. Cursor Position Report issues) when tunneling serial consoles, but it doubles as a general stream rewriting mechanism for automation and normalization.<p>Positioning<p>Not trying to replace large systems like LAVA.<p>This is aimed at:<p>- Homelabs - Bring-up benches - Kernel&#x2F;BSP work - Small shared labs<p>Think lab automation you can deploy in an afternoon, not fleet orchestration.<p>Project is still evolving but already in daily use. Feedback and abuse welcome.