При попытке прошить устройство
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
Я получил сообщение об ошибке:
Writing 42500 bytes at 0x000000. hackrf_spiflash_write() failed: Input/Output Error (-1000)
После этого при подключении HackRF на устройстве стал загораться только индикатор 3V3. А при попытке посмотреть информацию об устройстве
hackrf_info
Я получал следующее сообщение:
hackrf_info version: 2023.01.1 libhackrf version: 2023.01.1 (0.8) No HackRF boards found.
То есть устройство HackRF больше не определяется.
При попытке перепрошить HackRF:
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
стало выводиться сообщение, что устройство HackRF не найдено:
File size 42500 bytes. hackrf_open() failed: HackRF not found (-5)
Если вы прошили устройство так, что оно больше не работает, то вам нужно загрузиться используя DFU загрузчик — он прописан в ROM, поэтому его невозможно испортить. Для перехода в режим DFU вам нужно зажать эту кнопку, всё ещё удерживая эту кнопку отключить USB кабель и, продолжая удерживать эту кнопку, вновь подключить USB кабель. Если загорится только индикатор 3V3, но не загорятся другие, это означает, что вы успешно вошли в DFU режим.
Ещё один способ перейти в режим DFU, это зажать кнопку DFU и при нажатой кнопке нажать и отпустить кнопку RESET.
В этом режиме вы можете использовать соответствующую программу на вашем компьютере для перепрошивки HackRF.
Для начала убедитесь, что у вас установлен пакет dfu-util, либо установите его.
- Установка dfu-util в Kali Linux, Debian, Ubuntu, Linux Mint и производные этих дистрибутивов выполните команды:
sudo apt update sudo apt install dfu-util
- Для установки dfu-util в Arch Linux, BlackArch, Manjaro и производные этих дистрибутивов выполните команду:
sudo pacman -S dfu-util
Теперь нужно выполнить команду вида
dfu-util --device 1fc9:000c --alt 0 --download /ПУТЬ/ДО/hackrf/hackrf_one_usb.dfu
Чтобы узнать путь до файла hackrf_one_usb.dfu, выполните:
locate hackrf_one_usb.dfu
Пример вывода:
/usr/share/hackrf/hackrf_one_usb.dfu
Итак, в моём случае команда следующая:
dfu-util --device 1fc9:000c --alt 0 --download /usr/share/hackrf/hackrf_one_usb.dfu
Я получил следующие сообщения:
dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: DFU suffix CRC does not match dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 1fc9:000c Device DFU version 0100 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0100 Device returned transfer size 2048 Copying data from PC to DFU device Download [=========================] 100% 42564 bytes Download done. dfu-util: unable to read DFU status after completion (LIBUSB_ERROR_IO)
Загрузка прошла успешно, но в последнем сообщении говориться об ошибке: не получилось прочитать статус DFU. Поскольку дальнейшие команды успешно завершили работу, можно предположить, что это не критическая ошибка.
Вновь перепрошиваем HackRF:
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
В этот раз процесс обновления прошивки прошёл без ошибок:
File size 42500 bytes. Checking target device compatibility Erasing SPI flash. Writing 42500 bytes at 0x000000.
Проверим статус устройства:
hackrf_info
Устройство HackRF обнаружено, прошивка в нём последней версии.
hackrf_info version: 2023.01.1 libhackrf version: 2023.01.1 (0.8) Found HackRF Index: 0 Serial number: 0000000000000000a32868dc29183ccf Board ID Number: 2 (HackRF One) Firmware Version: 2023.01.1 (API:1.07) Part ID Number: 0xa000cb3c 0x00614764 Hardware Revision: older than r6 Hardware supported by installed firmware: HackRF One
Ошибка «Команда dfu-util не найдена»
Если вы получили сообщение об ошибке, что команда dfu-util не найдена, то установите пакет dfu-util как это показано выше.
Ошибка «dfu-util: Could not open file hackrf_one_usb.dfu for reading: No such file or directory»
Если при выполнении команды
dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu
Вы получили следующее сообщение
dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Could not open file hackrf_one_usb.dfu for reading: No such file or directory
То оно означает, что вы неправильно указали путь до файла hackrf_one_usb.dfu.
Чтобы узнать путь до файла hackrf_one_usb.dfu, выполните:
locate hackrf_one_usb.dfu
Связанные статьи:
- Как обновить прошивку HackRF One (РЕШЕНО) (100%)
- Как проверить использование памяти на Linux (50%)
- Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux (50%)
- Решение проблемы «чёрного экрана» после установки Catalyst 15.9 (несовместимость с GDM3, Cinnamon, GNOME) (50%)
- Программы для бенчмарка CPU в Linux (50%)
- Как узнать, какая видеокарта на компьютере с Linux (RANDOM - 50%)