at 24.11-pre 687 B view raw
1{ config, lib, pkgs, ... }: 2 3let 4 cfg = config.hardware.rtl-sdr; 5 6in { 7 options.hardware.rtl-sdr = { 8 enable = lib.mkOption { 9 type = lib.types.bool; 10 default = false; 11 description = '' 12 Enables rtl-sdr udev rules, ensures 'plugdev' group exists, and blacklists DVB kernel modules. 13 This is a prerequisite to using devices supported by rtl-sdr without being root, since rtl-sdr USB descriptors will be owned by plugdev through udev. 14 ''; 15 }; 16 }; 17 18 config = lib.mkIf cfg.enable { 19 boot.blacklistedKernelModules = [ "dvb_usb_rtl28xxu" "e4000" "rtl2832" ]; 20 services.udev.packages = [ pkgs.rtl-sdr ]; 21 users.groups.plugdev = {}; 22 }; 23}