关于 klippy_uds_address: /tmp/klippy_uds 的配置解析

一、‌核心作用‌

  1. ‌API 服务器通信路径‌

    • /tmp/klippy_uds 是 Klipper 默认的 Unix 域套接字(Unix Domain Socket)地址,用于与 Moonraker 等外部服务通信‌
    • 此路径需在启动 Klipper 时通过 -a 参数显式指定,例如:
      bashCopy Code
       
      ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds
      确保 Klipper 与 Moonraker 的 API 服务器建立连接‌
  2. ‌Moonraker 集成要求‌

    • Moonraker 需通过该路径将 HTTP 请求转发至 Klipper 的 API 接口,例如获取打印机状态或执行 G 代码指令‌
    • 在 Moonraker 配置文件中需声明 klippy_uds_address 字段以匹配 Klipper 的启动参数‌

二、‌常见问题排查‌

  1. ‌路径不匹配导致通信失败‌

    • 若 Klipper 未使用 -a /tmp/klippy_uds 启动,或 Moonraker 未正确配置相同路径,会导致服务间无法通信‌25。
    • 检查 Klipper 启动日志中的 klippy.log 文件,确认已加载 API 服务器模块并输出套接字地址‌
  2. ‌权限或文件系统问题‌

    • 确保 /tmp 目录的读写权限允许 Klipper 和 Moonraker 进程访问‌
    • 若使用 Docker 容器化部署,需将 /tmp 目录挂载到容器内部‌

三、‌高级配置示例‌

yamlCopy Code
 
# Moonraker 配置文件片段(moonraker.conf) [server] host: 0.0.0.0 port: 7125 [klippy_uds] address: /tmp/klippy_uds # 必须与 Klipper 启动参数一致

四、‌相关功能扩展‌

  1. ‌API 请求格式‌

    • 通过套接字发送的请求需使用 JSON 格式,并以 ASCII 字符 0x03 结尾‌
    • 支持订阅数据变化(如 objects/subscribe),Klipper 会主动推送更新‌
  2. ‌调试工具‌

    • 使用 socat 或 nc 命令行工具直接与套接字交互,验证通信是否正常:
      bashCopy Code
       
      echo '{\"method\": \"info\"}\x03' | socat - UNIX-CONNECT:/tmp/klippy_uds ```‌:ml-citation{ref="5,6" data="citationList"}

‌总结‌:klippy_uds_address 是 Klipper 与 Moonraker 通信的关键配置,需确保路径一致性与权限正确性‌25。

posted @ 2025-03-19 10:19  hbg-rohens  阅读(147)  评论(0)    收藏  举报