diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix index 068d14217a2..095a97338d5 100644 --- a/nixos/modules/services/hardware/udev.nix +++ b/nixos/modules/services/hardware/udev.nix @@ -168,7 +168,6 @@ in hardware.firmware = mkOption { type = types.listOf types.path; default = []; - example = [ "/root/my-firmware" ]; description = '' List of directories containing firmware files. Such files will be loaded automatically if the kernel asks for them @@ -177,10 +176,10 @@ in firmware file with the same name, the first path in the list takes precedence. Note that you must rebuild your system if you add files to any of these directories. For quick testing, - put firmware files in /root/test-firmware and add that - directory to the list. - Note that you can also add firmware packages to this - list as these are directories in the nix store. + put firmware files in /root/test-firmware + and add that directory to the list. Note that you can also + add firmware packages to this list as these are directories in + the nix store. ''; apply = list: pkgs.buildEnv { name = "firmware"; @@ -244,6 +243,11 @@ in echo "regenerating udev hardware database..." ${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd fi + + # Allow the kernel to find our firmware. + if [ -e /sys/module/firmware_class/parameters/path ]; then + echo -n "${config.hardware.firmware}" > /sys/module/firmware_class/parameters/path + fi ''; systemd.services.systemd-udevd =