配置类报错
本页集中整理配置段冲突、参数拼写、include 文件和 SAVE_CONFIG 相关问题。修改配置后请先看 klippy.log 中第一条配置错误,再逐项处理。
homing override method always homes X and Y before homing Z
报错信息:安全 Z 归位与归位覆盖配置冲突。
报错原因:同时配置了 [safe_z_home] 和 [homing_override],导致 Klipper 无法确认使用哪套归位逻辑。
解决方法:
- 在配置文件中搜索
[safe_z_home]和[homing_override]。 - 根据机器实际归位逻辑只保留其中一项。
- 保存并重启 Klipper。
Option 'xxx' is not valid in section 'yyy'
报错信息:Option 'xxx' is not valid in section 'yyy',指定配置段中存在不被识别的选项名。
常见原因:
- 选项名拼写错误,例如
sensor_pin写成了sensor_ping。 - 将其他配置段的选项误粘贴到当前段下,例如将
[probe]的选项写入[stepper_z]。 - Klipper 版本升级后,旧版本支持的选项已被移除或重命名。
- 使用了不是实际参数的注释内容,例如
default_parameter_z。
解决方法:
- 仔细检查报错中指出的配置段和选项名,确认拼写。
- 参考 Klipper 配置参考文档 确认该选项应属于哪个配置段。
- 如果最近升级过 Klipper,查看 配置变更记录 确认选项是否有变动。
- 删除或移动到正确配置段中的无效选项。
相关配置参考:配置修改说明。
Section 'xxx' is not a valid config section
报错信息:Section 'xxx' is not a valid config section、Unknown config object 或某个配置段无法被 Klipper 识别。
常见原因:
- 配置段名称拼写错误,例如
[bed_mesh]写成了[bedmesh]。 - 当前 Klipper 版本不支持该配置段,或更新/降级后配置格式不兼容。
- 复制了第三方插件配置,但对应插件、扩展模块或 Klipper 分支没有安装。
- include 文件中保留了其他机器或其他主板的配置段。
解决方法:
- 根据报错中的配置段名称,在
printer.cfg和所有 include 文件中定位对应段落。 - 确认拼写是否与 Klipper 配置参考一致,配置段名称不要使用中文括号或全角符号。
- 如果该配置来自第三方插件或定制宏包,确认对应插件已经安装并与当前 Klipper 版本兼容。
- 如果不确定该段落用途,先注释该配置段并重启测试,再逐项恢复。
相关配置参考:配置修改说明。
Unable to open config file / Include file does not exist
报错信息:Unable to open config file /home/xxx/printer_data/config/printer.cfg 或 Include file 'xxx.cfg' does not exist。
常见原因:
printer.cfg文件路径错误或文件被误删。[include]引用的子配置文件不存在或文件名不匹配。- KIAUH 等安装工具自动生成
[include]引用但对应的 cfg 文件未安装。 - 权限问题导致 Klipper 无法读取配置文件。
解决方法:
- 确认
printer.cfg是否存在于 Klipper 配置目录,通常为~/printer_data/config/printer.cfg。 - 检查所有
[include xxx.cfg]行,确认引用的文件实际存在。 - 如果缺少
fluidd.cfg或mainsail.cfg,参考对应 Web 界面的安装文档补充配置。 - 确保配置文件权限正确:
ls -la ~/printer_data/config/。
Unable to parse option / option must be specified
报错信息:Unable to parse option 'xxx' in section 'yyy'、Option 'xxx' in section 'yyy' must be specified,或 must have minimum/maximum、must be above/below。
常见原因:
- 必填参数缺失,例如
[extruder]缺少step_pin、dir_pin、heater_pin或sensor_type。 - 参数格式错误,例如需要数字却填了文字,需要坐标列表却少了逗号。
- 参数值超出 Klipper 允许范围,例如
run_current、max_temp、position_max设置不合理。 - 复制配置时保留了中文标点、全角符号或不可见字符。
解决方法:
- 根据报错中的配置段和参数名,回到对应
.cfg文件逐项检查。 - 对数字、坐标和列表参数,确认格式与示例一致,例如
mesh_min: 20, 20。 - 对
must be above/below或minimum/maximum,先恢复为官方示例或主板教程推荐值。 - 保存后执行
RESTART,若仍失败,再查看klippy.log中第一条配置报错。
相关配置参考:配置修改说明。
Unknown pin chip name / pin used multiple times
报错信息:Unknown pin chip name 'xxx'、Invalid pin description 'xxx'、pin xxx used multiple times in config。
常见原因:
- 多 MCU 配置中引脚前缀写错,例如应写
EBBCan:PB0却写成了不存在的 MCU 名称。 - 引脚名拼写错误,或将主板教程中的引脚直接复制到另一块主板。
- 同一个物理引脚被多个功能重复占用,例如风扇、加热器、限位同时用了同一引脚。
- 引脚反相
!、上拉^、下拉~写在了错误位置。
解决方法:
- 检查
[mcu xxx]的名称是否与引脚前缀完全一致,大小写也要一致。 - 对照主板引脚图,确认每个
pin:、step_pin:、dir_pin:、heater_pin:都属于当前主板。 - 在所有 include 文件中搜索报错引脚,删除或更换重复占用项。
- 引脚修饰符应写在引脚名前,例如
^PB7、!PC13、mcu2:^PB7。
gcode command XXX already registered
报错信息:Error: gcode command XXX already registered。
报错原因:两个不同的宏或系统模块注册了相同的 G-code 命令名,例如两个宏都定义了 [gcode_macro NEXT]。
常见场景:
- 用户自定义宏与 Klipper 系统模块或第三方配置冲突。
- 多个
[gcode_macro M600]定义。
解决方法:
- 在
printer.cfg及所有[include]文件中搜索重复定义。 - 删除或重命名冲突的
[gcode_macro]。 - 检查
[homing_override]、[gcode_macro PAUSE]、[gcode_macro RESUME]、[gcode_macro CANCEL_PRINT]等常用宏。
相关配置参考:宏介绍。
SAVE_CONFIG 失败或配置冲突
报错信息:执行 SAVE_CONFIG 后提示 Unable to write config、Option conflict、Cannot save config,或保存后打印机无法启动。
常见原因:
printer.cfg文件权限不足,Klipper 进程无法写入,常见于使用sudo编辑过配置文件后。- 自动保存区(
#*#标记块)中的配置项与手动[include]文件中相同选项冲突。 - MCU 已处于 shutdown 状态,
SAVE_CONFIG无法正常下发新配置。 printer.cfg文件末尾存在语法错误或被截断,导致自动保存区写入失败。- 多个 include 文件重复定义了不应由
SAVE_CONFIG自动保存的参数,如 PID、Z offset。
解决方法:
-
确认配置文件权限:
ls -la ~/printer_data/config/printer.cfg如果属主不是当前用户,执行:
sudo chown $USER:$USER ~/printer_data/config/printer.cfg -
如果
SAVE_CONFIG后打印机无法启动,打开printer.cfg底部查看#*#自动保存区。 -
如果同一选项在 include 文件中也存在,删除自动保存区中的重复项,或改为在 include 文件中统一管理。
-
如果 MCU 处于 shutdown 状态,先执行
FIRMWARE_RESTART,再重新执行SAVE_CONFIG。 -
如果权限正常但仍无法写入,检查磁盘空间:
df -h ~/printer_data/。
相关配置参考:配置修改说明。