summaryrefslogtreecommitdiff
path: root/net-wireless/hackrf-tools
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 16:47:34 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 16:47:34 -0500
commitdda948891d3731927b821ce31f9d9a2d03ba20c5 (patch)
tree99cd40be4cbb0606260da212cd81b8ab2db9da9b /net-wireless/hackrf-tools
parenta3ceca1b4c0d9bdb550dc23f06ffbb5a8e033bc7 (diff)
downloadbaldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.gz
baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.xz
baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.zip
Adding metadata
Diffstat (limited to 'net-wireless/hackrf-tools')
-rw-r--r--net-wireless/hackrf-tools/Manifest2
-rw-r--r--net-wireless/hackrf-tools/files/hackrf_easy_flash-r1170
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-2024.02.1-r1.ebuild54
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-2026.01.3.ebuild47
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-9999.ebuild47
-rw-r--r--net-wireless/hackrf-tools/metadata.xml13
6 files changed, 333 insertions, 0 deletions
diff --git a/net-wireless/hackrf-tools/Manifest b/net-wireless/hackrf-tools/Manifest
new file mode 100644
index 000000000000..4ee5181caff2
--- /dev/null
+++ b/net-wireless/hackrf-tools/Manifest
@@ -0,0 +1,2 @@
+DIST hackrf-2024.02.1.tar.xz 21734672 BLAKE2B 493a886719aa90e1b52229beaec45cb9db315dc91d001c275dd3989cde56fe6a312d4fca1c27b4c1366a4653880e74ab3d1e4363ee392d0f93deb631b7fddac4 SHA512 d057574f1e9b1bc2cebcd06773054b7fcba55d44e4c028f4f95e67874b71bd0a83906795a391e283c15d2b21ad7f3e8337be5aa0ee2f6a3c57632a70da10e2e4
+DIST hackrf-2026.01.3.tar.xz 25945024 BLAKE2B e861d2250c59006fa42b63666c629bca2186d79a408dd7d0615023790434c3c06611e985da5a6c4bcbb776017d46ba7b90ba1d99825caa018318e361dbb0741f SHA512 776aab11d23976ba87bf9c8af9c669b1e4967540a5b48d23d355cd0759d08b7fb36c88675082819fbca4cfd2fcdd19afbd79dea04f79128c23063334c45dd6b9
diff --git a/net-wireless/hackrf-tools/files/hackrf_easy_flash-r1 b/net-wireless/hackrf-tools/files/hackrf_easy_flash-r1
new file mode 100644
index 000000000000..deece5e31891
--- /dev/null
+++ b/net-wireless/hackrf-tools/files/hackrf_easy_flash-r1
@@ -0,0 +1,170 @@
+#!/bin/sh
+
+DFU_MODE=0
+CPLD=0
+
+get_dfu() {
+ if [ -r "/usr/share/hackrf/hackrf_one_usb.dfu" ]; then
+ ram_firmware="/usr/share/hackrf/hackrf_one_usb.dfu"
+ else
+ printf "Unable to find hackrf_one_usb.dfu in the search path\n"
+ exit 1
+ fi
+ export ram_firmware
+}
+
+get_cpld() {
+ if [ -r "/usr/share/hackrf/hackrf_cpld_default.xsvf" ]; then
+ cpld="/usr/share/hackrf/hackrf_cpld_default.xsvf"
+ else
+ printf "Unable to find default.xsvf in the search path\n"
+ exit 1
+ fi
+ export cpld
+}
+
+usage() {
+ printf "hackrf_easy_flash list\n"
+ printf "hackrf_easy_flash upgrade\n"
+}
+
+if [ -z "${1}" ]; then
+ usage
+ exit 0
+fi
+
+list_firmware() {
+ if [ ${DFU_MODE} = 1 ]; then
+ if [ -z "${ram_firmware}" ]; then
+ get_dfu
+ fi
+ printf "Best DFU found: ${ram_firmware}\n"
+ fi
+ printf "Available firmware options:\n"
+ if [ -r "/usr/share/hackrf/hackrf_one_usb.bin" ]; then
+ printf "hackrf (default)\n"
+ fi
+ if [ -r "/usr/share/hackrf/portapack-h1-firmware.bin" ]; then
+ printf "portapack (--portapack)\n"
+ fi
+ if [ -r "/usr/share/hackrf/portapack-h1-havoc.bin" ]; then
+ printf "portapack-havoc (--havoc)\n"
+ fi
+ if [ -r "/usr/share/hackrf/portapack-h1_h2-mayhem.bin" ]; then
+ printf "portapack-mayhem (--mayhem)\n"
+ fi
+}
+
+#parse args
+while [ -n "${1}" ]; do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ list|--list)
+ list_firmware
+ exit 0
+ ;;
+ update|--update|upgrade|--upgrade|hackrf|--hackrf)
+ firmware="/usr/share/hackrf/hackrf_one_usb.bin"
+ TARGET=hackrf
+ shift
+ ;;
+ portapack|--portapack)
+ firmware="/usr/share/hackrf/portapack-h1-firmware.bin"
+ TARGET=portapack
+ shift
+ ;;
+ havoc|--havoc)
+ firmware="/usr/share/hackrf/portapack-h1-havoc.bin"
+ TARGET=havoc
+ shift
+ ;;
+ mayhem|--mayhem)
+ firmware="/usr/share/hackrf/portapack-h1_h2-mayhem.bin"
+ TARGET=mayhem
+ shift
+ ;;
+ cpld|--cpld)
+ CPLD=1
+ get_cpld
+ shift
+ ;;
+ dfu|--dfu)
+ DFU_MODE=1
+ get_dfu
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+if [ -z "${firmware}" ]; then
+ firmware="/usr/share/hackrf/hackrf_one_usb.bin"
+ TARGET="hackrf"
+fi
+
+if [ ! -r "${firmware}" ]; then
+ printf "Unable to find or read ${firmware}\n"
+ printf "Please ensure the requested firmware is installed and readable\n"
+ exit 1
+fi
+
+if [ "${CPLD}" = 1 ] && [ "${TARGET}" != "hackrf" ]; then
+ printf "To update the CPLD you must use the stock hackrf firmware or do this update manually\n"
+ printf "Try \"$(basename $0) --cpld && $(basename $0) ${TARGET}\"\n"
+ exit 1
+fi
+
+printf "This tool is provided by Gentoo, please report bugs on https://bugs.gentoo.org/\n\n"
+if [ ${DFU_MODE} = 1 ]; then
+ printf "Preparing to reset hackrf with DFU ${ram_firmware}\n"
+ printf "Then flashing with ${firmware}\n\n"
+ printf "Hold down the HackRF's DFU button (the button closest to the antenna jack)\n"
+ printf "then plug the HackRF into a USB port on your computer.\n"
+ printf "After the HackRF is plugged in, you may release the DFU button.\n"
+ printf "Press any key to continue or ^c to abort\n"
+ read
+ if ! dfu-util --device 1fc9:000c --download "${ram_firmware}" --reset; then
+ printf "dfu-util reported failure, quitting\n"
+ exit 1
+ fi
+ sleep 2s
+else
+ if hackrf_info | grep -q 'No HackRF boards found.'; then
+ printf "No hackrf found, please ensure you are in hackrf mode or try --dfu\n"
+ exit 1
+ fi
+fi
+if hackrf_spiflash -w "${firmware}"; then
+ sleep 3s
+ hackrf_spiflash -R
+ sleep 3s
+else
+ printf "hackrf_spiflash reported failure, quitting\n"
+ exit 1
+fi
+if [ "${CPLD}" = 1 ]; then
+ #printf "To update the cpld, please reset your hackrf into it's new firmware before updating the cpld\n"
+ #printf "Please reset your hackrf by pressing the button furthest from the antenna or power cycling it.\n"
+ #printf "Press any key to continue or ^c to abort\n"
+ #read
+ if hackrf_cpldjtag -x "${cpld}"; then
+ sleep 3s
+ hackrf_spiflash -R
+ else
+ printf "hackrf_cpldjtag reported failure\n"
+ exit 1
+ fi
+fi
+if [ "${TARGET}" = "hackrf" ]; then
+ hackrf_info
+fi
+printf "If you saw no errors, you are up to date with the requested firmware\n"
diff --git a/net-wireless/hackrf-tools/hackrf-tools-2024.02.1-r1.ebuild b/net-wireless/hackrf-tools/hackrf-tools-2024.02.1-r1.ebuild
new file mode 100644
index 000000000000..60dec329a9f3
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-2024.02.1-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="tools for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/hackrf.git"
+ inherit git-r3
+ EGIT_CHECKOUT_DIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="https://github.com/greatscottgadgets/hackrf/releases/download/v${PV}/hackrf-${PV}.tar.xz"
+ KEYWORDS="amd64 arm ppc x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+DEPEND="~net-libs/libhackrf-${PV}:=
+ sci-libs/fftw:3.0="
+RDEPEND="${DEPEND}"
+
+# Fix build with cmake4 i
+# (see https://github.com/greatscottgadgets/hackrf/pull/1514)
+src_prepare() {
+ sed -i -e "s/2.8.12/3.8/" CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_install() {
+ cmake_src_install
+ newsbin "${FILESDIR}/hackrf_easy_flash-r1" hackrf_easy_flash
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb.bin" hackrf_jawbreaker_usb-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb.dfu" hackrf_jawbreaker_usb-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb.bin" hackrf_one_usb-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb.dfu" hackrf_one_usb-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ ln -s hackrf_one_usb-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb_rom_to_ram.bin"
+ ln -s hackrf_one_usb-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb.bin"
+ ln -s hackrf_one_usb-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb_ram.dfu"
+ ln -s hackrf_one_usb-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb.dfu"
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ ewarn "A hackrf-firmware ebuild is available in the pentoo overlay, if you feel adventurous."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/hackrf-tools-2026.01.3.ebuild b/net-wireless/hackrf-tools/hackrf-tools-2026.01.3.ebuild
new file mode 100644
index 000000000000..6d4a46c32b67
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-2026.01.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="tools for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/hackrf.git"
+ inherit git-r3
+ EGIT_CHECKOUT_DIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="https://github.com/greatscottgadgets/hackrf/releases/download/v${PV}/hackrf-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+DEPEND="~net-libs/libhackrf-${PV}:=
+ sci-libs/fftw:3.0="
+RDEPEND="${DEPEND}"
+
+src_install() {
+ cmake_src_install
+ newsbin "${FILESDIR}/hackrf_easy_flash-r1" hackrf_easy_flash
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb.bin" hackrf_jawbreaker_usb-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb.dfu" hackrf_jawbreaker_usb-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb.bin" hackrf_one_usb-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb.dfu" hackrf_one_usb-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ ln -s hackrf_one_usb-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb_rom_to_ram.bin"
+ ln -s hackrf_one_usb-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb.bin"
+ ln -s hackrf_one_usb-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb_ram.dfu"
+ ln -s hackrf_one_usb-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb.dfu"
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ ewarn "A hackrf-firmware ebuild is available in the pentoo overlay, if you feel adventurous."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/hackrf-tools-9999.ebuild b/net-wireless/hackrf-tools/hackrf-tools-9999.ebuild
new file mode 100644
index 000000000000..6d4a46c32b67
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="tools for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/hackrf.git"
+ inherit git-r3
+ EGIT_CHECKOUT_DIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="https://github.com/greatscottgadgets/hackrf/releases/download/v${PV}/hackrf-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+DEPEND="~net-libs/libhackrf-${PV}:=
+ sci-libs/fftw:3.0="
+RDEPEND="${DEPEND}"
+
+src_install() {
+ cmake_src_install
+ newsbin "${FILESDIR}/hackrf_easy_flash-r1" hackrf_easy_flash
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb.bin" hackrf_jawbreaker_usb-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb.dfu" hackrf_jawbreaker_usb-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb.bin" hackrf_one_usb-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb.dfu" hackrf_one_usb-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ ln -s hackrf_one_usb-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb_rom_to_ram.bin"
+ ln -s hackrf_one_usb-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb.bin"
+ ln -s hackrf_one_usb-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb_ram.dfu"
+ ln -s hackrf_one_usb-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb.dfu"
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ ewarn "A hackrf-firmware ebuild is available in the pentoo overlay, if you feel adventurous."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/metadata.xml b/net-wireless/hackrf-tools/metadata.xml
new file mode 100644
index 000000000000..42f58171ab2f
--- /dev/null
+++ b/net-wireless/hackrf-tools/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>radio@gentoo.org</email>
+ <name>Radio</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>