본문으로 건너뛰기

설정 오류

이 페이지에서는 설정 섹션 충돌, 매개변수 철자, 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. 해당 섹션의 용도를 모르는 경우 먼저 해당 설정 섹션을 주석 처리하고 재시작하여 테스트한 후 항목별로 복원합니다.

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

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/.

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 알림 예시:

Loading...

Mainsail 알림 예시:

Loading...

일반적인 원인:

  • printer.cfg[include fluidd.cfg] 또는 [include mainsail.cfg]가 활성화되지 않음.
  • 설정 디렉토리에 fluidd.cfg / mainsail.cfg가 없거나 include 파일 이름이 잘못 작성됨.
  • 수동 구성 시 [virtual_sdcard], [pause_resume], [display_status]를 누락함.
  • CANCEL_PRINT 매크로가 정의되지 않았거나 매크로 파일이 include되지 않음.

해결 방법:

  1. 기본 프런트엔드 구성 파일을 우선적으로 사용해야 합니다. 일반 사용자가 몇 개의 설정 섹션만 수동으로 추가하여 알림을 우회하는 것은 권장하지 않습니다. 기본 fluidd.cfg / mainsail.cfg는 가상 SD 카드, 일시 중지/재개, 표시 상태 및 취소 인쇄 매크로 등 프런트엔드에 필요한 기본 구성을 함께 제공합니다.

  2. printer.cfg 상단에 현재 사용 중인 프런트엔드에 해당하는 include가 포함되어 있는지 확인합니다:

    [include fluidd.cfg]

    또는:

    [include mainsail.cfg]
  3. FLY 사전 설치 시스템 또는 공식 참조 구성을 사용하는 경우 fluidd.cfg / mainsail.cfg 파일이 ~/printer_data/config/ 디렉토리에 존재하는지 확인합니다.

  4. 해당 파일이 없으면 프런트엔드 기본 구성 파일을 다시 보충하거나 Fluidd 초기 구성 설명을 참조하세요.

  5. 기본 프런트엔드 구성 파일을 활성화한 후 일시 중지, 재개, 취소 인쇄 위치 및 후퇴 매개변수를 수정해야 하는 경우 일시 중지 및 취소 인쇄 사용자 지정 위치에 따라 _CLIENT_VARIABLE을 추가하세요. 기본 CANCEL_PRINT / PAUSE / RESUME 매크로를 직접 복사하거나 재작성하지 마세요.

  6. 맞춤 시스템을 유지 관리하고 프런트엔드 매크로 종속성을 명확히 알고 있는 경우에만 수동으로 기본 섹션을 보충하는 것을 고려하세요. 이 방법은 일반 사용자에게 권장되지 않으며 최소한 다음이 포함되어야 합니다:

    [virtual_sdcard]
    path: ~/printer_data/gcodes
    on_error_gcode: CANCEL_PRINT

    [pause_resume]

    [display_status]

    또한 사용 가능한 [gcode_macro CANCEL_PRINT]를 제공해야 합니다. 그렇지 않으면 프런트엔드에서 계속 CANCEL_PRINT macro not found in configuration을 알립니다.

  7. 설정을 저장한 후 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 설정이 비합리적임.
  • 설정을 복사할 때 중국어 문장 부호, 전각 기호 또는 보이지 않는 문자가 남아 있음.

해결 방법:

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

해결 방법:

  1. [mcu xxx] 이름이 핀 접두사와 완전히 일치하는지 확인, 대소문자도 일치해야 함.
  2. [mcu xxx] 섹션의 canbus_uuid 또는 serial이 실제 장치와 일치하는지 확인(ls /dev/serial/by-id/ 또는 python3 -c "import can; ..."로 확인 가능).
  3. 메인보드 핀맵과 대조하여 각 pin:, step_pin:, dir_pin:, heater_pin:이 현재 메인보드에 속하는지 확인.
  4. 모든 include 파일에서 오류 핀을 검색하여 중복 점유 항목을 삭제하거나 교체.
  5. 핀 수식어는 핀 이름 앞에 작성해야 함, 예: ^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_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 파일이 누락되었거나 매크로 이름이 슬라이서에 입력된 이름과 일치하지 않음.

해결 방법:

  1. printer.cfg 및 모든 include 파일에서 오류 메시지의 명령 이름을 검색하여 해당 [gcode_macro XXX]가 존재하는지 확인.
  2. 슬라이서의 시작, 종료, 필라멘트 교체, 팬 및 객체 제외 명령 이름을 Klipper 매크로와 일치시킴.
  3. Marlin 명령인 경우 불필요한 명령은 우선 삭제하고, 호환성이 실제로 필요한 경우에만 명확한 Klipper 매크로를 추가.
  4. 객체 제외 관련 오류는 슬라이서가 객체 태그를 출력하는지, Moonraker가 객체 처리를 활성화했는지, Klipper에 [exclude_object]가 있는지 동시에 확인.
  5. 팬 명령 오류 시 [fan]을 사용해야 하는지, 또는 [fan_generic] / [output_pin]에 맞는 제어 매크로를 추가할지 확인.

EXCLUDE_OBJECT_DEFINE / START / END

오류 의미: EXCLUDE_OBJECT_DEFINE은 인쇄 객체를 정의하고, EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END는 현재 G-code가 어떤 객체에 속하는지 표시하여, 프런트엔드가 다중 객체 인쇄 시 특정 객체를 표시하고 제외할 수 있게 합니다. klippy.logUnknown command:"EXCLUDE_OBJECT_DEFINE", Unknown command:"EXCLUDE_OBJECT_START" 또는 Unknown command:"EXCLUDE_OBJECT_END"가 반복적으로 나타나면 G-code에 객체 제외 명령이 포함되어 있지만 Klipper 현재 설정이 이러한 명령을 올바르게 수신하지 못함을 의미합니다.

우선 확인 사항:

  1. printer.cfg 또는 include된 설정 파일에 다음이 존재하는지 확인:
[exclude_object]
  1. 수정 후 RESTART 실행, G-code 파일을 다시 업로드하여 테스트. 이미 업로드된 이전 파일은 최신 설정으로 처리되지 않았을 수 있으므로 다시 슬라이싱하거나 재업로드하는 것이 좋습니다.
  2. Moonraker 설정에서 객체 처리가 활성화되었는지 확인, 일반적인 설정 위치는 moonraker.conf:
[file_manager]
enable_object_processing: True
  1. 슬라이서에서 객체 태그 / 객체 제외 관련 출력이 활성화되었는지 확인. 슬라이서마다 이름이 다르며, 일반적으로 G-code에서 EXCLUDE_OBJECT_DEFINE, EXCLUDE_OBJECT_START, EXCLUDE_OBJECT_END 또는 객체 이름을 검색할 수 있습니다.
  2. 임시로 인쇄만 완료하고 객체 제외 기능이 필요 없다면 슬라이서에서 객체 제외 관련 출력을 끄고 다시 슬라이싱하세요. 파일의 일부 객체 명령만 삭제하지 마세요. 그렇지 않으면 프런트엔드 객체 목록이 비정상이 될 수 있습니다.

판단 방향:

  • 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으로만 표시됩니다.

해결 방법:

  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가 표시되거나 재시작 후 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가 자동 저장해서는 안 되는 매개변수를 중복 정의했습니다.

해결 방법:

  1. 구성 파일 권한 확인:

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

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

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

  3. modifications after header가 나타나면 먼저 printer.cfg를 백업한 후 자동 저장 표시를 검색합니다:

    grep -nE 'SAVE_CONFIG|DO NOT EDIT|^#\*#' ~/printer_data/config/printer.cfg
  4. 수동으로 유지 관리해야 하는 모든 구성을 SAVE_CONFIG 제목 앞으로 이동합니다. 제목 뒤에는 Klipper가 생성한 #*# 줄만 유지해야 합니다. 자동 저장 영역 전체를 삭제하지 마십시오. PID, Z 오프셋, 메쉬 베드 등 저장된 보정 값이 손실될 수 있습니다.

  5. 자동 저장 영역이 이미 손상되었거나 제목이 여러 개인 경우 같은 디렉터리에서 가장 최근에 확인된 사용 가능한 printer-*.cfg 백업에서 복원한 후 필요한 보정을 다시 수행합니다. 여러 자동 저장 영역을 직접拼接하지 마십시오.

  6. include 파일에 동일한 옵션이 이미 존재하는 경우 자동 저장 영역의 중복 항목을 삭제하거나 include 파일에서 통합 관리합니다.

  7. MCU가 shutdown 상태이면 먼저 가장 이른 실제 오류를 처리하고 FIRMWARE_RESTART를 실행한 후 SAVE_CONFIG를 다시 실행합니다.

  8. 권한이 정상인데도 쓸 수 없으면 디스크 공간을 확인합니다: 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이 잘못 포함되었습니다.

해결 방법:

  1. 슬라이서 시작 G-code와 사용자 정의 매크로를 확인하여 SDCARD_RESET_FILE 호출을 삭제하거나 주석 처리합니다.
  2. SD 카드 파일 상태를 재설정해야 하는 경우 인쇄 종료 후 수동으로 실행하고 인쇄 흐름에 넣지 마십시오.
  3. PRINT_START 매크로를 사용하는 경우 이 명령이 호출되지 않았는지 확인합니다.
Loading...