本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文介绍如何在Ubuntu系统中,对适用于Portapack的hackrf Havoc版本固件进行源码编译。
目录
一、安装依赖包
以下依赖包可能你的电脑里有的已经安装了,不管是否安装过,都可以运行以下命令,如果你安装过了的话,运行以下命令也不会对系统产生什么影响。
sudo apt install python
sudo apt install python2.7
sudo apt install dfu-util
sudo apt install cmake
sudo apt install git
wget https://bootstrap.pypa.io/get-pip.py
sudo python2.7 get-pip.py
sudo pip install pyyaml
sudo pip install image
其中,sudo pip install image是为了今后使用adsb_map.py脚本来编译世界地图时候用的。
下载gcc-arm-none-eabi,放在/opt文件夹下,(其实存放的位置也无所谓)。
进入opt文件夹,例如使用cd /opt,
下载gcc-arm-none-eabi压缩包,
sudo wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
解压:
sudo tar xjf gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
将/opt/gcc-arm-none-eabi-9-2019-q4-major/bin临时加入到path中(注意这里是临时加入path,不是永久的加入path),
export PATH=$PATH:/opt/gcc-arm-none-eabi-9-2019-q4-major/bin
二、下载、编译portapack-havoc固件
git clone https://github.com/furrtek/portapack-havoc.git
cd portapack-havoc
git submodule update --init --recursive
执行完git submodule update --init –recursive之后,可能需要等待一段时间更新。
打开/portapack-havoc/firmware/toolchain-arm-cortex-m.cmake文件,并将开头的内容按照以下来修改,
if(CMAKE_VERSION VERSION_LESS 3.6)
include(CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER(/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ GNU)
else()
set(CMAKE_C_COMPILER /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
endif()
在你目前的终端中,将当前路径切换到/portapack-havoc/,新建一个build文件夹,
mkdir build
cd build
cmake ..
make firmware
运行完了make firmware命令之后,你编译生成的文件(portapack-h1-havoc.bin)就出现了/portapack-havoc/build/firmware文件夹下边了。
三、有用的链接
https://github.com/furrtek/portapack-havoc/wiki/Building-from-source