From d570d170f0d9908828207311cf332c0a622e22bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Fri, 4 Jul 2025 19:16:50 +0200 Subject: [PATCH] feat: add usb sniffer --- flake.nix | 10 +++++++++ hosts/MONSTER/default.nix | 25 +++++++++++++++++++++-- overlays/usb-sniffer/default.nix | 35 ++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 overlays/usb-sniffer/default.nix diff --git a/flake.nix b/flake.nix index 2aee4ce..3aabd40 100644 --- a/flake.nix +++ b/flake.nix @@ -50,6 +50,16 @@ lpc21isp = prev.callPackage ./overlays/lpc21isp { }; rquickshare = prev.callPackage ./overlays/rquickshare { }; rastertokpsl-re = prev.callPackage ./overlays/rastertokpsl-re { }; + usb-sniffer = prev.callPackage ./overlays/usb-sniffer { }; + wireshark = prev.wireshark.overrideAttrs ( + finalAttrs: prevAttrs: { + postInstall = + prevAttrs.postInstall + + '' + ln -s ${final.usb-sniffer}/bin/usb_sniffer $out/lib/wireshark/extcap/usb_sniffer + ''; + } + ); plymouth = prev.plymouth.overrideAttrs ( final: prev: { patches = prev.patches ++ [ ./overlays/plymouth/drm-close-fb.patch ]; diff --git a/hosts/MONSTER/default.nix b/hosts/MONSTER/default.nix index 5b7c2f6..4632128 100644 --- a/hosts/MONSTER/default.nix +++ b/hosts/MONSTER/default.nix @@ -79,7 +79,10 @@ airprint.enable = true; - udev.packages = with pkgs; [ android-udev-rules ]; + udev.packages = with pkgs; [ + android-udev-rules + usb-sniffer + ]; }; hardware = { @@ -98,6 +101,17 @@ }; }; + virtualisation.oci-containers.containers.craftoria = { + image = "eclipse-temurin:21-jre"; + volumes = [ "/home/theaninova/.config/craftoria:/craftoria" ]; + environment = { }; + ports = [ "25565:25565" ]; + workdir = "/craftoria"; + entrypoint = "/bin/bash"; + cmd = [ "startserver.sh" ]; + extraOptions = [ "--network=host" ]; + }; + fonts = { fira-code = { enable = true; @@ -145,6 +159,7 @@ usbutils usbimager uhubctl + usb-sniffer pciutils htop unar @@ -167,7 +182,13 @@ ]; networking = { - firewall.allowedUDPPorts = [ 50765 ]; + firewall = { + allowedTCPPorts = [ 25565 ]; + allowedUDPPorts = [ + 25565 + 50765 + ]; + }; networkmanager = { enable = true; diff --git a/overlays/usb-sniffer/default.nix b/overlays/usb-sniffer/default.nix new file mode 100644 index 0000000..56cb12f --- /dev/null +++ b/overlays/usb-sniffer/default.nix @@ -0,0 +1,35 @@ +{ + stdenv, + fetchFromGitHub, + pkg-config, + libusb1, +}: +stdenv.mkDerivation rec { + pname = "usb_sniffer"; + version = "1d01a090"; + src = fetchFromGitHub { + owner = "ataradov"; + repo = "usb-sniffer"; + rev = "6eb214825a345c8caeb84bb8f3f2881948348d09"; + hash = "sha256-RpIhNrZXNeUZdh3QHk1KI5Fk8S0MzlYQ4hf4ztnHUII="; + }; + sourceRoot = "${src.name}/software"; + buildInputs = [ + pkg-config + libusb1 + ]; + patchPhase = '' + substituteInPlace Makefile \ + --replace-fail '~/.local/lib/wireshark/extcap' \ + '${placeholder "out"}/bin/${pname}' + ''; + preInstall = '' + mkdir -p $out/bin + ''; + postInstall = '' + mkdir -p $out/lib/wireshark/extcap + ln -s ${placeholder "out"}/bin/${pname} $out/lib/wireshark/extcap/usb_sniffer + mkdir -p $out/lib/udev/rules.d + cp ${src}/bin/90-usb-sniffer.rules $out/lib/udev/rules.d/90-usb-sniffer.rules + ''; +}