Перейти к основному содержимому

Компиляция прошивки USB

Начало компиляции

  • Необходимо использовать хост, на котором установлена служба klipper Подключение по SSH через сеть
  • И также подключить устройство к хосту
  • Обратите внимание: пожалуйста, используйте обычный хост, например, Raspberry Pi, FLY Pi и т.д. Если используется модифицированный хост, из-за множества проблем мы не сможем оказать значительную помощь
Внимание
  • Пожалуйста, не используйте пользователя ROOT
подсказывать
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

Klipper固件编译配置页面操作说明

подсказывать

请确保键盘输入法为半角模式,即英文模式

  1. 键盘上键,下键,用于上下移动光标来选中菜单项
  2. 确认键Enter 或 空格键Space,用于勾选菜单或进入子菜单
  3. 退出键ESC,用于返回上一级菜单
  4. Q键,用于退出Klipper固件配置页面
  5. Y键,在退出Klipper固件配置页面时,如果有提示,则点击Y键保存配置文件
заметка

如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options,用于显示部分隐藏选项

Вот как скомпилировать прошивку:

  • После подключения к SSH введите следующую команду и нажмите Enter:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • Где rm -rf ~/klipper/.config && rm -rf ~/klipper/out удаляет предыдущие данные компиляции и прошивку, а make menuconfig компилирует прошивку. После выполнения должно появиться следующее окно:

  • Выберите Enable extra low-level configuration options и нажмите Enter

  • Войдите в меню Micro-controller Architecture и выберите Raspberry Pi RP2040, затем нажмите Enter

  • Выберите Bootloader offset, выберите: 16KiB bootloader

  • Communication interface, выберите: USBSERIAL

  • Нажмите клавишу Q, появится Сохранить конфигурацию, затем нажмите Y
  • Теперь конфигурация должна быть сохранена и вы должны вернуться в командную строку
  • Введите make -j4 для начала компиляции, это займет некоторое время
  • Если в конце выводятся следующие строки, компиляция завершена успешно

    Linking out/klipper.elf
    Creating hex file out/klipper.bin

Поиск устройства

  • Пожалуйста, убедитесь, что верхний компьютер подключен к интернету

  • Пожалуйста, убедитесь, что кабель данных, соединяющий нижний компьютер с верхним, поддерживает передачу данных

  • После подключения по SSH к верхнему компьютеру введите lsusb и нажмите Enter, возможны три сценария:

    • Отображение распознанных USB-устройств
    • Сообщение об отсутствии команды ls, можно выполнить следующую команду для установки:
      sudo apt-get install usbutils
    • Отсутствие ошибок и других сообщений (проблемы с системой, требуется замена)
  • Если после ввода lsusb ничего не происходит, это проблема системы, и мы бессильны, вам нужно заменить систему на работающую

  • Если появляется информация, выделенная на рисунке ниже, можно перейти к следующему шагу

  • 1d50:6177 относится к устройству, которое вы будете использовать. Последующие подсказки можно игнорировать, поскольку из-за проблем с системой они могут отображаться не полностью или вообще не отображаться

  • Если нет, проверьте, правильно ли подключен кабель данных или находится ли материнская плата в режиме Katapult (изначально назывался CANBOOT)

  • Если прошивка klipper уже была выполнена с использованием Katapult, можно ознакомиться со способами обновления прошивки ниже

    Примечание

    Переходите к следующему шагу только если есть 1d50:6177

Запись прошивки

Использование прошивки Katapult позволяет в будущем легко обновлять прошивку через SSH, без необходимости входить в режим DFU для прошивки.

Установка плагина для прошивки

подсказывать

Обратите внимание, что для установки плагина прошивки требуется, чтобы верхний компьютер был подключен к сети. Если плагин уже установлен, повторная установка не требуется.

  • Установите pip install pyserial

    pip install pyserial
  • Если появляется сообщение -bash: pip: command not found, выполните

    sudo apt-get install pip
  • Если появляется ошибка, как показано ниже, выполните

    pip install pyserial --break-system-packages

Начало прошивки

  • Используйте команду ниже для поиска адреса вашего устройства

    ls /dev/serial/by-id/*
  • Вот пример

  • Для прошивки используйте код ниже, убедитесь, что прошивка уже скомпилирована, обратите внимание, что после = нет пробела

  • Обратите внимание, что прошивка возможна только в каталоге klipper

    make flash FLASH_DEVICE=
  • Вот пример

  • Пример завершения прошивки

Метод обновления прошивки

  • Для обновления прошивки USB, после компиляции последней версии, введите команду ниже для обновления, обратите внимание, что после = нет пробела

    make flash FLASH_DEVICE=
  • Для обновления прошивки USB моста CAN после компиляции последней версии введите команду ниже для сброса в Katapult

  • Обратите внимание, что эта команда применима только к прошивке Klipper для USB моста CAN, другие прошивки вызовут ошибку

    ~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <MCU ID>
  • После сброса в Katapult выполните обновление прошивки

    make flash FLASH_DEVICE=<адрес вашего устройства>

Решение проблемы при прошивке неверной прошивки

  • Отключите питание платы, затем быстро дважды нажмите кнопку сброса после включения питания
  • Или используйте WINDOWS для очистки прошивки и повторной установки BL