zaLinux.ru

Как HackRF вывести из состояния «кирпича». Как восстановить HackRF после неудачной прошивки устройства


При попытке прошить устройство

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

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *