본문으로 건너뛰기

USB 펌웨어 컴파일

컴파일 시작​

펌웨어 컴파일 간단 가이드​

주의사항​

  • 네트워크: 상위 컴퓨터(라즈베리파이 등)가 인터넷에 연결되어 있는지 확인하세요.
  • 로그인 방식: 반드시 SSH를 통해 네트워크로 로그인하고, 시리얼 포트는 비활성화하세요.
  • 입력기: 키보드를 영문 반각 모드로 유지하세요.

SSH 로그인 및 사용자 전환​

MobaXterm, PuTTY 등의 도구를 사용하여 상위 컴퓨터에 SSH로 로그인하세요.

사용자 전환:​

  • 일반 시스템(라즈베리파이 공식 시스템 등)
    root 사용을 금지하며, 일반 사용자로 전환해야 합니다:
    su <사용자명>
  • FLY 상위 컴퓨터(FlyOS-FAST 시스템)
    root 사용자 로그인만 지원합니다(비밀번호: mellow).

펌웨어 컴파일 작업 가이드​

Klipper 펌웨어 구성 인터페이스에서는 키보드 조작만 지원하며, 마우스는 사용할 수 없습니다.

키기능
↑ / ↓커서를 위아래로 이동하여 메뉴 항목 선택
Enter / 스페이스바선택 확인, 옵션 체크 또는 하위 메뉴 진입
ESC상위 메뉴로 돌아가기
Q구성 인터페이스 종료
Y종료 시 메시지가 나타나면 Y를 눌러 구성 저장

펌웨어 컴파일 시작하기​

아래에서는 펌웨어를 컴파일하는 방법을 설명합니다:

  1. SSH에 연결한 후 다음 명령어를 입력하고 Enter 키를 누릅니다:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig

    여기서 rm -rf ~/klipper/.config && rm -rf ~/klipper/out은 이전 컴파일 구성과 펌웨어를 삭제하는 데 사용됩니다; make menuconfig는 Klipper 펌웨어 구성 인터페이스를 여는 데 사용됩니다.

  2. 아래 순서대로 항목별로 설정하며, 각 항목을 완료한 후 다음 항목을 진행합니다.

    1启用 Enable extra low-level configuration options
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    3Processor model 选择 rp2040
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    4Bootloader offset 选择 16KiB bootloader
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    5Communication Interface 选择 USBSERIAL
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    6启用 Optimize stepper code for 'step on both edges'
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    7按 Q 键退出配置界面
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    8出现 Save configuration 时按 Y 保存配置
    Quit
    Save configuration?
    (Y)es(N)o(C)ancel
  3. 위의 마지막 두 단계를 완료한 후 Q를 눌러 구성 인터페이스를 종료하고, Y를 눌러 구성을 저장합니다.

  4. 명령줄로 돌아간 후 다음 명령어를 입력하고 Enter 키를 눌러 컴파일을 시작합니다:

    make -j4
    root@flyos-11e5f8 ~/klipper # make -j4
    Compiling out/src/rp2040/bootrom.o
    Compiling out/src/rp2040/usbserial.o
    Compiling out/src/generic/usb_cdc.o
    Compiling out/src/rp2040/chipid.o
    Compiling out/src/rp2040/hard_pwm.o
    Compiling out/src/rp2040/spi.o
    Compiling out/src/rp2040/i2c.o
    Preprocessing out/src/rp2040/rpxxxx_link.ld
    Building out/compile_time_request.o
    Version: XXXX
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

    终端末尾出现 Linking out/klipper.elf 和 Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。

번programing 모드 진입 확인​

전원 차단 조치

시작하기 전에 프린터의 전원을 완전히 끄고 전원 공급을 중단해 주세요. 전원이 켜진 상태에서는 케이블을 연결하거나 분리하거나, 선을 정리하거나 단자를 만지지 마십시오.

  • Type-C 데이터 케이블을 사용하여 메인보드를 상위 컴퓨터에 연결한 후, reset 버튼을 두 번 클릭하면 메인보드의 LED 램프가 깜박일 것입니다.
경고
  • LED 램프가 깜박이지 않는 경우, Katapult 펌웨어를 다시 번programing해 주세요: Katapult 펌웨어 번programing
  • LED 램프가 깜박이지 않는 경우, Katapult 펌웨어 번programing이 완료된 후 다음 단계를 진행해 주세요.

펌웨어 번programing​

적용 범위

이 절차는 USB Katapult를 통해 방금 컴파일한 Klipper 펌웨어를 플래싱하는 데 사용되며, 현재 페이지에서 선택한 펌웨어 유형만 조작하면 됩니다.

1. Katapult USB ID 검색​

비 FLY 공식 상위 컴퓨터는 먼저 Katapult를 설치해야 합니다:

Katapult 설치 방법 보기

다음 명령을 실행하세요:

ls /dev/serial/by-id/*
인식 결과

검색 결과에 usb-katapult_가 포함된 전체 경로가 나타나야 합니다. 예:

/dev/serial/by-id/usb-katapult_<칩 모델>_<장치 ID>-if00

각 하위 컴퓨터의 ID는 모두 다르므로, 자신의 장치에 표시된 전체 경로를 복사하세요.

2. Klipper 펌웨어 플래싱​

장치 ID 교체

명령에서 <Katapult USB ID>를 이전 단계에서 검색한 전체 경로로 교체하세요. 꺾쇠괄호는 남기지 마세요.

~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Katapult USB ID>

3. 플래싱 결과 확인​

명령 실행이 완료되고 오류가 발생하지 않으면 펌웨어가 기록된 것입니다. 플래싱이 완료되면 Katapult USB ID가 사라집니다. 현재 제품 페이지의 후속 단계에 따라 다시 전원을 켜고 해당 Klipper ID를 검색하세요.

Loading...

펌웨어 재플래싱​

이후 이미 플래싱된 Klipper 펌웨어를 업데이트할 때는 Katapult를 반복해서 플래싱할 필요가 없습니다. 먼저 현재 페이지에서 대상 펌웨어를 다시 컴파일한 후, 장치의 현재 상태에 따라 한 가지 방법을 선택하세요.

방법 1: 명령을 사용하여 자동으로 Katapult 진입​

현재 usb-Klipper_ ID를 검색할 수 있다면, Klipper가 자동으로 하위 컴퓨터에 Katapult 진입을 요청하고 재플래싱을 완료하도록 할 수 있습니다:

cd ~/klipper && make flash FLASH_DEVICE=<usb-Klipper ID>

<usb-Klipper ID>를 ls /dev/serial/by-id/*로 검색한 전체 경로로 교체하세요. 명령은 기본적으로 ~/klipper/out/klipper.bin을 사용합니다.

방법 2: RST 더블 클릭 후 수동 플래싱​

현재 usb-Klipper_ ID가 없거나 방법 1이 실패한 경우, 다음 방법을 사용하세요:

전원 차단 작업

시작하기 전에 프린터를 완전히 끄고 전원 공급을 차단하세요. 전원이 켜진 상태에서 USB 케이블을 꽂거나 뽑거나 단자를 만지지 마세요.

  1. 전원을 차단한 후 Type-C 데이터 케이블을 다시 연결합니다.

  2. 하위 컴퓨터의 RST 버튼을 빠르게 더블 클릭하고, 상태등이 깜빡일 때까지 기다리면 Katapult에 진입한 것입니다.

  3. Katapult USB ID 검색:

    ls /dev/serial/by-id/*
  4. 검색된 usb-katapult_ ID를 사용하여 플래싱 실행:

    일반 Linux 상위 컴퓨터:

    ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Katapult USB ID> -f ~/klipper/out/klipper.bin

    FLYOS / FLY 상위 컴퓨터:

    python3 ~/katapult/scripts/flashtool.py -d <Katapult USB ID> -f ~/klipper/out/klipper.bin
주의

재플래싱 시 반드시 현재 연결 방식에 해당하는 펌웨어를 사용해야 합니다. USB 브리지 CAN 펌웨어는 최종적으로 CAN을 통해 작동하지만, Katapult 재플래싱은 여전히 USB ID와 USB 플래싱 명령을 사용합니다.

번programing 후 USB ID 검색​

펌웨어 번programing이 완료되고 메인보드에 다시 전원이 공급된 후에는 USB ID를 계속 검색해 주세요.

USB ID 확인 방법 보기

Loading...