설정 오류
이 페이지에서는 설정 섹션 충돌, 매개변수 철자, 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가 없는 경우 해당 웹 인터페이스 설치 문서를 참조하여 구성을 보충합니다.- 설정 파일 권한이 올바른지 확인합니다:
ls -la ~/printer_data/config/.
Fluidd / Mainsail 기본 설정 누락
오류 메시지: Fluidd 또는 Mainsail이 기본 설정 누락을 알립니다. 일반적인 키워드는 다음과 같습니다:
[virtual_sdcard] not found in printer configuration.
[pause_resume] not found in printer configuration.
[display_status] is required if you do not have a [display] defined.
CANCEL_PRINT macro not found in configuration.
Fluidd 알림 예시:
Mainsail 알림 예시:
일반적인 원인:
printer.cfg에[include fluidd.cfg]또는[include mainsail.cfg]가 활성화되지 않음.- 설정 디렉토리에
fluidd.cfg/mainsail.cfg가 없거나 include 파일 이름이 잘못 작성됨. - 수동 구성 시
[virtual_sdcard],[pause_resume],[display_status]를 누락함. CANCEL_PRINT매크로가 정의되지 않았거나 매크로 파일이 include되지 않음.
해결 방법:
-
기본 프런트엔드 구성 파일을 우선적으로 사용해야 합니다. 일반 사용자가 몇 개의 설정 섹션만 수동으로 추가하여 알림을 우회하는 것은 권장하지 않습니다. 기본
fluidd.cfg/mainsail.cfg는 가상 SD 카드, 일시 중지/재개, 표시 상태 및 취소 인쇄 매크로 등 프런트엔드에 필요한 기본 구성을 함께 제공합니다. -
printer.cfg상단에 현재 사용 중인 프런트엔드에 해당하는 include가 포함되어 있는지 확인합니다:[include fluidd.cfg]또는:
[include mainsail.cfg] -
FLY 사전 설치 시스템 또는 공식 참조 구성을 사용하는 경우
fluidd.cfg/mainsail.cfg파일이~/printer_data/config/디렉토리에 존재하는지 확인합니다. -
해당 파일이 없으면 프런트엔드 기본 구성 파일을 다시 보충하거나 Fluidd 초기 구성 설명을 참조하세요.
-
기본 프런트엔드 구성 파일을 활성화한 후 일시 중지, 재개, 취소 인쇄 위치 및 후퇴 매개변수를 수정해야 하는 경우 일시 중지 및 취소 인쇄 사용자 지정 위치에 따라
_CLIENT_VARIABLE을 추가하세요. 기본CANCEL_PRINT/PAUSE/RESUME매크로를 직접 복사하거나 재작성하지 마세요. -
맞춤 시스템을 유지 관리하고 프런트엔드 매크로 종속성을 명확히 알고 있는 경우에만 수동으로 기본 섹션을 보충하는 것을 고려하세요. 이 방법은 일반 사용자에게 권장되지 않으며 최소한 다음이 포함되어야 합니다:
[virtual_sdcard]path: ~/printer_data/gcodeson_error_gcode: CANCEL_PRINT[pause_resume][display_status]또한 사용 가능한
[gcode_macro CANCEL_PRINT]를 제공해야 합니다. 그렇지 않으면 프런트엔드에서 계속CANCEL_PRINT macro not found in configuration을 알립니다. -
설정을 저장한 후
RESTART를 실행합니다. 여전히 누락 알림이 표시되면 모든 include 파일이 Klipper에 실제로 읽히는지 계속 확인합니다.
프런트엔드 매크로 사용 방법: 일시 중지 및 취소 인쇄 사용자 지정 위치 매크로 구성 참고: 매크로 소개
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 is not a valid pin name / pin used multiple times
오류 메시지: Unknown pin chip name 'xxx', Pin 'PB12' is not a valid pin name on mcu 'mcu', Invalid pin description 'xxx', pin xxx used multiple times in config.
일반적인 원인:
- 다중 MCU 설정에서 핀 접두사를 잘못 작성함, 예:
toolboard:PB0로 작성해야 하는데 존재하지 않는 MCU 이름을 작성함. - MCU ID(
canbus_uuid또는serial) 설정 오류로 인해 핀이 잘못된 장치에 매핑되어 해당 장치에 해당 핀이 없음. - 핀 이름 철자 오류, 또는 메인보드 튜토리얼의 핀을 다른 메인보드에 그대로 복사함.
- 동일한 물리적 핀이 여러 기능에 중복 사용됨, 예: 팬, 히터, 엔드스톱이 동일한 핀을 동시에 사용.
- 핀 반전
!, 풀업^, 풀다운~을 잘못된 위치에 작성함.
해결 방법:
[mcu xxx]이름이 핀 접두사와 완전히 일치하는지 확인, 대소문자도 일치해야 함.[mcu xxx]섹션의canbus_uuid또는serial이 실제 장치와 일치하는지 확인(ls /dev/serial/by-id/또는python3 -c "import can; ..."로 확인 가능).- 메인보드 핀맵과 대조하여 각
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]등 일반적인 매크로를 확인.
관련 설정 참고: 매크로 소개.
Unknown command:"XXX"
오류 메시지: 콘솔 또는 klippy.log에 Unknown command:"PRINT_START", Unknown command:"START_PRINT", Unknown command:"M600", Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START", Unknown command:"EXCLUDE_OBJECT_END", Unknown command:"M106", Unknown command:"M201", Unknown command:"M203", Unknown command:"M205" 등이 나타남.
일반적인 원인:
- 슬라이서 시작 또는 종료 G-code가 Klipper에 존재하지 않는 매크로를 호출함, 예: 슬라이서가
PRINT_START를 보내지만 설정에는[gcode_macro START_PRINT]만 정의됨. - Marlin에서 마이그레이션된 명령을 사용함, Klipper는 기본적으로 지원하지 않거나 매크로 호환성이 필요함.
- 객체 제외 기능이 활성화되었지만 슬라이서, Moonraker 또는 Klipper 설정이 불완전하여
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_END명령을 인식하지 못함. - 팬이
[fan_generic]또는[output_pin]을 사용하지만 슬라이서가 여전히 기본M106/M107을 전송. - 타사 매크로 패키지 사용 시 include 파일이 누락되었거나 매크로 이름이 슬라이서에 입력된 이름과 일치하지 않음.
해결 방법:
printer.cfg및 모든 include 파일에서 오류 메시지의 명령 이름을 검색하여 해당[gcode_macro XXX]가 존재하는지 확인.- 슬라이서의 시작, 종료, 필라멘트 교체, 팬 및 객체 제외 명령 이름을 Klipper 매크로와 일치시킴.
- Marlin 명령인 경우 불필요한 명령은 우선 삭제하고, 호환성이 실제로 필요한 경우에만 명확한 Klipper 매크로를 추가.
- 객체 제외 관련 오류는 슬라이서가 객체 태그를 출력하는지, Moonraker가 객체 처리를 활성화했는지, Klipper에
[exclude_object]가 있는지 동시에 확인. - 팬 명령 오류 시
[fan]을 사용해야 하는지, 또는[fan_generic]/[output_pin]에 맞는 제어 매크로를 추가할지 확인.
EXCLUDE_OBJECT_DEFINE / START / END
오류 의미: EXCLUDE_OBJECT_DEFINE은 인쇄 객체를 정의하고, EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END는 현재 G-code가 어떤 객체에 속하는지 표시하여, 프런트엔드가 다중 객체 인쇄 시 특정 객체를 표시하고 제외할 수 있게 합니다. klippy.log에 Unknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START" 또는 Unknown command:"EXCLUDE_OBJECT_END"가 반복적으로 나타나면 G-code에 객체 제외 명령이 포함되어 있지만 Klipper 현재 설정이 이러한 명령을 올바르게 수신하지 못함을 의미합니다.
우선 확인 사항:
printer.cfg또는 include된 설정 파일에 다음이 존재하는지 확인:
[exclude_object]
- 수정 후
RESTART실행, G-code 파일을 다시 업로드하여 테스트. 이미 업로드된 이전 파일은 최신 설정으로 처리되지 않았을 수 있으므로 다시 슬라이싱하거나 재업로드하는 것이 좋습니다. - Moonraker 설정에서 객체 처리가 활성화되었는지 확인, 일반적인 설정 위치는
moonraker.conf:
[file_manager]
enable_object_processing: True
- 슬라이서에서 객체 태그 / 객체 제외 관련 출력이 활성화되었는지 확인. 슬라이서마다 이름이 다르며, 일반적으로 G-code에서
EXCLUDE_OBJECT_DEFINE,EXCLUDE_OBJECT_START,EXCLUDE_OBJECT_END또는 객체 이름을 검색할 수 있습니다. - 임시로 인쇄만 완료하고 객체 제외 기능이 필요 없다면 슬라이서에서 객체 제외 관련 출력을 끄고 다시 슬라이싱하세요. 파일의 일부 객체 명령만 삭제하지 마세요. 그렇지 않으면 프런트엔드 객체 목록이 비정상이 될 수 있습니다.
판단 방향:
EXCLUDE_OBJECT_START/EXCLUDE_OBJECT_END만 보고됨: 우선[exclude_object]를 추가하고 Klipper를 재시작.- 프런트엔드에 객체 목록이 없지만 Klipper가 더 이상 Unknown command를 보고하지 않음: 우선 Moonraker의 객체 처리와 G-code 재업로드 여부를 확인.
- 파일에서 객체 관련 명령을 전혀 검색할 수 없음: 슬라이서가 객체 태그를 출력하지 않으므로 슬라이서 측에서 활성화해야 함.
Error evaluating 'gcode_macro XXX:gcode'
오류 메시지: Error evaluating 'gcode_macro PRINT_START:gcode', jinja2.exceptions.UndefinedError, 'dict object' has no attribute 'BED', 'dict object' has no attribute 'HOTEND', 'dict object' has no attribute 'extrude', 'dict object' has no attribute 'heater_bed', gcode.CommandError.
일반적인 원인:
- 슬라이서가 매크로에 필요한 매개변수를 전달하지 않았습니다. 예를 들어 매크로에서
params.HOTEND를 읽지만 슬라이서에서HOTEND=를 전달하지 않았습니다. - 매개변수 이름이 일치하지 않습니다. 예를 들어 매크로에는
BED/HOTEND가 필요한데 슬라이서는 실제로BED_TEMP/EXTRUDER_TEMP를 전달합니다. - 매크로가 존재하지 않는 객체를 참조합니다. 예를 들어 구성에
[heater_bed]가 없는데 매크로에서printer.heater_bed를 읽습니다. - 매크로에서 Jinja2 구문을 사용하지만 괄호, 따옴표, 필터 또는 기본값 표기법이 잘못되었습니다.
- 매크로 내부에서 실행되는 명령이 먼저 오류를 발생시켜 외부에서는
Error evaluating으로만 표시됩니다.
해결 방법:
klippy.log에서Error evaluating아래의 전체 Traceback을 확인하여 어떤 변수 또는 명령에서 오류가 발생했는지 확인합니다.- 슬라이서 시작 G-code와 대조하여 전달된 매개변수 이름이 매크로의
params.xxx와 완전히 일치하는지, 대소문자도 일치하는지 확인합니다. - 선택적 매개변수에 기본값을 설정합니다. 예:
params.BED|default(60)|float와 같이 설정하여 매개변수가 비어 있을 때 오류가 발생하지 않도록 합니다. - 매크로에서 사용하는
printer.xxx객체를 검색하여 구성에 해당 모듈이 존재하는지 확인합니다. - 매크로가 타사 구성 패키지에서 온 경우 모든 종속 include 파일과 기본 매크로가 로드되었는지 확인합니다.
관련 구성 참조: 매크로 소개.
SAVE_CONFIG 실패 또는 구성 충돌
오류 메시지: SAVE_CONFIG 실행 후 Unable to write config, Option conflict, Cannot save config가 표시되거나 재시작 후 Can't read autosave from config file - modifications after header가 나타납니다.
일반적인 원인:
printer.cfg파일 권한이 부족하여 Klipper 프로세스가 쓸 수 없습니다.sudo로 구성 파일을 편집한 후 자주 발생합니다.- 자동 저장 영역(
#*#표시 블록)의 구성 항목이 수동[include]파일의 동일한 옵션과 충돌합니다. - MCU가 shutdown 상태여서
SAVE_CONFIG가 새 구성을 정상적으로 전달할 수 없습니다. printer.cfg파일 끝에 구문 오류가 있거나 잘려 있어 자동 저장 영역 쓰기가 실패합니다.#*# <---------------------- SAVE_CONFIG ---------------------->표시 이후에 수동으로 일반 구성, 주석 또는 기타#*#가 아닌 줄을 추가하여 Klipper가 자동 저장 영역 읽기를 거부합니다.- 자동 저장 영역의 제목 또는
#*#줄이 수동 편집, 구성 병합 또는 파일 동기화 중에 손상되었습니다. - 여러 include 파일에서 PID, Z offset 등
SAVE_CONFIG가 자동 저장해서는 안 되는 매개변수를 중복 정의했습니다.
해결 방법:
-
구성 파일 권한 확인:
ls -la ~/printer_data/config/printer.cfg소유자가 현재 사용자가 아닌 경우 실행:
sudo chown $USER:$USER ~/printer_data/config/printer.cfg -
SAVE_CONFIG후 프린터가 시작되지 않으면printer.cfg하단의#*#자동 저장 영역을 엽니다. -
modifications after header가 나타나면 먼저printer.cfg를 백업한 후 자동 저장 표시를 검색합니다:grep -nE 'SAVE_CONFIG|DO NOT EDIT|^#\*#' ~/printer_data/config/printer.cfg -
수동으로 유지 관리해야 하는 모든 구성을
SAVE_CONFIG제목 앞으로 이동합니다. 제목 뒤에는 Klipper가 생성한#*#줄만 유지해야 합니다. 자동 저장 영역 전체를 삭제하지 마십시오. PID, Z 오프셋, 메쉬 베드 등 저장된 보정 값이 손실될 수 있습니다. -
자동 저장 영역이 이미 손상되었거나 제목이 여러 개인 경우 같은 디렉터리에서 가장 최근에 확인된 사용 가능한
printer-*.cfg백업에서 복원한 후 필요한 보정을 다시 수행합니다. 여러 자동 저장 영역을 직접拼接하지 마십시오. -
include 파일에 동일한 옵션이 이미 존재하는 경우 자동 저장 영역의 중복 항목을 삭제하거나 include 파일에서 통합 관리합니다.
-
MCU가 shutdown 상태이면 먼저 가장 이른 실제 오류를 처리하고
FIRMWARE_RESTART를 실행한 후SAVE_CONFIG를 다시 실행합니다. -
권한이 정상인데도 쓸 수 없으면 디스크 공간을 확인합니다:
df -h ~/printer_data/.
관련 구성 참조: 구성 수정 설명.
SDCARD_RESET_FILE cannot be run from the sdcard
오류 메시지: SDCARD_RESET_FILE cannot be run from the sdcard.
일반적인 원인:
- SD 카드 인쇄 중에
SDCARD_RESET_FILE명령이 실행되었습니다. 이 명령은 SD 카드 인쇄 중에는 호출할 수 없습니다. - 슬라이서 시작 G-code 또는 매크로에
SDCARD_RESET_FILE이 잘못 포함되었습니다.
해결 방법:
- 슬라이서 시작 G-code와 사용자 정의 매크로를 확인하여
SDCARD_RESET_FILE호출을 삭제하거나 주석 처리합니다. - SD 카드 파일 상태를 재설정해야 하는 경우 인쇄 종료 후 수동으로 실행하고 인쇄 흐름에 넣지 마십시오.
PRINT_START매크로를 사용하는 경우 이 명령이 호출되지 않았는지 확인합니다.