This commit is contained in:
Sojus07
2025-07-27 19:09:27 +02:00
parent d6d387ee85
commit b3010c39ec
9 changed files with 261 additions and 153 deletions

View File

@ -3,11 +3,11 @@
imports = [
./system/dwm/default.nix
./system/editors/nvim/default.nix
./system/rf.nix
./system/pkgs.nix
./system/services.nix
./system/users.nix
./system/firefox.nix
./system/sdr/default.nix
];
hardware = {

View File

@ -23,6 +23,7 @@
neofetch
fastfetch
onefetch
cpufetch
vim
weechat
ranger
@ -31,6 +32,7 @@
btop
jq
ffmpeg
gh-dash
# Development & compilers
rustup

View File

@ -1,152 +0,0 @@
{ config, lib, pkgs, ... }:
let
gnss-sdr = pkgs.stdenv.mkDerivation rec {
pname = "gnss-sdr";
version = "0.0.20";
src = pkgs.fetchFromGitHub {
owner = "gnss-sdr";
repo = "gnss-sdr";
rev = "v${version}";
sha256 = "sha256-kQv8I4dcWeRuAfYtD5EAAMwvfnOTi+QWDogUZb4M/qQ=";
};
nativeBuildInputs = with pkgs; [ cmake pkg-config python3 git ];
buildInputs = with pkgs; [
volk boost fftw protobuf pugixml
gnuradio gnuradioPackages.osmosdr
armadillo glog gflags spdlog
python3Packages.mako blas lapack
gnutls openssl zlib hdf5 matio
libiio gtest orc
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DENABLE_OSMOSDR=ON"
"-DENABLE_VOLK_GNSSSDR=ON"
"-DENABLE_UNIT_TESTING=OFF"
"-DENABLE_OWN_GLOG=OFF"
"-DENABLE_OWN_ARMADILLO=OFF"
];
enableParallelBuilding = true;
buildPhase = ''
runHook preBuild
make volk_gnsssdr_module -j$NIX_BUILD_CORES
make volk_gnsssdr_module_install -j$NIX_BUILD_CORES || true
make -j$NIX_BUILD_CORES
runHook postBuild
'';
installPhase = ''
runHook preInstall
make install
runHook postInstall
'';
};
satdump = pkgs.stdenv.mkDerivation rec {
pname = "satdump";
version = "1.2.2";
src = pkgs.fetchgit {
url = "https://github.com/SatDump/SatDump.git";
rev = version;
sha256 = "sha256-QGegi5/geL5U3/ecc3hsdW+gp25UE9fOYVLFJUo/N50=";
};
nativeBuildInputs = with pkgs; [ cmake pkg-config ];
buildInputs = with pkgs; [
fftwFloat libpng libtiff jemalloc volk
(nng.overrideAttrs (old: {
cmakeFlags = old.cmakeFlags or [] ++ [ "-DBUILD_SHARED_LIBS=ON" ];
}))
rtl-sdr-librtlsdr hackrf airspy airspyhf
glfw zenity zstd libad9361 libiio
];
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
};
gr-gsm = pkgs.stdenv.mkDerivation rec {
pname = "gr-gsm";
version = "porting_to_3.11";
src = pkgs.fetchFromGitHub {
owner = "ptrkrysik";
repo = "gr-gsm";
rev = "porting_to_3.11";
sha256 = "sha256-ILw1n0qdqcqJsuWQ3g1zNP+z2OlJ6sq+AY8LC1lTDJg=";
};
nativeBuildInputs = with pkgs; [
cmake pkg-config swig doxygen
python3 python3Packages.numpy python3Packages.pybind11 python3Packages.pygccxml
];
buildInputs = with pkgs; [
python3 python3Packages.numpy python3Packages.pybind11 python3Packages.pygccxml
gnuradio gnuradioPackages.osmosdr volk
fftw boost cppunit libpcap libosmocore
log4cpp gmpxx mpir spdlog
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_PREFIX_PATH=${pkgs.gnuradio}/lib/cmake"
];
enableParallelBuilding = true;
buildPhase = ''
runHook preBuild
make
runHook postBuild
'';
installPhase = ''
runHook preInstall
make install
mkdir -p $out/bin
cp -v $src/apps/grgsm_* $out/bin/
runHook postInstall
'';
};
in
{
hardware = {
hackrf.enable = true;
rtl-sdr.enable = true;
};
environment.systemPackages = with pkgs; [
gnuradio
gnuradioPackages.lora_sdr
gnuradioPackages.osmosdr
gnuradioPackages.bladeRF
multimon-ng
sdrpp
qsstv
wsjtx
osmo-hlr
osmo-bts
osmo-bsc
osmo-sgsn
osmo-ggsn
kalibrate-hackrf
srsran
hackrf
rtl-sdr
rtl_433
gsmlib
libsrs2
# build
gnss-sdr
satdump
gr-gsm
];
}

View File

@ -0,0 +1,47 @@
{ config, lib, pkgs, ... }:
let
gnss-sdr = import ./gnss-sdr.nix { inherit pkgs; };
satdump = import ./satdump.nix { inherit pkgs; };
gr-gsm = import ./gr-gsm.nix { inherit pkgs; };
lte-sniffer = import ./lte-sniffer.nix { inherit pkgs; };
qcsuper = import ./qcsuper.nix { inherit pkgs; };
in
{
hardware = {
hackrf.enable = true;
rtl-sdr.enable = true;
};
services.sdrplayApi.enable = true;
environment.systemPackages = with pkgs; [
gnuradio
gnuradioPackages.lora_sdr
gnuradioPackages.osmosdr
gnuradioPackages.bladeRF
multimon-ng
sdrpp
qsstv
wsjtx
osmo-hlr
osmo-bts
osmo-bsc
osmo-sgsn
osmo-ggsn
kalibrate-hackrf
srsran
hackrf
rtl-sdr
rtl_433
gsmlib
libsrs2
soapyhackrf
gnss-sdr
#satdump
gr-gsm
#lte-sniffer
qcsuper
];
}

View File

@ -0,0 +1,47 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "gnss-sdr";
version = "0.0.20";
src = pkgs.fetchFromGitHub {
owner = "gnss-sdr";
repo = "gnss-sdr";
rev = "v${version}";
sha256 = "sha256-kQv8I4dcWeRuAfYtD5EAAMwvfnOTi+QWDogUZb4M/qQ=";
};
nativeBuildInputs = with pkgs; [ cmake pkg-config python3 git ];
buildInputs = with pkgs; [
volk boost fftw protobuf pugixml
gnuradio gnuradioPackages.osmosdr
armadillo glog gflags spdlog
python3Packages.mako blas lapack
gnutls openssl zlib hdf5 matio
libiio gtest orc
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DENABLE_OSMOSDR=ON"
"-DENABLE_VOLK_GNSSSDR=ON"
"-DENABLE_UNIT_TESTING=OFF"
"-DENABLE_OWN_GLOG=OFF"
"-DENABLE_OWN_ARMADILLO=OFF"
];
enableParallelBuilding = true;
buildPhase = ''
runHook preBuild
make volk_gnsssdr_module -j$NIX_BUILD_CORES
make volk_gnsssdr_module_install -j$NIX_BUILD_CORES || true
make -j$NIX_BUILD_CORES
runHook postBuild
'';
installPhase = ''
runHook preInstall
make install
runHook postInstall
'';
}

View File

@ -0,0 +1,43 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "gr-gsm";
version = "porting_to_3.11";
src = pkgs.fetchFromGitHub {
owner = "ptrkrysik";
repo = "gr-gsm";
rev = "porting_to_3.11";
sha256 = "sha256-ILw1n0qdqcqJsuWQ3g1zNP+z2OlJ6sq+AY8LC1lTDJg=";
};
nativeBuildInputs = with pkgs; [
cmake pkg-config swig doxygen
python3 python3Packages.numpy python3Packages.pybind11 python3Packages.pygccxml
];
buildInputs = with pkgs; [
python3 python3Packages.numpy python3Packages.pybind11 python3Packages.pygccxml
gnuradio gnuradioPackages.osmosdr volk
fftw boost cppunit libpcap libosmocore
log4cpp gmpxx mpir spdlog
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_PREFIX_PATH=${pkgs.gnuradio}/lib/cmake"
];
enableParallelBuilding = true;
buildPhase = ''
runHook preBuild
make
runHook postBuild
'';
installPhase = ''
runHook preInstall
make install
mkdir -p $out/bin
cp -v $src/apps/grgsm_* $out/bin/
runHook postInstall
'';
}

View File

@ -0,0 +1,72 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "lte-sniffer";
version = "LTESniffer-v2.1.0";
src = pkgs.fetchFromGitHub {
owner = "SysSec-KAIST";
repo = "LTESniffer";
rev = "918d1a3fea4d7633aa8eb170a740916cf21da171";
sha256 = "sha256-kbFvpHcqlEpoLkc206jJBLzAFuBGjvDLO9uRaG4+PqE=";
};
cmnalib = pkgs.fetchgit {
url = "https://github.com/falkenber9/c-mnalib.git";
rev = "117c7047ccbec4deae5444cb5b69bdae01ddd175";
sha256 = "sha256-Rnr9GOv7yn3+bH+HA6htx5EKufC1wNyRzZvUu3pDn/w=";
};
nativeBuildInputs = with pkgs; [ cmake git pkg-config ];
buildInputs = with pkgs; [
glib libudev-zero boost gnutls libgnurl nng
libsForQt5.qt5.qtdeclarative volk fftwFloat
curl libtiff glfw mkl
];
patchPhase = ''
runHook prePatch
echo "[INFO] Removing ExternalProject_Add(cmnalib) from cmnalib.CMakeLists.txt.in"
sed -i '/ExternalProject_Add(cmnalib/d' external/cmake/cmnalib.CMakeLists.txt.in
runHook postPatch
'';
cmakeFlags = [
"-DCMNALIB_SRC_DIR=${cmnalib}"
"-DCMAKE_BUILD_TYPE=Release"
];
buildPhase = ''
runHook preBuild
mkdir -p cmnalib-src
cp -r ${cmnalib}/* cmnalib-src/
cmake -S . -B build $cmakeFlags
cmake --build build -j$NIX_BUILD_CORES
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -v build/apps/* $out/bin/
runHook postInstall
'';
dontWrapQtApps = true;
meta = with pkgs.lib; {
description = "Passive LTE Sniffer based on SysSec-KAIST's LTESniffer project";
homepage = "https://github.com/SysSec-KAIST/LTESniffer";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ sojus07 ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,24 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "qcsuper";
version = "2.0.1";
src = pkgs.fetchFromGitHub {
owner = "P1sec";
repo = "QCSuper";
rev = version;
sha256 = "sha256-m75yoFO+NR5WyckmJfPtjXAajbDHB2PFBc7sznVQnw8=";
};
buildInputs = with pkgs; [
python3 python3Packages.setuptools
python3Packages.pyserial wireshark
];
installPhase = ''
mkdir -p $out/bin
cp qcsuper.py $out/bin/qcsuper
chmod +x $out/bin/qcsuper
'';
}

View File

@ -0,0 +1,25 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "satdump";
version = "1.2.2";
src = pkgs.fetchFromGitHub {
owner = "SatDump";
repo = "SatDump";
rev = version;
sha256 = "sha256-+Sne+NMwnIAs3ff64fBHAIE4/iDExIC64sXtO0LJwI0=";
};
nativeBuildInputs = with pkgs; [ cmake pkg-config ];
buildInputs = with pkgs; [
fftwFloat libpng libtiff jemalloc volk
rtl-sdr-librtlsdr hackrf airspy airspyhf
glfw zenity zstd libad9361 libiio
curlFull.dev curlFull.out armadillo
mbedtls nng opencl-headers hdf5
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
];
}