返回顶部
s

seedHTTP固件烧录

Grow firmware on any hardware through HTTP — upload C, compile on device, apply with watchdog rollback

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.2
安全检测
已通过
277
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

seed

seed.c — 自生长固件

来源: https://github.com/Awis13/seed

你拥有一个种子节点——一个极简的C语言固件,带有HTTP API,你可以通过在设备上编写和编译新固件来使其生长。

第一步

如果用户没有提供节点地址和令牌,请询问他们:

  • - 他们是否已经运行了种子节点?如果是,获取IP和令牌。
  • 如果没有,主动提出部署一个。他们只需要一台装有gcc的Linux机器:

bash

在目标机器上(树莓派、VPS、任何Linux设备):


curl -fsSL https://raw.githubusercontent.com/Awis13/seed/main/seeds/linux/seed.c -o seed.c
gcc -O2 -o seed seed.c
./seed 8080

令牌将被打印出来——将其提供给代理

种子二进制文件约70KB,除libc外零依赖。

连接

节点在启动时会打印其地址和令牌。如果你不知道它们:
bash

用户将提供地址,或者:


curl http://:8080/health # 无需认证
curl http://:8080/skill # 完整连接详情 + 令牌

除/health外的所有请求都需要:Authorization: Bearer

你能做什么

1. 发现硬件

bash curl -H Authorization: Bearer $TOKEN http://$HOST/capabilities

返回:架构、CPU、内存、磁盘、温度、GPIO、I2C、串口、
USB设备、WiFi、蓝牙、WireGuard——节点拥有的所有信息。

2. 读取运行中的固件

bash curl -H Authorization: Bearer $TOKEN http://$HOST/firmware/source

返回当前在节点上运行的C语言源代码。

3. 编写新固件

bash curl -H Authorization: Bearer $TOKEN \ -X POST --data-binary @new_firmware.c \ http://$HOST/firmware/source

上传C语言源代码。节点会保存它以供编译。

4. 在设备上编译

bash curl -H Authorization: Bearer $TOKEN -X POST http://$HOST/firmware/build

节点在自身运行gcc -O2。使用GET /firmware/build/logs检查错误。

5. 应用(热切换)

bash curl -H Authorization: Bearer $TOKEN -X POST http://$HOST/firmware/apply

原子级二进制切换。10秒看门狗——如果新固件未能通过健康检查,旧版本将自动恢复。

API参考

方法路径描述
GET/health存活检查(无需认证)
GET
/capabilities | 硬件指纹 | | GET | /config.md | 节点配置(markdown格式) | | POST | /config.md | 更新配置 | | GET | /events | 事件日志(?since=unix_ts) | | GET | /firmware/version | 版本、构建日期、运行时间 | | GET | /firmware/source | 读取源代码 | | POST | /firmware/source | 上传新源代码 | | POST | /firmware/build | 编译(gcc -O2) | | GET | /firmware/build/logs | 编译器输出 | | POST | /firmware/apply | 应用 + 看门狗回滚 | | GET | /skill | 生成此文件并附带实时连接详情 |

编写固件

约束条件:

  • - 仅限C语言,仅限libc——无外部库
  • gcc -O2 -o seed seed.c 必须无需额外标志即可编译
  • 单线程,一次处理一个请求
  • 最大请求体:64KB
  • 3次应用失败 -> /firmware/apply 锁定(POST /firmware/apply/reset 解锁)

处理程序模式:
c
if (strcmp(req.path, /myendpoint) == 0
&& strcmp(req.method, GET) == 0) {
char resp[4096];
snprintf(resp, sizeof(resp), {\key\:\value\});
json_resp(fd, 200, OK, resp);
goto done;
}

可用函数:

  • - jsonresp(fd, code, status, json) — 发送JSON响应
  • textresp(fd, code, status, text) — 发送纯文本
  • respond(fd, code, status, contenttype, body, len) — 发送任意内容
  • fileread(path, &len) — 读取文件,返回malloc分配的缓冲区
  • filewrite(path, data, len) — 写入文件
  • cmdout(shellcmd, buf, bufsize) — 运行命令,捕获输出
  • eventadd(fmt, ...) — 记录事件

请求结构体: req.method、req.path、req.body(malloc分配,可能为NULL)、
req.bodylen、req.contentlength。路径包含查询字符串。

在你的处理程序之前,认证已经完成。/health始终公开。

能力示例

json
{
type: seed, version: 0.1.0, seed: true,
hostname: raspberrypi, arch: armv6l,
cpus: 1, memmb: 512, diskmb: 14000,
tempc: 42.3, boardmodel: Raspberry Pi Zero W Rev 1.1,
has_gcc: true,
net_interfaces: [eth0, wlan0, usb0],
serial_ports: [/dev/ttyAMA0],
i2c_buses: [/dev/i2c-1],
gpio_chips: [/dev/gpiochip0],
haswifi: true, hasbluetooth: true,
endpoints: [/health, /capabilities, /config.md, ...]
}

使用此信息来决定节点能做什么以及要编写什么固件。

典型工作流程

  1. 1. GET /health — 是否存活?
  2. GET /capabilities — 它有什么硬件?
  3. GET /firmware/source — 读取当前代码
  4. 编写添加所需端点的新固件
  5. POST /firmware/source — 上传
  6. POST /firmware/build — 编译
  7. GET /firmware/build/logs — 检查错误
  8. POST /firmware/apply — 部署(失败时自动回滚)
  9. 测试新端点
  10. 重复——生长后的固件仍然包含/firmware/*,因此你可以再次使其生长

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 seed-1776124812 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 seed-1776124812 技能

通过命令行安装

skillhub install seed-1776124812

下载

⬇ 下载 seed v0.1.2(免费)

文件大小: 3 KB | 发布时间: 2026-4-15 14:17

v0.1.2 最新 2026-4-15 14:17
- Added a "First steps" section to guide users in obtaining a seed node address and token.
- Included clear instructions for deploying a new seed node on any Linux machine.
- Made it explicit that the seed binary is ~70KB and requires only libc.
- Improved initial onboarding for users who don't have a node running yet.

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部