설정 클래스 오류
이 페이지에서는 설정 섹션 충돌, 매개변수 철자 오류, 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 버전과 호환되는지 확인합니다.
- 해당 섹션의 용도를 모르겠다면 먼저 해당 설정 섹션을 주석 처리하고 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/.
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]등 일반적인 매크로를 확인합니다.
관련 설정 참고: 매크로 소개.
Unknown command:"XXX"
오류 메시지: 콘솔 또는 klippy.log에 Unknown command:"PRINT_START", Unknown command:"START_PRINT", Unknown command:"M600", 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_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]에 일치하는 제어 매크로를 추가해야 하는지 확인합니다.
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 표시 또는 저장 후 프린터를 시작할 수 없음.
일반적인 원인:
printer.cfg파일 권한 부족으로 Klipper 프로세스가 쓸 수 없음.sudo를 사용하여 설정 파일을 편집한 후 자주 발생.- 자동 저장 영역(
#*#마커 블록)의 설정 항목이 수동[include]파일의 동일한 옵션과 충돌. - MCU가 shutdown 상태여서
SAVE_CONFIG가 새 설정을 정상적으로 적용할 수 없음. printer.cfg파일 끝에 구문 오류가 있거나 잘려서 자동 저장 영역 쓰기에 실패.- 여러 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하단을 열어#*#자동 저장 영역을 확인합니다. -
동일한 옵션이 include 파일에도 있다면 자동 저장 영역의 중복 항목을 삭제하거나 include 파일에서 통합 관리하도록 변경합니다.
-
MCU가 shutdown 상태이면 먼저
FIRMWARE_RESTART를 실행한 후 다시SAVE_CONFIG를 실행합니다. -
권한이 정상인데도 쓸 수 없으면 디스크 공간을 확인합니다:
df -h ~/printer_data/.
관련 설정 참고: 설정 수정 설명.