본문으로 건너뛰기

설정 클래스 오류

이 페이지에서는 설정 섹션 충돌, 매개변수 철자 오류, include 파일 및 SAVE_CONFIG 관련 문제를 정리했습니다. 설정을 수정한 후에는 먼저 klippy.log에서 첫 번째 설정 오류를 확인한 후 하나씩 처리하세요.

homing override method always homes X and Y before homing Z

오류 메시지: 안전 Z 홈과 홈 오버라이드 설정이 충돌합니다.

Loading...

오류 원인: [safe_z_home][homing_override]가 동시에 설정되어 Klipper가 어떤 홈 논리를 사용할지 확인할 수 없습니다.

해결 방법:

  1. 설정 파일에서 [safe_z_home][homing_override]를 검색합니다.
  2. 실제 기계 홈 논리에 따라 하나만 유지합니다.
  3. 저장하고 Klipper를 재시작합니다.

관련 설정 참고: 홈 및 방향 보정 가이드, 홈 오버라이드 참조 설정.

Option 'xxx' is not valid in section 'yyy'

오류 메시지: Option 'xxx' is not valid in section 'yyy', 특정 설정 섹션에 인식할 수 없는 옵션명이 있습니다.

일반적인 원인:

  • 옵션명 철자 오류. 예: sensor_pinsensor_ping으로 잘못 입력.
  • 다른 설정 섹션의 옵션을 현재 섹션에 잘못 붙여넣기. 예: [probe]의 옵션을 [stepper_z]에 작성.
  • Klipper 버전 업그레이드 후 이전 버전에서 지원되던 옵션이 제거되거나 이름이 변경됨.
  • 실제 매개변수가 아닌 주석 내용 사용. 예: default_parameter_z.

해결 방법:

  1. 오류에서 지적한 설정 섹션과 옵션명을 주의 깊게 확인하고 철자를 확인합니다.
  2. Klipper 설정 참조 문서를 참조하여 해당 옵션이 어떤 설정 섹션에 속하는지 확인합니다.
  3. 최근 Klipper를 업그레이드했다면 설정 변경 기록을 확인하여 옵션에 변경 사항이 있는지 확인합니다.
  4. 잘못된 옵션을 삭제하거나 올바른 설정 섹션으로 이동합니다.

관련 설정 참고: 설정 수정 설명.

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 파일에 다른 기계나 다른 메인보드의 설정 섹션이 남아 있음.

해결 방법:

  1. 오류에 있는 설정 섹션 이름을 기준으로 printer.cfg 및 모든 include 파일에서 해당 부분을 찾습니다.
  2. 철자가 Klipper 설정 참조와 일치하는지 확인합니다. 설정 섹션 이름에 중국어 괄호나 전각 기호를 사용하지 마세요.
  3. 해당 설정이 타사 플러그인 또는 사용자 정의 매크로 패키지에서 온 것이라면 해당 플러그인이 설치되어 있고 현재 Klipper 버전과 호환되는지 확인합니다.
  4. 해당 섹션의 용도를 모르겠다면 먼저 해당 설정 섹션을 주석 처리하고 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가 설정 파일을 읽을 수 없음.

해결 방법:

  1. printer.cfg가 Klipper 설정 디렉토리(일반적으로 ~/printer_data/config/printer.cfg)에 있는지 확인합니다.
  2. 모든 [include xxx.cfg] 행을 확인하여 참조하는 파일이 실제로 있는지 확인합니다.
  3. fluidd.cfg 또는 mainsail.cfg가 없는 경우 해당 웹 인터페이스의 설치 문서를 참조하여 설정을 추가합니다.
  4. 설정 파일 권한이 올바른지 확인합니다: 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 설정이 적절하지 않음.
  • 설정을 복사할 때 중국어 문장 부호, 전각 기호 또는 보이지 않는 문자가 유지됨.

해결 방법:

  1. 오류에 있는 설정 섹션과 매개변수 이름을 기준으로 해당 .cfg 파일로 돌아가 항목별로 확인합니다.
  2. 숫자, 좌표 및 목록 매개변수의 경우 형식이 예제와 일치하는지 확인합니다. 예: mesh_min: 20, 20.
  3. must be above/below 또는 minimum/maximum의 경우 먼저 공식 예제 또는 메인보드 튜토리얼에서 권장하는 값으로 복원합니다.
  4. 저장 후 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 이름을 작성.
  • 핀 이름 철자 오류 또는 메인보드 튜토리얼의 핀을 다른 메인보드에 직접 복사.
  • 동일한 물리적 핀이 여러 기능에 의해 중복 사용됨. 예: 팬, 히터, 엔드스톱이 동일한 핀을 사용.
  • 핀 반전 !, 풀업 ^, 풀다운 ~이 잘못된 위치에 작성됨.

해결 방법:

  1. [mcu xxx]의 이름이 핀 접두사와 완전히 일치하는지 확인합니다. 대소문자도 일치해야 합니다.
  2. 메인보드 핀맵을 참조하여 각 pin:, step_pin:, dir_pin:, heater_pin:이 현재 메인보드에 속하는지 확인합니다.
  3. 모든 include 파일에서 오류가 발생한 핀을 검색하여 중복 사용 항목을 삭제하거나 변경합니다.
  4. 핀 수정자는 핀 이름 앞에 작성해야 합니다. 예: ^PB7, !PC13, mcu2:^PB7.

관련 설정 참고: 설정 수정 설명, 팬 참조 설정.

gcode command XXX already registered

오류 메시지: Error: gcode command XXX already registered.

오류 원인: 두 개의 다른 매크로 또는 시스템 모듈이 동일한 G-code 명령 이름을 등록했습니다. 예: 두 매크로 모두 [gcode_macro NEXT]를 정의.

일반적인 시나리오:

  • 사용자 정의 매크로가 Klipper 시스템 모듈 또는 타사 설정과 충돌.
  • 여러 [gcode_macro M600] 정의.

해결 방법:

  1. printer.cfg 및 모든 [include] 파일에서 중복 정의를 검색합니다.
  2. 충돌하는 [gcode_macro]를 삭제하거나 이름을 변경합니다.
  3. [homing_override], [gcode_macro PAUSE], [gcode_macro RESUME], [gcode_macro CANCEL_PRINT] 등 일반적인 매크로를 확인합니다.

관련 설정 참고: 매크로 소개.

Unknown command:"XXX"

오류 메시지: 콘솔 또는 klippy.logUnknown 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 파일이 누락되었거나 매크로 이름이 슬라이서에 입력된 이름과 일치하지 않음.

해결 방법:

  1. printer.cfg 및 모든 include 파일에서 오류에 있는 명령 이름을 검색하여 해당 [gcode_macro XXX]가 있는지 확인합니다.
  2. 슬라이서의 시작, 종료, 필라멘트 교체, 팬 및 객체 제외 명령 이름을 Klipper 매크로와 일치시킵니다.
  3. Marlin 명령의 경우 불필요한 명령은 삭제하는 것이 우선이고, 호환이 정말 필요할 때만 명확한 Klipper 매크로를 추가합니다.
  4. 객체 제외 관련 오류의 경우 슬라이서가 객체 태그를 출력하는지, Moonraker가 객체 처리를 활성화했는지, Klipper에 [exclude_object]가 있는지 동시에 확인합니다.
  5. 팬 명령 오류의 경우 [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으로만 표시됨.

해결 방법:

  1. klippy.log에서 Error evaluating 아래의 전체 Traceback을 확인하여 어떤 변수 또는 명령이 오류를 발생시켰는지 확인합니다.
  2. 슬라이서 시작 G-code와 대조하여 전달된 매개변수 이름이 매크로의 params.xxx와 완전히 일치하는지 확인합니다. 대소문자도 일치해야 합니다.
  3. 선택적 매개변수에 기본값을 설정합니다. 예: params.BED|default(60)|float. 매개변수가 비어 있을 때 오류를 방지합니다.
  4. 매크로에서 사용된 printer.xxx 객체를 검색하여 설정에 해당 모듈이 있는지 확인합니다.
  5. 매크로가 타사 설정 패키지에서 온 것이라면 모든 종속 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가 자동 저장하지 말아야 할 매개변수를 중복 정의.

해결 방법:

  1. 설정 파일 권한 확인:

    ls -la ~/printer_data/config/printer.cfg

    소유자가 현재 사용자가 아니면 실행: sudo chown $USER:$USER ~/printer_data/config/printer.cfg

  2. SAVE_CONFIG 후 프린터가 시작되지 않으면 printer.cfg 하단을 열어 #*# 자동 저장 영역을 확인합니다.

  3. 동일한 옵션이 include 파일에도 있다면 자동 저장 영역의 중복 항목을 삭제하거나 include 파일에서 통합 관리하도록 변경합니다.

  4. MCU가 shutdown 상태이면 먼저 FIRMWARE_RESTART를 실행한 후 다시 SAVE_CONFIG를 실행합니다.

  5. 권한이 정상인데도 쓸 수 없으면 디스크 공간을 확인합니다: df -h ~/printer_data/.

관련 설정 참고: 설정 수정 설명.

Loading...