QMK загрузчик не найден

Вопрос или проблема

Я пытаюсь прошить свою клавиатуру DZ60RGB V2 на Arch Linux. Я установил пакет qmk и настроил qmk_toolbox с помощью команды qmk setup.

В процессе он предупредил меня о недостающих правилах udev, которые я добавил при настройке:

⚠ Отсутствуют или устарели правила udev для плат 'atmel-dfu'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Отсутствуют или устарели правила udev для плат 'kiibohd'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Отсутствуют или устарели правила udev для плат 'stm32'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Отсутствуют или устарели правила udev для плат 'bootloadhid'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Отсутствуют или устарели правила udev для плат 'usbasploader'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Отсутствуют или устарели правила udev для плат 'massdrop'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Отсутствуют или устарели правила udev для плат 'caterina'. Запустите 'sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.

После этого я успешно скомпилировал стандартную раскладку и прошил клавиатуру в режиме загрузчика.

$ qmk compile -kb dztech/dz60rgb/v2 -km default

$ qmk flash -kb dztech/dz60rgb/v2 -km default
QMK Firmware 0.13.34
Сборка dztech/dz60rgb/v2 с раскладкой default и целевой прошивкой

avr-gcc (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
Это свободное ПО; смотрите источник для условий копирования.  Никаких
гарантий; даже по поводу MERCHANTABILITY или FITNESS FOR A PARTICULAR PURPOSE.

Размер перед:
   text    data     bss     dec     hex filename
      0   26626       0   26626    6802 .build/dztech_dz60rgb_v2_default.hex

Копирование dztech_dz60rgb_v2_default.hex в папку qmk_firmware                                        [OK]
Проверка размера файла dztech_dz60rgb_v2_default.hex                                                 [OK]
 * Размер прошивки в порядке - 26626/28672 (92%, 2046 байт свободно)
Загрузчик не найден. Повторная попытка каждые 0.5с (Ctrl+C для отмены).....^Cmake[1]: *** [tmk_core/avr.mk:331: flash] Прерывание

Я также попытался стереть прошивку с помощью dfu-programmer, но это снова не получилось.

$ dfu-programmer atmega32u4 erase
dfu-programmer: устройство не обнаружено.

Я пробовал запустить с sudo, но результат был тем же. Я попробовал то же самое на Ubuntu 21.04, и получил ту же ошибку. Однако через lsusb клавиатура определяется как DZ60RGB V2, и я могу вносить изменения в клавиши.

Редактировать:

lsusb определяет клавиатуру следующим образом:

Bus 001 Device 010: ID 445a:1121 DZTECH DZ60RGB

Когда она подключена в режиме загрузчика, устройство отображается следующим образом:

Bus 001 Device 011: ID 03eb:2045 Atmel Corp. LUFA Mass Storage Demo Application

Попробуйте следующее. Это может быть вызвано множеством причин, но обычно это какой-то плохо документированный метод загрузчика или вы случайно удалили раскладку, которая включала оригинальный код RESET. Попробуйте это:

  • Держите ESC, пока подключаете его
  • Переключите переключатель на печатной плате в режим BL, а затем подключите
  • Держите FN + \. Пробуйте как при подключении, так и во время работы
  • Соедините вывод сброса (думаю, это вывод 13 (RST)) с любым из выводов заземления (GND). Будьте осторожны, чтобы не задеть никакие питающие выводы (+5V).

Если это не сработает, возможно, это проблема QMK с стандартным загрузчиком. Вы можете попробовать вручную установить его с помощью -bl dfu (если это микроконтроллер DFU). Загрузчик может быть неправильно указан в стандартном файле. Проверьте текст в файле rules.mk в папке клавиатуры (не keymap, я так думаю).

Удачи, надеюсь, это не слишком поздно.

Ответ или решение

Ошибка "QMK Bootloader not found" при прошивке клавиатуры DZ60RGB V2 на Arch Linux

Проблема, с которой вы столкнулись, связана с отсутствием возможности обнаружения загрузчика QMK вашей клавиатуры DZ60RGB V2. Давайте рассмотрим различные аспекты данной ситуации, которые помогут вам решить данную проблему.

1. Проверка udev правил

Поскольку вы работаете на Arch Linux, необходимо убедиться, что вы правильно настроили правила udev. Вы получили несколько предупреждений во время установки, указывая на отсутствие или устаревание правил для различных типов плат. Для решения этой проблемы выполните следующие шаги:

  • Скопируйте правила udev в директорию, используя команду:
    sudo cp /home/s1n7ax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/
  • После копирования, обновите udev:
    sudo udevadm control --reload-rules
  • Перезагрузите систему, чтобы изменения вступили в силу.

2. Проверка режима загрузки

Убедитесь, что ваша клавиатура находится в режиме загрузки. Вы можете использовать несколько способов, чтобы активировать этот режим:

  • Зажмите клавишу ESC при подключении клавиатуры. Это часто запускает режим загрузки.
  • Переключите переключатель на плате в положение BL (Bootloader) и подключите клавиатуру.
  • Зажмите FN + . и подключите клавиатуру или удерживайте их во время подключения.
  • Если вышеуказанные методы не помогли, попробуйте замкнуть пин сброса (RST) с любым из заземляющих пинов на клавиатуре (осторожно, не замкните с +5V).

3. Использование dfu-programmer

Вы упомянули, что попытка стереть память микроконтроллера через dfu-programmer не удалась. Убедитесь, что вы используете правильную команду и что устройство фактически находится в ожидании команды. Попробуйте выполнить действия следующим образом:

  • Подключите клавиатуру в режиме загрузки.
  • Попробуйте снова выполнить команду:
    dfu-programmer atmega32u4 erase

    Если по-прежнему возникает ошибка "no device present", возможно, это указывает на проблему с соединением или загрузчиком.

4. Проверка орошения QMK

Проблема может заключаться в некорректной настройке или отсутствие необходимых файлов. Убедитесь, что ваш проект QMK настроен правильно:

  • Проверьте файл rules.mk в директории вашей клавиатуры. Убедитесь, что правильный загрузчик указан для вашей модели. Например, для DFU это должно выглядеть как:

    BOOTLOADERS = dfu
  • Попробуйте вручную указать загрузчик при прошивке:

    qmk flash -kb dztech/dz60rgb/v2 -km default -bl dfu

5. Проверка идентификации устройства

Вы также упомянули, что lsusb правильно идентифицирует устройство, что хорошо. Однако, важно также убедиться, что оно распознается системой, когда находится в режиме загрузки. При подключении в этом режиме должно отображаться что-то вроде:

Bus 001 Device 011: ID 03eb:2045 Atmel Corp. LUFA Mass Storage Demo Application

Это показывает, что устройство правильно переходит в режим загрузчика.

Заключение

Если после выполнения всех этапов ваша проблема не решена, возможно, стоит обратиться к сообществу QMK или на форумах, посвященных клавиатурным модификациям, с подробным описанием вашей проблемы. Это поможет вам получить помощь от других пользователей, которые могли столкнуться с аналогичными трудностями.

Если у вас есть какие-либо дополнительные вопросы или вам нужна дальнейшая помощь, не стесняйтесь обращаться. Вы всегда можете обратиться к документации QMK для получения более подробной информации о работе с прошивкой и загрузчиками. Удачи в решении проблемы!

Оцените материал
Добавить комментарий

Капча загружается...