更新 HackRF one 到最新的 2017.02.1 固件

HackRF已经吃灰一年多了,官方的上一个版本还是2015.07,最新的2017.02.1版增加了Sweep modeHardware synchronizationhackrf_debug,降低了功耗以及修复了Bug. 在mossmann/hackrf/releases有编译好的固件hackrf-2017.02.1.tar.xz下载

要注意的是Kali Linux用apt-get安装的hackrf还停留在2015.07版本,只更新固件会导致莫名其妙的错误。升级固件的同时需要更新主机上的Host软件libhackrfhackrf-tools

0x01 HackRF host 软件更新

解压hackrf-2017.02.1.tar.xz,执行以下命令更新Host软件(host目录下有README.md可以参考)

1
2
3
4
5
6
cd host
mkdir build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

0x02 HackRF 固件更新

进入firmware-bin目录,执行以下步骤

  • hackrf_spiflash -Rw hackrf_one_usb.bin 更新SPI
  • hackrf_cpldjtag -x hackrf_cpld_default.xsvf 更新CPLD

此时可以用hackrf_info查看更新后的版本

1
2
3
4
5
6
7
8
9
(anaconda3-4.3.0) root@kali:~/Downloads# hackrf_info
hackrf_info version: 2017.02.1
libhackrf version: 2017.02.1 (0.5)
Found HackRF
Index: 0
Serial number: 0000000000000000909864c8283593cf
Board ID Number: 2 (HackRF One)
Firmware Version: 2017.02.1 (API:1.02)
Part ID Number: 0xa000cb3c 0x005e4745

0x03 更新DFU(可选)

只有在HackRF固件损坏的情况下才需要刷新DFU。

首先按住RESET键和DFU键,然后依次松开RESET键和DFU键,引导板子进入DFU模式。然后执行dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu刷新DFU

0x04 自己编译固件

可以参考HackRF固件更新及编译环境搭建